Search

README

ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ๊ธฐ๊ฐ„

2023/01/16 ~ 2023/02/16

์“ฐ์ž„์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

WHY? - ์“ฐ์ž„์˜ ๋น„์ „

ํ•œ๊ตญ์˜ ๋ชจ๋“  ์ทจ์ค€์ƒ์˜ ๊ณ ๋…์„ ํ•ด๊ฒฐํ•˜๊ณ  ์‹ถ๋‹ค!!

HOW? - ์“ฐ์ž„์˜ ๋ฐฉํ–ฅ

์ทจ์ค€์ƒ์ด๋ผ๋ฉด ๋ˆ„๊ตฌ๋“ , ๊ฐ™์€ ๋ชฉํ‘œ๋ฅผ ๊ฐ€์ง„ ์‚ฌ๋žŒ๋“ค๊ณผ ํ•จ๊ป˜ ๊ต๋ฅ˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณณ์„ ๋งŒ๋“ค๊ณ  ์‹ถ์—ˆ์–ด์š”
์ทจ์ค€์— ์žˆ์–ด ์ „์˜๋ฅผ ์ƒ์‹คํ•˜์ง€ ์•Š๋„๋ก ๋™๊ธฐ๋ถ€์—ฌ๊ฐ€ ๋˜๋Š” ๊ณณ์„ ๋งŒ๋“ค๊ณ  ์‹ถ์—ˆ์–ด์š”
์„ ๋ก€๊ฐ€ ๋˜๋Š” ํ˜„์—…์ž์˜ ์กฐ์–ธ ๋˜๋Š” ๊ฐ™์€ ๊ณต๋ถ€๋ฅผ ํ•˜๋Š” ๋‹ค๋ฅธ ์ทจ์ค€์ƒ๋“ค์„ ๋ฐ”ํƒ•์œผ๋กœ ์ทจ์ค€์„ ์œ„ํ•ด ํ•„์š”ํ•œ ๊ฒƒ๋“ค์„ ๋‹ค์‹œ๊ธˆ ํ™•์ธํ•˜๊ณ  ์‹ถ์—ˆ์–ด์š”

WHAT? - ์“ฐ์ž„์˜ ๊ฐ€์น˜

์˜จ๋ผ์ธ ๊ฐ•์˜๋ผ๋Š” ๊ณตํ†ต ๊ด€์‹ฌ์‚ฌ๋ฅผ ํ†ตํ•ด ๊ต๋ฅ˜, ๋™๊ธฐ๋ถ€์—ฌ, ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ๋Š” ํ”Œ๋žซํผ

ย ์ฃผ์š” ๊ธฐ๋Šฅ

๊ฐ•์ขŒ ๋ชฉ๋ก ๋ฐ ๊ฒ€์ƒ‰

๋‚˜์—๊ฒŒ ๋„์›€์ด ๋˜๋Š” ๊ฐ•์ขŒ๋ฅผ ์ฐพ๊ณ  ๋ถ„๋ฅ˜ ๋ณ„๋กœ ๋ชจ์•„๋ณผ ์ˆ˜ ์žˆ์–ด์š”

๊ฐ•์ขŒ ์ข‹์•„์š” ๋ฐ ์ €์žฅ

๋‚ด๊ฐ€ ์ข‹์•„ํ•˜๋Š” ๊ฐ•์ขŒ๋‚˜ ๋ณด๊ณ ์‹ถ์€ ๊ฐ•์ขŒ๋ฅผ ์ข‹์•„์š” ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์–ด์š”
์ข‹์•„์š”๋ฅผ ํ‘œ์‹œํ•œ ๊ฐ•์ขŒ๋“ค์€ ๋งˆ์ดํŽ˜์ด์ง€์—์„œ ๋ชจ์•„๋ณผ ์ˆ˜ ์žˆ์–ด์š”

๊ฐ•์ขŒ ํ”Œ๋ ˆ์ด์–ด

์œ ํŠœ๋ธŒ ์˜์ƒ์„ ํฐ ํ™”๋ฉด์œผ๋กœ ์‹œ์ฒญํ•  ์ˆ˜ ์žˆ์–ด์š”

๊ฐ•์ขŒ ํ”Œ๋ ˆ์ด์–ด ๋ฉ”๋ชจ

๊ฐ•์˜๋ฅผ ๋“ฃ๋‹ค๊ฐ€ ๋‚จ๊ฒจ๋‘๊ณ  ์‹ถ์€ ๋ฉ”๋ชจ๊ฐ€ ์žˆ๋‹ค๋ฉด ๋น„๋””์˜ค ํ”Œ๋ ˆ์ด์–ด์˜ ์‚ฌ์ด๋“œ ๋ฉ”๋‰ด์—์„œ ๋ฉ”๋ชจ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์–ด์š”
๋งˆํฌ๋‹ค์šด ํ˜•์‹์œผ๋กœ ๊น”๋”ํ•˜๊ฒŒ ์ •๋ฆฌํ•œ ๋ฉ”๋ชจ๋ฅผ ์ €์žฅํ•˜๊ณ  ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ๋งˆ์ดํŽ˜์ด์ง€์—์„œ ์–ธ์ œ๋“  ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”

