They have similar meanings of enduring or bearing something difficult or unpleasant.
참다 is typically used for personal situations or what has to do with emotions. It can only be used about people.
견디다, to endure or withstand, can be used for more serious things, like physical pain or other external harsh conditions, and can be applied to both people and things.
e.g. (where both may be used)
- 나는 졸음을 참으며 공부했다 = I studied fighting drowsiness.
- 천민 계급은 신분에 따른 차별을 참으며 살아야 했다 = The lower classes had to endure the class-based discrimination.
e.g. (where only 견디다 can be used)
- 이 지붕은 상당한 하중을 견디게 만들어졌다 = This roof is made to withstand considerable weight.
- 그는 산에서 길을 잃은 후 극한적인 추위를 견디며 살아남았다 = He survived enduring extreme cold after getting lost in the mountain.