๊ฐ•์ขŒ ํ”Œ๋ ˆ์ด์–ด ์งˆ๋ฌธ ๊ฒŒ์‹œํŒ

๊ฐ•์ขŒ๋ฅผ ๋“ฃ๋‹ค๊ฐ€ ๊ถ๊ธˆํ•œ๊ฒŒ ์ƒ๊ฒผ์„ ๋•Œ ๋‚˜์™€ ๊ฐ™์€ ๊ถ๊ธˆ์ฆ์ด ์ƒ๊ธด ์‚ฌ๋žŒ๋“ค์˜ ์งˆ๋ฌธ์„ ์ฐพ์•„๋ณผ ์ˆ˜ ์žˆ์–ด์š”
๊ฐ•์ขŒ๋ฅผ ๋“ค์œผ๋ฉฐ ๊ถ๊ธˆํ•œ๊ฒŒ ์ƒ๊ธฐ๋ฉด ์ฆ‰์‹œ ์งˆ๋ฌธ์„ ๋‚จ๊ธธ ์ˆ˜ ์žˆ๊ณ  ๋‹ต๋ณ€์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์–ด์š”

์‚ฌ์šฉ์ž ํžˆ์Šคํ† ๋ฆฌ

๋‚ด๊ฐ€ ์ตœ๊ทผ ์ˆ˜๊ฐ•ํ•œ ๊ฐ•์ขŒ์™€ ๊ฐ•์˜๋“ค์ด ๊ธฐ๋ก๋˜์–ด ๋งˆ์ดํŽ˜์ด์ง€์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”
์ตœ๊ทผ ๋“ฃ๋˜ ๊ฐ•์˜๋ฅผ ์ด์–ด์„œ ๋“ฃ๋Š”๋‹ค๋ฉด ์ด์ „ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ์ข…๋ฃŒํ•œ ์œ„์น˜๋ถ€ํ„ฐ ์ด์–ด์„œ ์‹œ์ฒญํ•  ์ˆ˜ ์žˆ์–ด์š”

์Šคํ„ฐ๋”” ์ƒ์„ฑ ๋ฐ ๋ชจ์ง‘

๊ฐ™์€ ๊ฐ•์ขŒ๋ฅผ ๋“ฃ๊ฑฐ๋‚˜ ๊ฐ™์€ ๋ถ„์•ผ๋ฅผ ๊ณต๋ถ€ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค๊ณผ ํ•จ๊ป˜ ์Šคํ„ฐ๋””๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์–ด์š”
๋‚ด๊ฐ€ ๊ณต๋ถ€ํ•˜๊ณ  ์‹ถ์€ ๊ฐ•์ขŒ๋“ค์„ ๋ชจ์•„ ์ปค๋ฆฌํ˜๋Ÿผ์œผ๋กœ ๋“ฑ๋กํ•˜๊ณ  ์Šคํ„ฐ๋””์›์„ ๋ชจ์„ ์ˆ˜ ์žˆ์–ด์š”

์Šคํ„ฐ๋”” ์ปค๋ฎค๋‹ˆํ‹ฐ

์Šคํ„ฐ๋”” ์ปค๋ฎค๋‹ˆํ‹ฐ์— ๊ธ€์„ ๋‚จ๊ฒจ ์Šคํ„ฐ๋””์›๋“ค๊ณผ ๊ฐ„๋‹จํ•œ ๋Œ€ํ™”๊ฐ€ ๊ฐ€๋Šฅํ•ด์š”

์‹ค์‹œ๊ฐ„ ๊ฐ•์˜ ์‹œ์ฒญ ๋ฐ ์ฑ„ํŒ…

์Šคํ„ฐ๋””์›๋“ค๊ณผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ฐ•์˜๋ฅผ ์‹œ์ฒญํ•  ์ˆ˜ ์žˆ์–ด์š”
๊ฐ•์˜ ์˜์ƒ ์‹ฑํฌ๋Š” ์Šคํ„ฐ๋””์› ๋ชจ๋‘์™€ ๋™๊ธฐํ™” ๋˜์–ด ๊ฐ™์€ ์‹œ๊ฐ„๋Œ€์˜ ์˜์ƒ์„ ๋™์‹œ์— ์‹œ์ฒญํ•  ์ˆ˜ ์žˆ์–ด์š”
๊ฐ•์˜๋ฅผ ์‹œ์ฒญํ•˜๋ฉฐ ๊ถ๊ธˆํ•œ ๊ฒƒ์ด ์ƒ๊ธฐ๋ฉด ์Šคํ„ฐ๋””์›๋“ค๊ณผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ณต์œ ํ•˜๊ณ  ์ฑ„ํŒ…ํ•  ์ˆ˜ ์žˆ์–ด์š”

์Šคํ„ฐ๋”” ํžˆ์Šคํ† ๋ฆฌ

์Šคํ„ฐ๋””์›๋“ค๊ณผ ํ•จ๊ป˜ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์‹œ์ฒญํ–ˆ๋˜ ๊ฐ•์˜์˜ ๋‚ด์—ญ์„ ๋ณผ ์ˆ˜ ์žˆ์–ด์š”

์งˆ๋ฌธ ๊ฒŒ์‹œํŒ

์“ฐ์ž„์„ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉฐ ๊ถ๊ธˆํ–ˆ๋˜ ์งˆ๋ฌธ๋“ค์„ ๋ชจ์•„๋ณผ ์ˆ˜ ์žˆ์–ด์š”
์งˆ๋ฌธ์— ๋‹ต๋ณ€์„ ๋‚จ๊ธด๋‹ค๋ฉด ์งˆ๋ฌธ์ž์—๊ฒŒ ํฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์–ด์š”

์ž์œ  ๊ฒŒ์‹œํŒ

์“ฐ์ž„์„ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๊ธ€์„ ๊ฒŒ์‹œํ•  ์ˆ˜ ์žˆ์–ด์š”
ํŠน์ • ๊ฐ•์˜์™€ ๊ด€๋ จ ์—†์ด ๊ถ๊ธˆํ•œ๊ฒŒ ์ƒ๊ธด๋‹ค๋ฉด, ์ž์œ ๊ฒŒ์‹œํŒ์— ๊ธ€์„ ์ž‘์„ฑํ•ด๋ณผ ์ˆ˜ ์žˆ์–ด์š”
๋Œ“๊ธ€์„ ๋‚จ๊ฒจ ๊ฒŒ์‹œ๊ธ€์— ๋Œ€ํ•œ ์ƒ๊ฐ์„ ํ‘œํ˜„ํ•ด์ฃผ์„ธ์š”

์‚ฌ์šฉ์ž ํŒ”๋กœ์šฐ

๋‚ด๊ฐ€ ์นœํ•ด์ง€๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ์„ ํŒ”๋กœ์šฐํ•˜๊ณ , ๋‚˜์—๊ฒŒ ๊ด€์‹ฌ์žˆ๋Š” ์‚ฌ๋žŒ์—๊ฒŒ ํŒ”๋กœ์ž‰ ๋ฐ›์„ ์ˆ˜ ์žˆ์–ด์š”

ย ์ฃผ์š” ๊ธฐ์ˆ 

Backend - Spring
Spring Boot
Spring Web
Spring WebSocket with STOMP
JPA
JWT
Spring Security
Spring Data with Swagger
Google Cloud Storage
Youtube API
Frontend
NginX
React
Vite
Zustand
Tailwind
PostCSS
Database
MySQL 8
CI/CD
AWS EC2
Jenkins
Docker
Docker Compose

ย ํ”„๋กœ์ ํŠธ ์•„ํ‚คํ…์ณ

ย ํ”„๋กœ์ ํŠธ ํŒŒ์ผ ๊ตฌ์กฐ

Backend

BACKEND\STUDYMOIM\SRC\MAIN โ”œโ”€java โ”‚ โ””โ”€com โ”‚ โ””โ”€ssafy โ”‚ โ””โ”€peace โ”‚ โ”‚ DataLoader.java โ”‚ โ”‚ PeaceApplication.java โ”‚ โ”‚ โ”‚ โ”œโ”€api โ”‚ โ”‚ AlarmController.java โ”‚ โ”‚ AuthController.java โ”‚ โ”‚ ChatController.java โ”‚ โ”‚ CourseCategoryController.java โ”‚ โ”‚ CourseController.java โ”‚ โ”‚ CurriculumController.java โ”‚ โ”‚ FreeBoardController.java โ”‚ โ”‚ GCSController.java โ”‚ โ”‚ LectureController.java โ”‚ โ”‚ MessageController.java โ”‚ โ”‚ NoteController.java โ”‚ โ”‚ QuestionBoardController.java โ”‚ โ”‚ StudyController.java โ”‚ โ”‚ UserController.java โ”‚ โ”‚ VideoController.java โ”‚ โ”‚ YoutubeApiController.java โ”‚ โ”‚ โ”‚ โ”œโ”€config โ”‚ โ”‚ SecurityConfig.java โ”‚ โ”‚ Swagger2Config.java โ”‚ โ”‚ WebsocketConfig.java โ”‚ โ”‚ โ”‚ โ”œโ”€dto โ”‚ โ”‚ โ”‚ AlarmDto.java โ”‚ โ”‚ โ”‚ ChatMessageDto.java โ”‚ โ”‚ โ”‚ CourseCategoryDto.java โ”‚ โ”‚ โ”‚ CourseDto.java โ”‚ โ”‚ โ”‚ CourseProviderDto.java โ”‚ โ”‚ โ”‚ CourseTypeDto.java โ”‚ โ”‚ โ”‚ CurriculumDto.java โ”‚ โ”‚ โ”‚ FreeBoardCommentDto.java โ”‚ โ”‚ โ”‚ FreeBoardDto.java โ”‚ โ”‚ โ”‚ LectureDto.java โ”‚ โ”‚ โ”‚ MessageDto.java โ”‚ โ”‚ โ”‚ NoteDto.java โ”‚ โ”‚ โ”‚ QuestionBoardCommentDto.java โ”‚ โ”‚ โ”‚ QuestionBoardDto.java โ”‚ โ”‚ โ”‚ StudyCommunityDto.java โ”‚ โ”‚ โ”‚ StudyDto.java โ”‚ โ”‚ โ”‚ StudyHistoryDto.java โ”‚ โ”‚ โ”‚ StudyMemberDto.java โ”‚ โ”‚ โ”‚ StudyRequestDto.java โ”‚ โ”‚ โ”‚ UploadReqDto.java โ”‚ โ”‚ โ”‚ UserDto.java โ”‚ โ”‚ โ”‚ UserLikeCategoryDto.java โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€auth โ”‚ โ”‚ BaseResponseBody.java โ”‚ โ”‚ KakaoUserInfo.java โ”‚ โ”‚ Principal.java โ”‚ โ”‚ UserLoginPostRes.java โ”‚ โ”‚ UserRegisterPostReq.java โ”‚ โ”‚ โ”‚ โ”œโ”€entity โ”‚ โ”‚ โ”‚ Alarm.java โ”‚ โ”‚ โ”‚ Banner.java โ”‚ โ”‚ โ”‚ Course.java โ”‚ โ”‚ โ”‚ CourseCategory.java โ”‚ โ”‚ โ”‚ CourseProvider.java โ”‚ โ”‚ โ”‚ CourseType.java โ”‚ โ”‚ โ”‚ Curriculum.java โ”‚ โ”‚ โ”‚ Follow.java โ”‚ โ”‚ โ”‚ FreeBoard.java โ”‚ โ”‚ โ”‚ FreeBoardComment.java โ”‚ โ”‚ โ”‚ Lecture.java โ”‚ โ”‚ โ”‚ Message.java โ”‚ โ”‚ โ”‚ Note.java โ”‚ โ”‚ โ”‚ Notice.java โ”‚ โ”‚ โ”‚ Platform.java โ”‚ โ”‚ โ”‚ QuestionBoard.java โ”‚ โ”‚ โ”‚ QuestionBoardComment.java โ”‚ โ”‚ โ”‚ Study.java โ”‚ โ”‚ โ”‚ StudyCommunity.java โ”‚ โ”‚ โ”‚ StudyHistory.java โ”‚ โ”‚ โ”‚ StudyMember.java โ”‚ โ”‚ โ”‚ StudyRequest.java โ”‚ โ”‚ โ”‚ User.java โ”‚ โ”‚ โ”‚ UserHistory.java โ”‚ โ”‚ โ”‚ UserLikeCategory.java โ”‚ โ”‚ โ”‚ UserLikeCourse.java โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€key โ”‚ โ”‚ CurriculumId.java โ”‚ โ”‚ NoteId.java โ”‚ โ”‚ StudyMemberId.java โ”‚ โ”‚ UserLikeCategoryId.java โ”‚ โ”‚ UserLikeCourseId.java โ”‚ โ”‚ โ”‚ โ”œโ”€exception โ”‚ โ”‚ TokenValidationFailureException.java โ”‚ โ”‚ โ”‚ โ”œโ”€filter โ”‚ โ”‚ JwtAuthenticationFilter.java โ”‚ โ”‚ โ”‚ โ”œโ”€listener โ”‚ โ”‚ WebSocketEventListener.java โ”‚ โ”‚ โ”‚ โ”œโ”€repository โ”‚ โ”‚ AlarmRepository.java โ”‚ โ”‚ CourseCategoryRepository.java โ”‚ โ”‚ CourseProviderRepository.java โ”‚ โ”‚ CourseRepository.java โ”‚ โ”‚ CourseTypeRepository.java โ”‚ โ”‚ CurriculumRepository.java โ”‚ โ”‚ FollowRepository.java โ”‚ โ”‚ FreeBoardCommentRepository.java โ”‚ โ”‚ FreeBoardRepository.java โ”‚ โ”‚ LectureRepository.java โ”‚ โ”‚ MessageRepository.java โ”‚ โ”‚ NoteRepository.java โ”‚ โ”‚ NoticeRepository.java โ”‚ โ”‚ PlatformRepository.java โ”‚ โ”‚ QuestionBoardCommentRepository.java โ”‚ โ”‚ QuestionBoardRepository.java โ”‚ โ”‚ StudyCommunityRepository.java โ”‚ โ”‚ StudyHistoryRepository.java โ”‚ โ”‚ StudyMemberRepository.java โ”‚ โ”‚ StudyRepository.java โ”‚ โ”‚ StudyRequestRepository.java โ”‚ โ”‚ UserHistoryRepository.java โ”‚ โ”‚ UserLikeCategoryRepository.java โ”‚ โ”‚ UserLikeCourseRepository.java โ”‚ โ”‚ UserRepository.java โ”‚ โ”‚ โ”‚ โ”œโ”€service โ”‚ โ”‚ โ”‚ AlarmService.java โ”‚ โ”‚ โ”‚ CourseCategoryService.java โ”‚ โ”‚ โ”‚ CourseService.java โ”‚ โ”‚ โ”‚ CourseTypeService.java โ”‚ โ”‚ โ”‚ CurriculumService.java โ”‚ โ”‚ โ”‚ FreeBoardService.java โ”‚ โ”‚ โ”‚ GCSService.java โ”‚ โ”‚ โ”‚ LectureService.java โ”‚ โ”‚ โ”‚ MessageService.java โ”‚ โ”‚ โ”‚ NoteService.java โ”‚ โ”‚ โ”‚ QuestionBoardService.java โ”‚ โ”‚ โ”‚ StudyService.java โ”‚ โ”‚ โ”‚ UserService.java โ”‚ โ”‚ โ”‚ VideoService.java โ”‚ โ”‚ โ”‚ YoutubeApiService.java โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€auth โ”‚ โ”‚ JwtTokenService.java โ”‚ โ”‚ KakaoAuthService.java โ”‚ โ”‚ UserDetailService.java โ”‚ โ”‚ โ”‚ โ””โ”€util โ”‚ JwtTokenUtil.java โ”‚ ResponseBodyWriteUtil.java โ”‚ SecurityUtil.java โ”‚ WebMvcConfig.java โ”‚ โ””โ”€resources โ”‚ application.yml โ”‚ category.json โ”‚ course.json โ”‚ lecture.json โ”‚ platform.json โ”‚ provider.json โ”‚ studymoim-gcs.json โ”‚ โ”œโ”€static โ””โ”€templates
Plain Text
๋ณต์‚ฌ

Frontend

FRONTEND\PEACE_STUDYMOIM\SRC โ”‚ App.css โ”‚ App.jsx โ”‚ index.css โ”‚ main.jsx โ”‚ โ”œโ”€assets โ”‚ logo.png โ”‚ logotwo.png โ”‚ react.svg โ”‚ โ”œโ”€components โ”‚ โ”œโ”€communitydetail โ”‚ โ”‚ ButtonModifyDelete.jsx โ”‚ โ”‚ CommunityComment.jsx โ”‚ โ”‚ CommunityCommentForm.jsx โ”‚ โ”‚ QuestionComment.jsx โ”‚ โ”‚ QuestionCommentForm.jsx โ”‚ โ”‚ QuestionLectureShort.jsx โ”‚ โ”‚ โ”‚ โ”œโ”€communitypages โ”‚ โ”‚ ArticleCreateForm.jsx โ”‚ โ”‚ ArticleEditForm.jsx โ”‚ โ”‚ FreeQuestion.jsx โ”‚ โ”‚ FreeRoot.jsx โ”‚ โ”‚ LectureQuestion.jsx โ”‚ โ”‚ QuestionEditForm.jsx โ”‚ โ”‚ QuestionRoot.jsx โ”‚ โ”‚ TempPageForArticle.jsx โ”‚ โ”‚ โ”‚ โ”œโ”€coursedetail โ”‚ โ”‚ CourseBanner.jsx โ”‚ โ”‚ CourseQuestion.jsx โ”‚ โ”‚ LectureShort.jsx โ”‚ โ”‚ StudyShort.jsx โ”‚ โ”‚ โ”‚ โ”œโ”€coursepages โ”‚ โ”‚ CourseTag.jsx โ”‚ โ”‚ RecommendBanner.jsx โ”‚ โ”‚ โ”‚ โ”œโ”€field โ”‚ โ”‚ FieldButton.jsx โ”‚ โ”‚ โ”‚ โ”œโ”€mainpages โ”‚ โ”‚ MainCourse.jsx โ”‚ โ”‚ MainFreeArticle.jsx โ”‚ โ”‚ MainLectureQuestion.jsx โ”‚ โ”‚ MainLogin.css โ”‚ โ”‚ MainLogIn.jsx โ”‚ โ”‚ MainMyStudy.jsx โ”‚ โ”‚ MainNotLogin.css โ”‚ โ”‚ MainNotLogIn.jsx โ”‚ โ”‚ MainStudy.jsx โ”‚ โ”‚ โ”‚ โ”œโ”€mypages โ”‚ โ”‚ FollowerList.jsx โ”‚ โ”‚ FollowingList.jsx โ”‚ โ”‚ MemoCourse.jsx โ”‚ โ”‚ MemoItem.jsx โ”‚ โ”‚ MemoLecture.jsx โ”‚ โ”‚ MemoModal.jsx โ”‚ โ”‚ MyPageArticle.jsx โ”‚ โ”‚ MyPageArticleItem.jsx โ”‚ โ”‚ MyPageCourse.jsx โ”‚ โ”‚ MyPageCourseItem.jsx โ”‚ โ”‚ MyPageLecture.jsx โ”‚ โ”‚ MyPageLectureItem.jsx โ”‚ โ”‚ MyPageLeftBar.jsx โ”‚ โ”‚ MyPageLikeCourse.jsx โ”‚ โ”‚ MyPageLikeCourseItem.jsx โ”‚ โ”‚ MyPageMemo.jsx โ”‚ โ”‚ MyPageMine.jsx โ”‚ โ”‚ MyPageModal.jsx โ”‚ โ”‚ MyPageStatic.jsx โ”‚ โ”‚ MyPageTagItem.jsx โ”‚ โ”‚ MyPageTempPage.jsx โ”‚ โ”‚ MyPageUpdateForm.jsx โ”‚ โ”‚ MyPageYours.jsx โ”‚ โ”‚ StudyList.jsx โ”‚ โ”‚ StudyListItem.jsx โ”‚ โ”‚ โ”‚ โ”œโ”€NavBar โ”‚ โ”‚ BellIcon.jsx โ”‚ โ”‚ LoginModal.jsx โ”‚ โ”‚ NavBarLogIn.jsx โ”‚ โ”‚ NavBarLoginMd.jsx โ”‚ โ”‚ NavBarNotLogIn.jsx โ”‚ โ”‚ NavBarNotLoginMd.jsx โ”‚ โ”‚ NavBarRoot.jsx โ”‚ โ”‚ NavBarRouter.jsx โ”‚ โ”‚ NavBarRouterMd.jsx โ”‚ โ”‚ NavPagination.jsx โ”‚ โ”‚ RingModal.jsx โ”‚ โ”‚ RingModalItem.jsx โ”‚ โ”‚ โ”‚ โ”œโ”€overall โ”‚ โ”‚ CourseGaro.jsx โ”‚ โ”‚ DeleteArticleModal.jsx โ”‚ โ”‚ DeleteModal.jsx โ”‚ โ”‚ EscForClose.jsx โ”‚ โ”‚ Footer.jsx โ”‚ โ”‚ ScrollToTop.jsx โ”‚ โ”‚ Tag.jsx โ”‚ โ”‚ TagList.jsx โ”‚ โ”‚ TempPage.jsx โ”‚ โ”‚ โ”‚ โ”œโ”€studydetail โ”‚ โ”‚ CurriculumUpdateModal.jsx โ”‚ โ”‚ LectureProgress.jsx โ”‚ โ”‚ LectureProgressList.jsx โ”‚ โ”‚ LectureTiny.jsx โ”‚ โ”‚ MemberManage.jsx โ”‚ โ”‚ NoticeModal.jsx โ”‚ โ”‚ NowPlayStudy.jsx โ”‚ โ”‚ StudyIntroduceBanner.jsx โ”‚ โ”‚ StudyMemberCommunity.jsx โ”‚ โ”‚ StudyMemberCommunityComment.jsx โ”‚ โ”‚ StudyNotice.jsx โ”‚ โ”‚ StudyPageCourseItemSmall.jsx โ”‚ โ”‚ StudyPageLectureList.jsx โ”‚ โ”‚ โ”‚ โ”œโ”€studypages โ”‚ โ”‚ CourseSearchBar.jsx โ”‚ โ”‚ StudyMakeForm.jsx โ”‚ โ”‚ StudyRecruitItem.jsx โ”‚ โ”‚ StudyRecruitModalNotOpen.jsx โ”‚ โ”‚ StudyRecruitModalOpen.jsx โ”‚ โ”‚ StudySearch.jsx โ”‚ โ”‚ StudyUpdateForm.jsx โ”‚ โ”‚ โ”‚ โ””โ”€studyplayer โ”‚ PlayerMemo.jsx โ”‚ PlayerQuestion.jsx โ”‚ PlayerQuestionComment.jsx โ”‚ PlayerQuestionCommentCreate.jsx โ”‚ PlayerQuestionCommentList.jsx โ”‚ PlayerQuestionDetail.jsx โ”‚ PlayerQuestionList.jsx โ”‚ PlayerQuestionMakeForm.jsx โ”‚ PlayingVideoFrame.jsx โ”‚ PlayingVideoFrameSolo.jsx โ”‚ โ”œโ”€hooks โ”‚ getArticles.jsx โ”‚ getQuestions.jsx โ”‚ useFetch.jsx โ”‚ useFetchObject.jsx โ”‚ useToken.jsx โ”‚ โ”œโ”€pages โ”‚ CommunityDetailRoot.jsx โ”‚ CommunityMainRoot.jsx โ”‚ CommunityQuestionDetailRoot.jsx โ”‚ CourseDetailRoot.jsx โ”‚ CourseMainRoot.jsx โ”‚ EmptyPage.jsx โ”‚ FieldPage.jsx โ”‚ KakaoLoginRedirect.jsx โ”‚ LecturePlayerMainRoot.jsx โ”‚ LogInMainRoot.jsx โ”‚ MainPageRoot.css โ”‚ MainPageRoot.jsx โ”‚ MyPageRealRoot.jsx โ”‚ MyPageRoot.jsx โ”‚ StudyDetailMainPage.jsx โ”‚ StudyMakePage.jsx โ”‚ StudyPlayerMainRoot.jsx โ”‚ StudyRecruitDetailPage.css โ”‚ StudyRecruitDetailPage.jsx โ”‚ StudyRecruitMainPage.jsx โ”‚ StudyUpdatePage.jsx โ”‚ โ””โ”€zustand articles.js questions.js store.js token.js
Plain Text
๋ณต์‚ฌ

ย ํ˜‘์—…

Notion ์„ ํ†ตํ•œ ํ˜‘์—…

โ€ข
๋ธŒ๋ ˆ์ธ์Šคํ† ๋ฐ, ๊ธฐ๋Šฅ ๊ตฌํ˜„, ๋งํฌ ๊ณต์œ  ๋“ฑ ํŒ€์›๊ณผ ํ•จ๊ป˜ ์ž‘์„ฑํ•ด์•ผ ํ•  ๋ฌธ์„œ๊ฐ€ ์žˆ์„๋•Œ Notion์„ ํ™œ์šฉํ–ˆ์–ด์š”
โ€ข
์ปจ๋ฒค์…˜, ์˜ค๋Š˜์˜ ๋ชฉํ‘œ, ๋งˆ์ผ์Šคํ†ค, ํŒ€ ๊ทœ์น™ ๋“ฑ ํŒ€์›๊ณผ ๊ณต์œ ํ•  ์ •๋ณด๊ฐ€ ์žˆ์„ ๋•Œ Notion์— ์ ๊ทน์ ์œผ๋กœ ๊ธฐ๋กํ•˜์—ฌ ๊ด€๋ฆฌํ–ˆ์–ด์š”

Jira ๋ฅผ ํ†ตํ•œ ํ˜‘์—…

โ€ข
ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ 1์ฃผ๋‹น ํ•˜๋‚˜์˜ ์Šคํ”„๋ฆฐํŠธ, ์ด 5๊ฐœ์˜ ์Šคํ”„๋ฆฐํŠธ๋ฅผ ์ง„ํ–‰ํ–ˆ์–ด์š”
โ€ข
ํ•œ ์ฃผ์˜ ์‹œ์ž‘๋งˆ๋‹ค ์ธ๋‹น ์ด 40์‹œ๊ฐ„์˜ ์ด์Šˆ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์Šคํ”„๋ฆฐํŠธ๋ฅผ ์‹œ์ž‘ํ–ˆ์–ด์š”
โ€ข
1~4์‹œ๊ฐ„์˜ ์ด์Šˆ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์ž‘์—…์„ ์‹œ์ž‘ํ•  ๋•Œ ๋งˆ๋‹ค ํ•ด๋‹น ์ด์Šˆ๋ฅผ ์ง„ํ–‰์ค‘ ํ‘œ์‹œ ํ–ˆ์–ด์š”
โ€ข
์ž‘์—…์ด ์™„๋ฃŒ ๋˜๋ฉด ํ•ด๋‹น ์ด์Šˆ๋ฅผ ์™„๋ฃŒ ํ‘œ์‹œ ํ•œ ํ›„, ๋‹ค์Œ ์ž‘์—…์„ ์ง„ํ–‰ํ–ˆ์–ด์š”
โ€ข
ํ•œ ์ฃผ์˜ ๋งˆ์ง€๋ง‰์— ์Šคํ”„๋ฆฐํŠธ๋ฅผ ์ข…๋ฃŒํ•˜์—ฌ ๋ฆฌ๋ทฐํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ์–ด์š”

Gitlab ์„ ํ†ตํ•œ ํ˜‘์—…

โ€ข
master, develop, feature์˜ git flow ๋ธŒ๋žœ์นญ ์ „๋žต์„ ํ†ตํ•ด ์ž‘์—… ๋ธŒ๋žœ์น˜๋ฅผ ๋ถ„ํ•  ๊ด€๋ฆฌ ํ–ˆ์–ด์š”
โ€ข
์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์ด๋‚˜ ๋ฒ„๊ทธํ”ฝ์Šค๋ฅผ ์œ„ํ•ด feature ๋ธŒ๋žœ์น˜๋ฅผ ์‚ฌ์šฉํ–ˆ์–ด์š”
โ€ข
๊ฐœ๋ฐœ ํ˜„ํ™ฉ์„ ๋ณ‘ํ•ฉํ•˜๊ณ  ์ƒˆ๋กœ์šด ๊ฐœ๋ฐœ ๋ธŒ๋žœ์น˜๋ฅผ ๋ถ„๊ธฐํ•˜๊ธฐ ์œ„ํ•ด develop ๋ธŒ๋žœ์น˜๋ฅผ ์‚ฌ์šฉํ–ˆ์–ด์š”
โ€ข
์„œ๋น„์Šค ๋ฆด๋ฆฌ์ฆˆ ์ „, ์ง„ํ–‰ํ˜„ํ™ฉ ๋ช…์„ธ๋‚˜ ํ•„์š” ๋ฌธ์„œ๋ฅผ ๋‚จ๊ธฐ๊ณ  ๊ณต์œ ํ•˜๊ธฐ ์œ„ํ•ด master ๋ธŒ๋žœ์น˜๋ฅผ ์‚ฌ์šฉํ–ˆ์–ด์š”

Discord ๋ฅผ ํ†ตํ•œ ํ˜‘์—…

โ€ข
๊ทผ๋ฌด ์™ธ ์ถ”๊ฐ€์ ์ธ ์ž‘์—…์„ ์œ„ํ•ด DIscord์— ์ ‘์†ํ•˜์—ฌ ํŒ€์›๊ณผ ํ˜‘์—…์„ ์ด์–ด๋‚˜๊ฐ”์–ด์š”

ย ํŒ€์› ์—ญํ•  ๋ถ„๋ฐฐ

๋ฐ•์„œ์˜ (ํŒ€์žฅ)

Backend GCS
Repository ์„ค๊ณ„
Study ๋„๋ฉ”์ธ API ๊ฐœ๋ฐœ
DataLoader ๊ฐœ๋ฐœ
GCS๋ฅผ ํ™œ์šฉํ•œ ์ด๋ฏธ์ง€ ์ €์žฅ ๊ตฌํ˜„
ํ”„๋ ˆ์  ํ…Œ์ด์…˜ ๋‹ด๋‹น

๊น€๋™์ค€

Frontend Docs
component ์ดˆ๊ธฐ ๊ตฌ์กฐ ์ƒ์„ฑ
์ดˆ๊ธฐ ๊ธฐ๋ณธ ๋””์ž์ธ ํ˜•์„ฑ + ๋ผ์šฐํ„ฐ ๊ตฌ์กฐ ์ •๋ฆฝ
๋„ค๋ธŒ๋ฐ”, ์Šคํ„ฐ๋””ํ”Œ๋ ˆ์ด์–ด, ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ธฐ๋Šฅ ๊ตฌํ˜„
๊ธฐ๋ณธ ์ปค์Šคํ…€ํ›… + ์ƒํƒœ๊ด€๋ฆฌ ๊ธฐ๋Šฅ ๊ตฌํ˜„
์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ํ–ฅ์ƒ
ํšŒ์˜๋ก ์ž‘์„ฑ

๋ฐฐ์„œ์—ฐ

Backend Frontend
๋กœ๊ทธ์ธ, ์•Œ๋ฆผ, ํšŒ์›์ •๋ณด ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ
๋งˆ์ดํŽ˜์ด์ง€ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ
ํ”„๋ ˆ์  ํ…Œ์ด์…˜ ๋””์ž์ธ

์ดํƒœํฌ

Backend Devops
DTO ์„ค๊ณ„
User, Articles ๋„๋ฉ”์ธ API ๊ฐœ๋ฐœ
๋น„๋””์˜ค ์‹ฑํฌ, ์ฑ„ํŒ… WebSocket ์„œ๋น„์Šค ๊ฐœ๋ฐœ
EC2 ์ƒ ์šด์˜ ํ™˜๊ฒฝ ์„ค๊ณ„ ๋ฐ ์ปจํ…Œ์ด๋„ˆ ๊ตฌ์ถ•
Jenkins ๋ฐฐํฌ ์ž๋™ํ™”

์ •์ค€ํ˜ธ

Backend Database
Entity ์„ค๊ณ„
Course, Lecture, History ๋„๋ฉ”์ธ API ๊ฐœ๋ฐœ
History ๊ธฐ๋ฐ˜ ํ†ต๊ณ„ ๋ฐ์ดํ„ฐ ์ถ”์ถœ
Youtube ๊ฐ•์˜ ๋ผ๋ฒจ๋ง ์ž๋™ํ™”
DataLoader ๊ฐœ๋ฐœ

์ •์ฑ„๋ฆฐ

Frontend
์Šคํ„ฐ๋”” ๊ตฌ์ธ, ์Šคํ„ฐ๋”” ํŽ˜์ด์ง€ ๊ธฐ๋Šฅ ๊ตฌํ˜„
์ดˆ๊ธฐ ๋กœ๊ทธ์ธ ๋ฐ ์ถ”์ฒœ ๊ฐ•์ขŒ ๊ตฌํ˜„
๋ฉ”์ธํŽ˜์ด์ง€ ๊ตฌํ˜„
์บ๋Ÿฌ์ƒ, Markdown ์ ์šฉ

ย ํ”„๋กœ์ ํŠธ ๊ฒฐ๊ณผ๋ฌผ

ย ์“ฐ์ž„ ์„œ๋น„์Šค ํ™”๋ฉด

๋ฉ”์ธ ํŽ˜์ด์ง€

๊ฐ•์ขŒ ๋ชฉ๋ก ํŽ˜์ด์ง€