{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":615924705,"defaultBranch":"master","name":"java-lms","ownerLogin":"next-step","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-03-19T04:31:20.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/25274995?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1714912958.0","currentOid":""},"activityList":{"items":[{"before":"a7bbdfd50d1a3c1069edb7fe44dc260e53210a0d","after":"beec6b4d759ca0d9dc4910de211dc4efc9238ee8","ref":"refs/heads/hhhhhwi","pushedAt":"2024-05-22T00:00:50.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"javajigi","name":"๋ฐ• ์žฌ์„ฑ","path":"/javajigi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/520500?s=80&v=4"},"commit":{"message":"๐Ÿš€ 3๋‹จ๊ณ„ - ์ˆ˜๊ฐ•์‹ ์ฒญ(DB ์ ์šฉ) (#537)\n\n* feat: ์ˆ˜๊ฐ•์ƒ์— ๋Œ€ํ•œ ๊ฐ์ฒด Student ์ƒ์„ฑ\r\n\r\n* feat: Session(๊ฐ•์˜), Student(์ˆ˜๊ฐ•์ƒ), Image(์ด๋ฏธ์ง€ํŒŒ์ผ)์— ๋Œ€ํ•œ ํ…Œ์ด๋ธ” ์ƒ์„ฑ DDL ์ž‘์„ฑ\r\n\r\n* feat: Session, Student DB ์—ฐ๊ฒฐ์„ ์œ„ํ•œ Repository ์ƒ์„ฑ\r\n\r\n* refactor: PaidSession์˜ ์œ ๋ฃŒ ๊ฐ•์˜์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š” ๋ณ€์ˆ˜ ๊ฐ’์„ ์กฐํšŒํ•˜๊ธฐ ์œ„ํ•ด getter ์˜ค๋ฒ„๋ผ์ด๋“œ\r\n\r\n* feat: Session save ๋ฉ”์†Œ๋“œ ๊ตฌํ˜„ ๋ฐ ํ…Œ์ŠคํŠธ ์ƒ์„ฑ\r\n\r\n* feat: Session ํ…Œ์ด๋ธ”๊ณผ ๋งคํ•‘ํ•˜๋Š” ๊ฐ์ฒด SessionEntity ์ƒ์„ฑ\r\n\r\n* refactor: SessionRepository์˜ ์˜์กด ๊ฐ์ฒด๋ฅผ SessionEntity๋กœ ๋ณ€๊ฒฝ\r\n\r\n* feat: StudentRepository ๊ตฌํ˜„ ๋ฐ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ\r\n\r\n* feat: ImageFile DB ๋“ฑ๋ก์„ ์œ„ํ•œ ๊ฐ์ฒด ๋ฐ ๋“ฑ๋ก ๋ฉ”์†Œ๋“œ, ํ…Œ์ŠคํŠธ ๊ตฌํ˜„\r\n\r\n* feat: ์ˆ˜๊ฐ•์‹ ์ฒญ ์„œ๋น„์Šค ๊ตฌํ˜„\r\n\r\n* refactor: SessionEntityBuilder๋กœ ํ…Œ์ŠคํŠธ ๊ฐœ์„ \r\n\r\n* refactor: ๋ถ€์ƒ์„ฑ์ž๊ฐ€ ์ฃผ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•˜๋„๋ก ์ˆ˜์ •ํ•˜์—ฌ ์ค‘๋ณต ์ฝ”๋“œ ์ œ๊ฑฐ\r\n\r\n* feat: Student์˜ ์ผ๊ธ‰์ปฌ๋ ‰์…˜ Students ์ƒ์„ฑ\r\n\r\n* refactor: Session์ด ์ˆ˜๊ฐ•์ƒ ๋ชฉ๋ก์ธ Students์™€ ๊ด€๊ณ„๋ฅผ ๊ฐ–๊ณ , ์ˆ˜๊ฐ•์‹ ์ฒญ ์‹œ Students ์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„\r\n\r\n* refactor: SessionFactory ๋Œ€์‹  SessionEntity์—์„œ ์ง์ ‘ Session์„ ์ƒ์„ฑํ•˜๋„๋ก ์ˆ˜์ •","shortMessageHtmlLink":"๐Ÿš€ 3๋‹จ๊ณ„ - ์ˆ˜๊ฐ•์‹ ์ฒญ(DB ์ ์šฉ) (#537)"}},{"before":"eda9860cf82c359b17edc17e20bfd2f40c46a1cf","after":"1a31def028361d03d2786ccb05da4a1f6110cdc8","ref":"refs/heads/hisomini","pushedAt":"2024-05-21T00:26:43.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"javajigi","name":"๋ฐ• ์žฌ์„ฑ","path":"/javajigi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/520500?s=80&v=4"},"commit":{"message":"๐Ÿš€ 4๋‹จ๊ณ„ - ์ˆ˜๊ฐ•์‹ ์ฒญ(์š”๊ตฌ์‚ฌํ•ญ ๋ณ€๊ฒฝ) (#534)\n\n* ํ…Œ์ŠคํŠธ๋ช… ์ˆ˜์ •\r\n\r\n* ๊ฐ•์˜ ์ง„ํ–‰์ƒํƒœ, ๋ชจ์ง‘์ƒํƒœ ๋ถ„๋ฆฌ ๋ฐ ์Šคํ‚ค๋งˆ, ํ…Œ์ŠคํŠธ์ฝ”๋“œ ์ˆ˜์ •\r\n\r\n* session ํด๋ž˜์Šค ๋‚ด coverImage list๋กœ ๋ณ€๊ฒฝ\r\n\r\n* Student ๊ฐ์ฒด ๋‚ด EnrollmentApprovalStatus ์ˆ˜๊ฐ• ์Šน์ธ ์ƒํƒœ ๊ฐ’ ์ถ”๊ฐ€ ๋ฐ ์Šคํ‚ค๋งˆ ๋ฐ˜์˜\r\n\r\n* ์ˆ˜๊ฐ• ์Šน์ธ, ์ˆ˜๊ฐ• ์ทจ์†Œ ๋ฉ”์„œ๋“œ ์ถ”๊ฐ€\r\n\r\n* updateStatus, findAllApprovedStudents ๋ฉ”์„œ๋“œ ์ถ”๊ฐ€\r\n\r\n* ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ clear๋ฉ”์„œ๋“œ ์ถ”๊ฐ€\r\n\r\n* ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ clear๋ฉ”์„œ๋“œ ์ถ”๊ฐ€\r\n\r\n* students ๋„๋ฉ”์ธ ๋‚ด getApprovedStudents ์‚ญ์ œ -> repository ๋ฉ”์„œ๋“œ ์ถ”๊ฐ€\r\n\r\n* sessionstudentservice์ฝ”๋“œ ๋ฐ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ\r\n\r\n* ๋ฉ”์„œ๋“œ ์ถ”๊ฐ€\r\n\r\n* session ๋‚ด approval, cancel ๋ฉ”์„œ๋“œ ์ถ”๊ฐ€\r\n\r\n* SessionService ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ, session ๋ชจ์ง‘ ์ƒํƒœ ๋ณ€๊ฒฝ ๋ฉ”์„œ๋“œ ์ถ”๊ฐ€\r\n\r\n* clear ๋ฉ”์„œ๋“œ ์‚ญ์ œ\r\n\r\n* @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD) ์ถ”๊ฐ€\r\n\r\n* SessionEnrollment ๊ฐ์ฒด ์ถ”๊ฐ€ ๋ฐ Session ์ •์  ๋ฉ”์„œ๋“œ ์ œ๊ฑฐ\r\n\r\n* ๋ณ€์ˆ˜๋ช… ์ˆ˜์ • ๋ฐ ๋ถ€ ์ƒ์„ฑ์ž -> ์ฃผ ์ƒ์„ฑ์ž ํ˜ธ์ถœํ•˜๋„๋ก ์ˆ˜์ •\r\n\r\n* createSessionWithProgressStatusAndFee ๋ฉ”์„œ๋“œ ์‚ฌ์šฉ์œผ๋กœ ๋ณ€๊ฒฝ\r\n\r\n* findAny -> findFirst ๋ณ€๊ฒฝ\r\n\r\n* findById ๋ฉ”์„œ๋“œ ์ˆ˜์ •\r\n\r\n* ๊ถŒํ•œ์ด ์žˆ๋Š” ์‚ฌ์šฉ์ž๋งŒ ์ˆ˜๊ฐ• ์Šน์ธ, ์ทจ์†Œ ๊ฐ€๋Šฅํ•˜๋„๋ก ๋ณ€๊ฒฝ","shortMessageHtmlLink":"๐Ÿš€ 4๋‹จ๊ณ„ - ์ˆ˜๊ฐ•์‹ ์ฒญ(์š”๊ตฌ์‚ฌํ•ญ ๋ณ€๊ฒฝ) (#534)"}},{"before":"911117a85dc1d15fea771e37b331c254e2214dfe","after":"a7bbdfd50d1a3c1069edb7fe44dc260e53210a0d","ref":"refs/heads/hhhhhwi","pushedAt":"2024-05-15T03:55:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"javajigi","name":"๋ฐ• ์žฌ์„ฑ","path":"/javajigi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/520500?s=80&v=4"},"commit":{"message":"๐Ÿš€ 2๋‹จ๊ณ„ - ์ˆ˜๊ฐ•์‹ ์ฒญ(๋„๋ฉ”์ธ ๋ชจ๋ธ) (#535)\n\n* refactor: ํŒจํ‚ค์ง€ ๋ณ€๊ฒฝ\r\n\r\n* docs: readme ์ž‘์„ฑ\r\n\r\n* test: Session์— ๋Œ€ํ•œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ\r\n- ๊ฐ•์˜ ์ปค๋ฒ„ ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ํ…Œ์ŠคํŠธ\r\n- ์œ ๋ฃŒ ๊ฐ•์˜์— ๋Œ€ํ•œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ํ…Œ์ŠคํŠธ\r\n\r\n* feat: ๊ฐ•์˜ ์ปค๋ฒ„ ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ๊ฐ์ฒด ์ƒ์„ฑ (SessionImage) ๋ฐ ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ๋ฉ”์†Œ๋“œ ์œ„์น˜ ๋ณ€๊ฒฝ\r\n\r\n* feat: ๊ฐ•์˜์— ๋Œ€ํ•œ ๊ฐ์ฒด ์ƒ์„ฑ (Session) ๋ฐ validation ๊ตฌํ˜„\r\n\r\n* feat: ๊ฐ•์˜ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” SessionState ๊ตฌํ˜„\r\n\r\n* feat: ์ˆ˜๊ฐ•์‹ ์ฒญ ๊ธฐ๋Šฅ ๊ตฌํ˜„\r\n- ์ˆ˜๊ฐ• ์‹ ์ฒญ์— ๋Œ€ํ•œ ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„ : Enrollment\r\n- FreeSession, PaidSession์œผ๋กœ ์œ /๋ฌด๋ฃŒ ๊ฐ•์˜๋ฅผ ๊ตฌ๋ถ„\r\n\r\n* feat: Session์˜ ์ผ๊ธ‰ ์ฝœ๋ ‰์…˜ Sessions ์ƒ์„ฑ ๋ฐ Course์— ์„ ์–ธ\r\n\r\n* feat: ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ private์œผ๋กœ ์„ ์–ธ\r\n\r\n* feat: Session์„ ์ถ”์ƒํด๋ž˜์Šค๋กœ ๋งŒ๋“ค์–ด ์ƒ์† ๊ตฌ์กฐ๋กœ ๊ตฌํ˜„\r\n\r\n* refactor: Builder ํŒจํ„ด์„ ํ†ตํ•ด ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๊ฐ€ ๋งŽ์•„ ๋ณต์žกํ•œ ๊ฐ์ฒด์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ๊ฐœ์„ ","shortMessageHtmlLink":"๐Ÿš€ 2๋‹จ๊ณ„ - ์ˆ˜๊ฐ•์‹ ์ฒญ(๋„๋ฉ”์ธ ๋ชจ๋ธ) (#535)"}},{"before":"de587b9b414b8ec9ce8f32cf255ec1be8a8670a2","after":"d6354602de0c0b6200a8269c97f842dbd8f31959","ref":"refs/heads/kbzz17","pushedAt":"2024-05-08T20:43:16.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"javajigi","name":"๋ฐ• ์žฌ์„ฑ","path":"/javajigi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/520500?s=80&v=4"},"commit":{"message":"๐Ÿš€ 1๋‹จ๊ณ„ - ๋ ˆ๊ฑฐ์‹œ ์ฝ”๋“œ ๋ฆฌํŒฉํ„ฐ๋ง ๋ฏธ์…˜ ์™„๋ฃŒ (#533)\n\n* [docs] ์งˆ๋ฌธ ์‚ญ์ œ ์š”๊ตฌ์‚ฌํ•ญ ์ž‘์„ฑ\r\n\r\n* [feat] ๋กœ๊ทธ์ธ ์‚ฌ์šฉ์ž์™€ ์งˆ๋ฌธํ•œ ์‚ฌ๋žŒ์ด ๊ฐ™์€ ๊ฒฝ์šฐ ์‚ญ์ œ ๊ฐ€๋Šฅํ•˜๋‹ค.\r\n\r\n* [feat] ์‚ญ์ œ ์‹œ ๋ฐ์ดํ„ฐ ์ƒํƒœ๋ฅผ ์‚ญ์ œ ์ƒํƒœ(true)๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค\r\n\r\n* [refactor] ๋‹ต๊ธ€ ์‚ญ์ œ ์‹œ ์‚ญ์ œ ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด์•ผ ํ•œ๋‹ค\r\n\r\n* [refactor] ์งˆ๋ฌธ์ž์™€ ๋‹ต๋ณ€๊ธ€์˜ ๋ชจ๋“  ๋‹ต๋ณ€์ž๊ฐ€ ๊ฐ™์ง€ ์•Š์€ ๊ฒฝ์šฐ ์‚ญ์ œ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.\r\n\r\n* [refactor] ๋‹ต๋ณ€ ์‚ญ์ œ ์‹œ DeleteHisotry๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.\r\n\r\n* [refactor] ์งˆ๋ฌธ๊ธ€ ๋ฐ ๋‹ต๋ณ€ ์‚ญ์ œ ์‹œ List ๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.\r\n\r\n* [refactor] ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ฉ”์†Œ๋“œ ์ œ๊ฑฐ\r\n\r\n* [refactor] QnAService ๋ฆฌํŒฉํ† ๋ง\r\n\r\n* [refactor] ๋‹ต๋ณ€ ์‚ญ์ œ ๊ถŒํ•œ ์ฒดํฌ validation\r\n\r\n* [refactor] ๊ธ€ ์‚ญ์ œ ๊ธฐ๋Šฅ, ์‚ญ์ œ ํžˆ์Šคํ† ๋ฆฌ ์ƒ์„ฑ ๋ถ€๋ถ„ ๋ถ„๋ฆฌ","shortMessageHtmlLink":"๐Ÿš€ 1๋‹จ๊ณ„ - ๋ ˆ๊ฑฐ์‹œ ์ฝ”๋“œ ๋ฆฌํŒฉํ„ฐ๋ง ๋ฏธ์…˜ ์™„๋ฃŒ (#533)"}},{"before":null,"after":"de587b9b414b8ec9ce8f32cf255ec1be8a8670a2","ref":"refs/heads/kbzz17","pushedAt":"2024-05-05T12:42:38.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"javajigi","name":"๋ฐ• ์žฌ์„ฑ","path":"/javajigi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/520500?s=80&v=4"},"commit":{"message":"feat(payment): create Payment object and find Payment by id","shortMessageHtmlLink":"feat(payment): create Payment object and find Payment by id"}},{"before":"d07839b2ff860662a73d9740a234497a51231f1e","after":"8c2999aaf3fc0646078c035a4f89ca7ccf754f17","ref":"refs/heads/hyungjunn","pushedAt":"2024-05-05T06:39:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"javajigi","name":"๋ฐ• ์žฌ์„ฑ","path":"/javajigi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/520500?s=80&v=4"},"commit":{"message":"4๋‹จ๊ณ„ - ์ˆ˜๊ฐ•์‹ ์ฒญ(์š”๊ตฌ์‚ฌํ•ญ ๋ณ€๊ฒฝ) (#530)\n\n* doc(README.md): write todolist\r\n\r\n* Feat: ๊ฐ•์˜ ์ƒํƒœ๊ฐ€ IN_PROGRESS์ธ์ง€ ์•„๋‹Œ์ง€ ํ™•์ธํ•œ๋‹ค\r\n\r\n* Feat: ๋ชจ์ง‘ ์ƒํƒœ๊ฐ€ RECRUITING์ธ์ง€ ์•„๋‹Œ์ง€ ํ™•์ธํ•œ๋‹ค\r\n\r\n* Refactor: ๊ฐ•์˜ ์ƒํƒœ๊ฐ€ IN_PROGRESS์ผ ๋•Œ๋งŒ ์ˆ˜๊ฐ•์‹ ์ฒญ์ด ๊ฐ€๋Šฅํ•˜๋‹ค\r\n\r\n* Feat: ๋ชจ์ง‘ ์ƒํƒœ๊ฐ€ RECRUITING์ผ ๋•Œ๋งŒ ์ˆ˜๊ฐ•์‹ ์ฒญ์ด ๊ฐ€๋Šฅํ•˜๋‹ค\r\n\r\n* Refactor: IN_PROGRESS๋กœ ์š”๊ตฌ์‚ฌํ•ญ์ด ๋ณ€๊ฒฝํ•จ์— ๋”ฐ๋ผ ๊ธฐ์กด ํ•„๋“œ๋ฅผ ์—†์• ๋ผ\r\n\r\n* Refactor: image -> List images\r\n\r\n* Feat: ์ˆ˜๊ฐ•์‹ ์ฒญํ•œ ์‚ฌ๋žŒ(Student) ์ค‘ ์„ ๋ฐœ๋œ ์ธ์›๋งŒ์„ ์ˆ˜๊ฐ• ์Šน์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค\r\n\r\n* Feat: ์ˆ˜๊ฐ•์‹ ์ฒญํ•œ ์‚ฌ๋žŒ(Student) ์ค‘ ์„ ๋ฐœ๋˜์ง€ ์•Š์€ ์‚ฌ๋žŒ์€ ์ˆ˜๊ฐ• ์ทจ์†Œ ํ•  ์ˆ˜ ์žˆ๋‹ค\r\n\r\n* Feat: ์„ ๋ฐœ๋˜์ง€ ์•Š์€ ์‚ฌ๋žŒ์„ ์ˆ˜๊ฐ• ์Šน์ธํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์˜ˆ์™ธ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค\r\n\r\n* Feat: SessionService#approveStudent, SessionService#disApproveStudent\r\n\r\n* delete unnecessary construct\r\n\r\n* feat(ํ”ผ๋“œ๋ฐฑ ๋ฐ˜์˜): ์ˆ˜๊ฐ• ์Šน์ธ, ์ทจ์†Œ๋Š” ๊ถŒํ•œ์ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•˜๋ผ\r\n\r\n* feat: findById ๋ฅผ ๊ตฌํ˜„ํ•˜๋ผ\r\n\r\n* refactor(ํ”ผ๋“œ๋ฐฑ ๋ฐ˜์˜): ์„ ๋ฐœ ์ƒํƒœ๋ฅผ ์ œ๊ฑฐํ•˜๋ผ\r\n\r\n* feat(ํ”ผ๋“œ๋ฐฑ ๋ฐ˜์˜): ๊ฐ•์˜๊ฐ€ ์„ ๋ฐœ์ด ํ•„์š”ํ•œ ๊ฐ•์˜์ธ์ง€ ํŒ๋ณ„ํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๋ผ\r\n\r\n* feat(ํ”ผ๋“œ๋ฐฑ ๋ฐ˜์˜): ๊ฐ•์˜ ์Šน์ธํ•  ๋•Œ ์ด ๊ฐ•์˜๊ฐ€ ์„ ๋ฐœ์„ ์š”ํ•˜๋Š” ๊ฐ•์˜์ธ์ง€ ํ™•์ธํ•˜๋Š” ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜๋ผ","shortMessageHtmlLink":"4๋‹จ๊ณ„ - ์ˆ˜๊ฐ•์‹ ์ฒญ(์š”๊ตฌ์‚ฌํ•ญ ๋ณ€๊ฒฝ) (#530)"}},{"before":"0270fa67f421d5ca85716204349b12b33ac8bc5c","after":"4725bbcc6658353c90b4be644f441bf17d373cd0","ref":"refs/heads/namhyeop","pushedAt":"2024-05-05T06:24:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"javajigi","name":"๋ฐ• ์žฌ์„ฑ","path":"/javajigi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/520500?s=80&v=4"},"commit":{"message":"Step4 - ์ˆ˜๊ฐ•์‹ ์ฒญ(์š”๊ตฌ์‚ฌํ•ญ ๋ณ€๊ฒฝ) (#529)\n\n* feat : ๊ฐ•์˜ ๋ชจ์ง‘ ์ƒํƒœ(RecrutimentState) -> ๊ฐ•์˜ ์ง„ํ–‰ ์ƒํƒœ(ProgressState)๋กœ ๋ณ€๊ฒฝ\r\n\r\n1.์š”๊ตฌ์‚ฌํ•ญ๋ณ€๊ฒฝ์œผ๋กœ ๊ฐ•์˜ ๋ชจ์ง‘ ์ƒํƒœ์—์„œ ๊ฐ•์˜ ์ง„ํ–‰ ์ƒํƒœ๋กœ ๋ณ€๊ฒฝ\r\n2.ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‚ญ์ œ ์กฐ๊ฑด์„ ์ง€ํ‚ค๊ธฐ์œ„ํ•ด ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€\r\n3.์ผ๋ถ€ ๊ฐ•์˜ ๋ชจ์ง‘ ์ƒํƒœ ๊ด€๋ จ๋œ ๋ฉ”์†Œ๋“œ ์ด๋ฆ„์„ ๊ฐ•์˜ ์ง„ํ–‰์ƒํƒœ ๋ฉ”์†Œ๋“œ์™€ ์—ฐ๊ด€๋˜๋„๋ก ์ด๋ฆ„ ๋ณ€๊ฒฝ\r\n\r\n* feat : ๊ฐ•์˜ ๋ชจ์ง‘ ์ƒํƒœ(RecrutimentState) -> ๊ฐ•์˜ ์ง„ํ–‰ ์ƒํƒœ(ProgressState)๋กœ ๋ณ€๊ฒฝ\r\n\r\n* feat : RecrutimentState ์ถ”๊ฐ€\r\n\r\n* feat : ๊ฐ•์˜ ์ง„ํ–‰ ์ƒํƒœ ์ถ”๊ฐ€๋กœ ์ธํ•œ ๊ธฐ์กด ์ฝ”๋“œ ์ˆ˜์ •\r\n\r\n* feat : ๊ฐ•์˜ ์ˆ˜๊ฐ•์‹ ์ฒญ ๊ฐ€๋Šฅ์—ฌ๋ถ€ ๊ฒ€์ฆ ๊ธฐ๋Šฅ ๋ณ€๊ฒฝ\r\n\r\n* feat : ์ปค๋ฒ„ ์ •์ฑ… ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•œ List ์ถ”๊ฐ€\r\n\r\n* feat : ๊ธฐ์กด์— ์‚ฌ์šฉ์ค‘์ธ image ์ œ๊ฑฐ\r\n\r\n* feat : StudentType ์ถ”๊ฐ€\r\n\r\n* feat : enrollment ID ์ถ”๊ฐ€\r\n\r\n* feat : NsUser StudentType ์ถ”๊ฐ€\r\n\r\n* feat : enrollment Id์ถ”๊ฐ€๋กœ ์ธํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •\r\n\r\n* feat : userRepository ์ฟผ๋ฆฌ ์ˆ˜์ •\r\n\r\n* feat : Student ๊ฐ์ฒด์— ์Šน์ธ์ƒํƒœ, ์Šน์ธํƒ€์ž… ์ถ”๊ฐ€๋กœ ์ธํ•œ DB ๋งคํ•‘ ์ž‘์—…\r\n\r\n* feat : ์Šน์ธ,์ทจ์†Œ๋ฅผ ํ†ตํ•œ ์ˆ˜๊ฐ• ๊ถŒํ•œ ๋ถ€์—ฌ\r\n\r\n* feat : ๋ถˆํ•„์š”ํ•œ ToString๋ฌธ ์‚ญ์ œ\r\n\r\n* feat : Enrollment ์ถ”์ƒํ™” ์‚ญ์ œ (ํ”ผ๋“œ๋ฐฑ ๋ฐ˜์˜)\r\n\r\n* feat : enrollment ์ธ์Šคํ„ด์Šค ์ƒˆ์„ฑํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ์ˆ˜์ •(ํ”ผ๋“œ๋ฐฑ ๋ฐ˜์˜)\r\n\r\n* feat : ๊ธฐ์กด enrollment ์กฐํšŒ ๋ฉ”์†Œ๋“œ ์‚ญ์ œ\r\n\r\n* feat : ํ…Œ์ŠคํŠธ ์‹คํŒจ๋กœ ์ธํ•œ Feetype ์กฐํšŒ๋กœ์ง ์ˆ˜์ •\r\n\r\n* feat : student paymentAmount ํ•„๋“œ ์‚ญ์ œ\r\n\r\n* feat : student ๊ฐ์ฒด ์ฃผ์ƒ์„ฑ์ž๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ƒ์„ฑ\r\n\r\n* feat : student ๊ฐ์ฒด ๋ฉ”์†Œ๋“œ๋ช… ์ˆ˜์ •(ํ”ผ๋“œ๋ฐฑ ๋ฐ˜์˜)","shortMessageHtmlLink":"Step4 - ์ˆ˜๊ฐ•์‹ ์ฒญ(์š”๊ตฌ์‚ฌํ•ญ ๋ณ€๊ฒฝ) (#529)"}},{"before":"de587b9b414b8ec9ce8f32cf255ec1be8a8670a2","after":"911117a85dc1d15fea771e37b331c254e2214dfe","ref":"refs/heads/hhhhhwi","pushedAt":"2024-05-03T00:02:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"javajigi","name":"๋ฐ• ์žฌ์„ฑ","path":"/javajigi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/520500?s=80&v=4"},"commit":{"message":"๐Ÿš€ 1๋‹จ๊ณ„ - ๋ ˆ๊ฑฐ์‹œ ์ฝ”๋“œ ๋ฆฌํŒฉํ„ฐ๋ง (#517)\n\n* step1 ๋ฆฌํŒฉํ† ๋ง\r\n\r\n* step1 ๋ฆฌํŒฉํ† ๋ง\r\n\r\n* step1 Question ๋ฉ”์†Œ๋“œ๋ถ„๋ฆฌ\r\n\r\n* step1 Answer ๋ฉ”์†Œ๋“œ ๊ฒฐํ•ฉ (๋กœ๊ทธ์ธ์œ ์ € ๊ฒ€์ฆ & delete)\r\n\r\n* step1 ๋ถˆํ•„์š”ํ•œ ํ…Œ์ŠคํŠธ์ฝ”๋“œ ์‚ญ์ œ\r\n\r\n* step1 1์ฐจ ๋ฆฌ๋ทฐ ๋‚ด์šฉ ๋ฐ˜์˜\r\n\r\n* refactor: ๋ฉ”์†Œ๋“œ ๋‚ด์šฉ์— ๋งž๊ฒŒ ๋ณ€์ˆ˜๋ช… ๋ณ€๊ฒฝ\r\n\r\n* refactor: inner class๋ฅผ static ์œผ๋กœ ๊ด€๋ฆฌ\r\n\r\n* refactor: ๋‚ด์šฉ์— ๋งž๋Š” exception message๋กœ ์ˆ˜์ •\r\n\r\n* refactor: ์งˆ๋ฌธ ์‚ญ์ œ์™€ ์‚ญ์ œ ๋‚ด์—ญ ๋“ฑ๋ก์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ํ•˜๋‚˜์˜ ๋ฉ”์†Œ๋“œ๋กœ ํ†ตํ•ฉ\r\n\r\n* refactor: ๋ฏธ์‚ฌ์šฉ ๋ณ€์ˆ˜ ์‚ญ์ œ\r\n\r\n---------\r\n\r\nCo-authored-by: yushin ","shortMessageHtmlLink":"๐Ÿš€ 1๋‹จ๊ณ„ - ๋ ˆ๊ฑฐ์‹œ ์ฝ”๋“œ ๋ฆฌํŒฉํ„ฐ๋ง (#517)"}},{"before":"8de3dde358dab6ad1aebc019aa111d3bbe5be6e3","after":"f4656421b1f27b8ff6cf26ee028f5641c26dbc2e","ref":"refs/heads/dongwooe","pushedAt":"2024-05-02T02:26:03.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"javajigi","name":"๋ฐ• ์žฌ์„ฑ","path":"/javajigi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/520500?s=80&v=4"},"commit":{"message":"Step3 ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค ~! (#488)\n\n* feat : ์ƒ์„ฑ์‹œ๊ฐ„, ์—…๋ฐ์ดํŠธ ์‹œ๊ฐ„ ํ•„๋“œ๋ฅผ ๊ฐ€์ง€๋Š” BaseTimeEntity ์ถ”๊ฐ€ ๋ฐ Session, CoverImage์— ์ ์šฉ\r\n\r\n* feat : session table ์ถ”๊ฐ€\r\n\r\n* feat : Session, SessionRepository ์ˆ˜์ •\r\n\r\n* feat : SessionRepository ๊ตฌํ˜„์ฒด ๋ฐ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€\r\n\r\n* feat : CoverImageRepository ๊ตฌํ˜„์ฒด ๋ฐ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€\r\n\r\n* refactor : JdbcSessionRepository ๋งคํ•‘ ๊ณผ์ •์—์„œ ์ƒ์„ฑ์ž๋ฅผ ํ†ตํ•ด์„œ ๋งคํ•‘ํ•˜๋„๋ก ์ˆ˜์ •\r\n\r\n* refactor : toLocalDate, toLocalDateTime ๋กœ์ง์„ Util์— ๋ถ„๋ฆฌ\r\n\r\n* refactor : Course ๋‚ด๋ถ€์˜ ๋ฉค๋ฒ„๋ณ€์ˆ˜๋“ค์„ final๋กœ ์„ค์ •\r\n\r\n* refactor : ImageType ๋‚ด๋ถ€ map์˜ ์ƒ์„ฑ ๊ฐ„์†Œํ™”\r\n\r\n* refactor : getImageType Optional์„ ํ™œ์šฉํ•ด์„œ ๊ฐœ์„ \r\n\r\n* refactor : ์œ ํšจ์„ฑ ๊ฒ€์ฆ ๋กœ์ง ๋ฉ”์„œ๋“œ ๋ถ„๋ฆฌ\r\n\r\n* refactor : ๊ฐœํ–‰ ์ถ”๊ฐ€\r\n\r\n* style : ์ฝ”๋“œ ํฌ๋ฉงํŒ… ์ ์šฉ\r\n\r\n* JdbcSessionRepository์—์„œ Session ์กฐํšŒ ์‹œ์— CoverImage๋„ join์œผ๋กœ ๊ฐ™์ด ์กฐํšŒํ•˜๋„๋ก ์ˆ˜์ •\r\n\r\n* CoverImage์˜ getter๋“ค์—์„œ ์›์‹œ๊ฐ’์„ ์ง์ ‘ ๋ฆฌํ„ดํ•˜๋„๋ก ์ˆ˜์ •\r\n\r\n* ํ…Œ์ŠคํŠธ ๋ฉฑ๋“ฑ์„ฑ์„ ์œ„ํ•ด์„œ DirtiesContext ์ถ”๊ฐ€\r\n\r\n* Repository ๋‚ด์˜ ์ฟผ๋ฆฌ ์˜ˆ์•ฝ์–ด๋“ค ๋Œ€๋ฌธ์ž๋กœ ์ˆ˜์ •\r\n\r\n* RepositoryTest ๋‚ด์—์„œ log ์ถœ๋ ฅํ•˜๋Š” ์ฝ”๋“œ ์‚ญ์ œ\r\n\r\n* feat : Course ์กฐํšŒ ์‹œ์— Session๋„ ๊ฐ™์ด ์กฐํšŒํ•˜๋„๋ก ์ˆ˜์ •\r\n\r\n* refactor : CoverImage๊ฐ€ Session id๊ฐ€ ์•„๋‹Œ Session์„ ์ฐธ์กฐํ•˜๋„๋ก ์ˆ˜์ •","shortMessageHtmlLink":"Step3 ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค ~! (#488)"}},{"before":"c3f5d28ba84334a5130fbfd9f4dedddd01070a48","after":"304c139b8caeb4208b022742a6331626b881f444","ref":"refs/heads/dongock","pushedAt":"2024-05-01T11:58:46.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"javajigi","name":"๋ฐ• ์žฌ์„ฑ","path":"/javajigi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/520500?s=80&v=4"},"commit":{"message":"2๋‹จ๊ณ„ - ์ˆ˜๊ฐ•์‹ ์ฒญ(๋„๋ฉ”์ธ ๋ชจ๋ธ) (#511)\n\n* refactor: [2-1] Post ์ œ๊ฑฐ ๋ฐ makeDeleteHistory ๋ฉ”์†Œ๋“œ ์œ„์น˜ ๋ณ€๊ฒฝ\r\n\r\n* doc: ์ง„ํ–‰ ๋ฐฉํ–ฅ ๊ด€๋ จ ๋ฌธ์„œ ์ •๋ฆฌ\r\n\r\n* feat: [2-2] ImageTest ์ƒ์„ฑ ๋ฐ ImageByte validate ๊ตฌํ˜„ ๋ฐ Test ์ƒ์„ฑ\r\n\r\n* feat: [2-3] ImageType Enum ์ƒ์„ฑ ๋ฐ ImageType validate ๊ตฌํ˜„ ๋ฐ Test ์ƒ์„ฑ\r\n\r\n* feat: [2-4] ImageWidth, Height, Rate validate ๊ตฌํ˜„ ๋ฐ Test ์ƒ์„ฑ\r\n\r\n* feat:[2-5] ๋ฌด๋ฃŒ ๊ฐ•์˜ ๊ฐ์ฒด ์ƒ์„ฑ ๋ฐ Test ๊ตฌํ˜„\r\n\r\n* feat:[2-6] ๊ฐ•์˜ ๊ธฐ๊ฐ„ Test ๊ตฌํ˜„\r\n\r\n* feat:[2-7] ์œ ๋ฃŒ ๊ฐ•์˜ ๊ฐ์ฒด ์ƒ์„ฑ ๋ฐ Test ๊ตฌํ˜„\r\n\r\n* feat:[2-8] Payments ์ƒ์„ฑ\r\n\r\n* refactor:[2-9] orElseThrow throw ์ œ๊ฑฐ ๋ฐ ๊ฐ์ฒด ์ƒ์„ฑ์œผ๋กœ ๋ณ€๊ฒฝ\r\n\r\n* refactor:[2-10] SessionImage ๋ณ€์ˆ˜๋“ค ํด๋ž˜์Šค ๋ถ„๋ฆฌ\r\n\r\n* refactor:[2-11] SessionPeriod String -> LocalDate ์ด์šฉ์œผ๋กœ ๋ณ€๊ฒฝ\r\n\r\n* refactor:[2-12] Exception Test -> assertThatIllegalArgumentException ์ ์šฉ\r\n\r\n* refactor:[2-13] Course ์ง์ ‘ ์ฐธ์กฐ ์•„๋‹Œ CourseId๋ฅผ ํ†ตํ•œ ๊ฐ„์ ‘์ฐธ์กฐ๋กœ ๋ณ€๊ฒฝ\r\n\r\n* refactor:[2-14] Session์— ID ์ถ”๊ฐ€\r\n\r\n* refactor:[2-15] ์ผ๊ธ‰ ์ปฌ๋ ‰์…˜ Sessions ์ƒ์„ฑ ๋ฐ Test ๊ตฌํ˜„, Course์— ๋ณ€์ˆ˜๋กœ ์ถ”๊ฐ€\r\n\r\n* refactor:[2-16] Session ์ƒ์„ฑ ๋ฐฉ์‹ ๋ณ€๊ฒฝ ๋ฐ Test ์ถ”๊ฐ€\r\n\r\n* refactor:[2-17] illegalArgumentException ๊ด€๋ จ Test์— assertThatIllegalArgumentException ์ ์šฉ","shortMessageHtmlLink":"2๋‹จ๊ณ„ - ์ˆ˜๊ฐ•์‹ ์ฒญ(๋„๋ฉ”์ธ ๋ชจ๋ธ) (#511)"}},{"before":"fd572f2b626b3744e1efb1435e51c3b286a117d8","after":"93481c1d877b8d85d71f8e375986601d56280fd9","ref":"refs/heads/kimsunghyun1995","pushedAt":"2024-04-30T00:08:23.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"javajigi","name":"๋ฐ• ์žฌ์„ฑ","path":"/javajigi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/520500?s=80&v=4"},"commit":{"message":"๐Ÿš€ 2๋‹จ๊ณ„ - ์ˆ˜๊ฐ•์‹ ์ฒญ(๋„๋ฉ”์ธ ๋ชจ๋ธ) (#528)\n\n* doc : readme ์ƒ์„ฑ\r\n\r\n* test: ๊ฐ•์˜ ์ด๋ฏธ์ง€ ๊ด€๋ จ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ\r\n\r\n* feat: ๊ฐ•์˜ ์ด๋ฏธ์ง€ ํด๋ž˜์Šค ์ƒ์„ฑ\r\n\r\n* test: ์œ ๋ฌด๋ฃŒ๊ฐ•์˜ ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธ\r\n\r\n* feat: ์œ ๋ฌด๋ฃŒ๊ฐ•์˜ ํƒ€์ž… ํด๋ž˜์Šค ์ƒ์„ฑ ๋ฐ ๊ตฌํ˜„\r\n\r\n* feat: ๊ฐ•์˜ ์ƒํƒœ enum ํด๋ž˜์Šค ์ƒ์„ฑ\r\n\r\n* refactor: ์˜ˆ์™ธ์‚ฌํ•ญ ๋ฉ”์†Œ๋“œ๋กœ ์ถ”์ถœ\r\n\r\n* refactor: ํด๋ž˜์Šค ๋„ค์ž„ ๋ณ€๊ฒฝ\r\n\r\n* feat: ์ƒ์„ฑ์ž ์ถ”๊ฐ€์— ์˜ํ•œ ์ž์‹ ์ƒ์„ฑ์ž ์ˆ˜์ •\r\n\r\n* test: ์‚ฌ์šฉํ•  ํด๋ž˜์Šค static final๋กœ ์„ ์–ธ\r\n\r\n* refactor: ๊ธฐ๊ฐ„์— ๋Œ€ํ•œ ํด๋ž˜์Šค ์ถ”๊ฐ€\r\n\r\n* fix: ์ž˜๋ชป๋œ ๋„ค์ด๋ฐ ์‚ญ์ œ\r\n\r\n* refactor: ๊ธฐ๊ฐ„ ํด๋ž˜์Šค ์ถ”๊ฐ€๋กœ ์ธํ•œ ํ…Œ์ŠคํŠธ์ฝ”๋“œ ์ˆ˜์ •\r\n\r\n* feat: ์ฝ”์Šค์— ์ˆ˜๊ฐ•์ •๋ณด list๋กœ ์ถ”๊ฐ€\r\n\r\n* doc: ๋ฌธ์„œ ์—…๋ฐ์ดํŠธ\r\n\r\n* refactor: imageInfo ์›์‹œ๊ฐ’ ํฌ์žฅ\r\n\r\n* test: ์ด๋ฏธ์ง€ ์›์‹œ๊ฐ’ ํฌ์žฅ ๊ด€๋ จ ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€\r\n\r\n* feat: ๊ฐ•์˜ ๊ด€๋ จ ํด๋ž˜์Šค ์ถ”๊ฐ€\r\n\r\n* test: period ํด๋ž˜์Šค ์ƒ์„ฑ ํ…Œ์ŠคํŠธ\r\n\r\n* refactor: ์œ ๋ฃŒ๊ฐ•์˜ ๋ณ€์ˆ˜ ๋ฌถ์–ด์„œ ํด๋ž˜์Šค ์ƒ์„ฑ\r\n\r\n* test: ์œ ๋ฃŒ๊ฐ•์˜ ๊ด€๋ จ ๋ณ€์ˆ˜ ํด๋ž˜์Šค ์ƒ์„ฑ ํ›„ ํ…Œ์ŠคํŠธ์ฝ”๋“œ ์ˆ˜์ •\r\n\r\n* fix: course์— Session ์˜์กด์„ฑ ์ถ”๊ฐ€\r\n\r\n* refactor: final ์ถ”๊ฐ€\r\n\r\n* refactor: ๋ถ€ ์ƒ์„ฑ์ž๊ฐ€ ์ฃผ ์ƒ์„ฑ์ž ํ˜ธ์ถœํ•˜๋„๋ก ์ˆ˜์ •\r\n\r\n* refactor: ์„ธ์…˜ ์‹ ์ฒญํ•œ ์œ ์ € ์ •๋ณด ์ถ”๊ฐ€\r\n\r\n** NsUsers\r\n\r\n* feat: ์ˆ˜๊ฐ•์‹ ์ฒญ ๋กœ์ง ์ถ”๊ฐ€","shortMessageHtmlLink":"๐Ÿš€ 2๋‹จ๊ณ„ - ์ˆ˜๊ฐ•์‹ ์ฒญ(๋„๋ฉ”์ธ ๋ชจ๋ธ) (#528)"}},{"before":"017559fc4a8ad49e97345adaddf3a7c0b7380ccb","after":"c491b7061016076b4725b6d30136f82552b11ddc","ref":"refs/heads/jaejeong1","pushedAt":"2024-04-28T23:36:23.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"javajigi","name":"๋ฐ• ์žฌ์„ฑ","path":"/javajigi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/520500?s=80&v=4"},"commit":{"message":"Step4 (#527)\n\n* feat: ์ฃผ์ƒ์„ฑ์ž ์‚ฌ์šฉํ•˜๋„๋ก ๋ณ€๊ฒฝ\r\n\r\n* feat: ๊ฐ•์˜ ์ˆ˜๊ฐ•์‹ ์ฒญ์€ ๊ฐ•์˜ ์ƒํƒœ๊ฐ€ ๋ชจ์ง‘์ค‘์ผ ๋•Œ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค\r\n\r\n* feat: ๊ฐ•์˜๋Š” ๊ฐ•์˜ ์ปค๋ฒ„ ์ด๋ฏธ์ง€ ์ •๋ณด๋ฅผ ๊ฐ€์ง„๋‹ค\r\n\r\n* feat: ๊ฐ•์‚ฌ๊ฐ€ ์Šน์ธํ•˜์ง€ ์•Š์•„๋„ ์ˆ˜๊ฐ• ์‹ ์ฒญํ•˜๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์ด ์ˆ˜๊ฐ• ๊ฐ€๋Šฅํ•˜๋‹ค\r\n\r\n* feat: ํ”ผ๋“œ๋ฐฑ ๋ฐ˜์˜\r\n\r\n* feat: ํ”ผ๋“œ๋ฐฑ ๋ฐ˜์˜\r\n\r\n---------\r\n\r\nCo-authored-by: socar-cloud ","shortMessageHtmlLink":"Step4 (#527)"}},{"before":"22071a296101dad837a5cce717a1f83e3531566c","after":"d07839b2ff860662a73d9740a234497a51231f1e","ref":"refs/heads/hyungjunn","pushedAt":"2024-04-28T11:39:28.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"javajigi","name":"๋ฐ• ์žฌ์„ฑ","path":"/javajigi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/520500?s=80&v=4"},"commit":{"message":"3๋‹จ๊ณ„ - ์ˆ˜๊ฐ•์‹ ์ฒญ(DB ์ ์šฉ) (#514)\n\n* Refactor: ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝํ•˜๊ธฐ ์ „์— ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ์ง„ํ–‰ํ•˜๋„๋ก ๋ฆฌํŒฉํ„ฐ๋งํ•˜๋ผ\r\n\r\n* Refactor: NsUser์—์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ฒŒ ๋œ ์ฝ”๋“œ๋Š” ์‚ญ์ œํ•˜๋ผ\r\n\r\n* Feat: capacity ๊ฐ’ ๊ฐ์ฒด ์ƒ์„ฑ\r\n\r\n* Doc(README.md): ๊ตฌํ˜„ ๋ชฉ๋ก ์‚ฌํ•ญ ์ •๋ฆฌ\r\n\r\n* Feat: image ํ…Œ์ด๋ธ” ์ƒ์„ฑ\r\n\r\n* Test: ์ด๋ฏธ์ง€๋ฅผ ์ €์žฅํ•œ๋‹ค\r\n\r\n* Feat: ns_user ํ…Œ์ด๋ธ” ์ƒ์„ฑ\r\n\r\n* Feat: session_register_details ํ…Œ์ด๋ธ” ์ƒ์„ฑ\r\n\r\n* Test: ์„ธ์…˜ ๋“ฑ๋ก ์ƒ์„ธ๋ฅผ ์ €์žฅํ•œ๋‹ค\r\n\r\n* Test: ์ด๋ฏธ์ง€๋ฅผ ์กฐํšŒํ•œ๋‹ค\r\n\r\n* Doc(README.md): ๊ตฌํ˜„ ๋ชฉ๋ก ์‚ฌํ•ญ ์ˆ˜์ •\r\n\r\n* Test: ์„ธ์…˜ ์•„์ด๋””๋กœ ์ฐธ์—ฌ์ž ๋ชฉ๋ก์„ ์กฐํšŒํ•œ๋‹ค\r\n\r\n* Test: ์„ธ์…˜ ๋“ฑ๋ก ์ƒ์„ธ๋ฅผ ์กฐํšŒํ•œ๋‹ค\r\n\r\n* Test: ์„ธ์…˜์„ ์ €์žฅํ•œ๋‹ค\r\n\r\n* Test: ์„ธ์…˜์„ ์กฐํšŒํ•œ๋‹ค\r\n\r\n* Feat: ์ˆ˜๊ฐ•์‹ ์ฒญ์„ ํ•œ๋‹ค\r\n\r\n* Refactor: register์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ฐ”๊พผ๋‹ค\r\n\r\n* Fix: ์ •ํ•ฉ์„ฑ๋ฌธ์ œ๋กœ ์ €์žฅ ์กฐํšŒ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๋‚˜๋กœ ํ•ฉ์นœ๋‹ค\r\n\r\n* Style: ํ•„์š”์—†๋Š” import๋ฌธ, ์ฃผ์„ ์ œ๊ฑฐ\r\n\r\n* Test: ์ˆ˜๊ฐ•์‹ ์ฒญ์„ ํ•œ๋‹ค\r\n\r\n* Test: ์ˆ˜๊ฐ•์‹ ์ฒญ ๋กœ์ง์„ ์ •ํ™•ํ•˜๊ฒŒ ์ˆ˜ํ–‰๋˜๋„๋ก ๋ฆฌํŒฉํ„ฐ๋งํ•˜๋ผ\r\n\r\n* Feat: 'Student' domain์„ ๊ตฌํ˜„ํ•˜๋ผ\r\n\r\n* Fix: imageRepositoryTest์™€ SessionRegisterDetailsTest์˜ ๋ฐ์ดํ„ฐ์ค‘๋ณต์œผ๋กœ ์ธํ•œ ํ…Œ์ŠคํŠธ ๋ฏธํ†ต๊ณผ ํ•ด๊ฒฐ\r\n\r\n* Fix: ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋ฅผ ๋ฐ”๊พธ์–ด๋ผ\r\n\r\n* Refactor: ์ƒ์„ฑ์ž์˜ ์ธ์ž๋ฅผ ๋ฐ”๊พผ๋‹ค\r\n\r\n* Chore: repository interface์˜ ํ”„๋กœ์ ํŠธ ์œ„์น˜๋ฅผ domain์— ์œ„์น˜์‹œํ‚จ๋‹ค\r\n\r\n* Fix: session_register_details ํ…Œ์ด๋ธ”์— session_id๋ฅผ fk๋กœ ์ถ”๊ฐ€ํ•˜๋ผ\r\n\r\n* Refactor: object mother pattern์„ ์ด์šฉํ•ด text fixture๋ฅผ ๋งŒ๋“ค๊ณ  ํ…Œ์ŠคํŠธ์ฝ”๋“œ์— ์ ์šฉํ•˜๋ผ\r\n\r\n* Refactor: builder pattern์„ ์ด์šฉํ•ด Session์˜ text fixture๋ฅผ ๋งŒ๋“ค๊ณ  ํ…Œ์ŠคํŠธ์ฝ”๋“œ์— ์ ์šฉํ•˜๋ผ\r\n\r\n* Refactor: builder pattern์„ ์ด์šฉํ•ด SessionRegisterDetails์˜ text fixture๋ฅผ ๋งŒ๋“ค๊ณ  ํ…Œ์ŠคํŠธ์ฝ”๋“œ์— ์ ์šฉํ•˜๋ผ\r\n\r\n* Style: intellij formatting์„ ์ ์šฉํ•˜๋ผ\r\n\r\n* Feat: ์ˆ˜๊ฐ•์ƒ๋ชฉ๋ก repository๋ฅผ ๊ตฌํ˜„ํ•˜๋ผ\r\n\r\n* Style: ํ•„์š”์—†๋Š” import๋ฌธ ์ œ๊ฑฐ\r\n\r\n* Refactor: Session construct public -> private\r\n\r\n* Refactor: remove unused constructor\r\n\r\n* Test: Students#register(..)\r\n\r\n* Test: Students#register exception์ด ๋ฐœ์ƒํ•˜๋Š”์ง€ ํ…Œ์ŠคํŠธํ•˜๋ผ\r\n\r\n* Test: StudentRepository#save(..)\r\n\r\n* Test: StudentRepository#findById(..)\r\n\r\n* Test: JdbcStudentRepository#findBySessionId(..)\r\n\r\n* Refactor: JdbcStudentRepository\r\n\r\n* Refactor: JdbcStudentRepository\r\n\r\n* Test: SessionRegisterDetails#enroll(..)\r\n\r\n* Test: ๊ฐ•์˜๊ฐ€ ๋ชจ์ง‘์ค‘์ด ์•„๋‹๋•Œ ์ˆ˜๊ฐ•์‹ ์ฒญ์„ ํ•˜๋ฉด ์˜ˆ์™ธ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค\r\n\r\n* Test: ๊ฐ•์˜์˜ ๊ฐ€๊ฒฉ๊ณผ ๊ฒฐ์ œํ•œ ๊ธˆ์•ก์ด ๊ฐ™์ง€ ์•Š์€์ง€ ๊ฒ€์ฆํ•œ๋‹ค\r\n\r\n* Test: ์ด๋ฏธ ์ˆ˜๊ฐ• ์‹ ์ฒญํ•œ ํ•™์ƒ์ด ๋“ฑ๋ก์„ ํ•˜๋ คํ•˜๋ฉด ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋˜๋Š”์ง€ ํ…Œ์ŠคํŠธํ•˜๋ผ\r\n\r\n* Test: Session#enroll(..)\r\n\r\n* Test: ๊ฐ•์˜์˜ ๊ฐ€๊ฒฉ๊ณผ ๊ฒฐ์ œ ๊ธˆ์•ก์ด ๊ฐ™์ง€ ์•Š์œผ๋ฉด ์˜ˆ์™ธ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค\r\n\r\n* Refactor: ํ…Œ์ด๋ธ” ์žฌ์ƒ์„ฑ์— ๋”ฐ๋ฅธ ์—”ํ‹ฐํ‹ฐ ๊ตฌ์กฐ ๋ณ€๊ฒฝ\r\n\r\n* Test: SessionService#registerSession(..)\r\n\r\n* Style: ๊ฐ•์˜๋ฅผ ๋“ฑ๋กํ•˜๋Š”๊ฒƒ์ด๋‹ˆ register์—์„œ enroll๋กœ ๋ฉ”์„œ๋“œ๋ช…์„ ๋ฐ”๊พธ์–ด๋ผ\r\n\r\n* Refactor: enroll(..)๋ฉ”์„œ๋“œ๋ฅผ ๋ฆฌํŒฉํ„ฐ๋ง์— ์˜ํ•ด ๋ฐ”๋€ ๋กœ์ง๋“ค์„ ์žฌํ…Œ์ŠคํŠธํ•˜๋ผ\r\n\r\n* Style: ํ•„์š”์—†๋Š” import๋ฌธ์„ ์‚ญ์ œํ•˜๋ผ","shortMessageHtmlLink":"3๋‹จ๊ณ„ - ์ˆ˜๊ฐ•์‹ ์ฒญ(DB ์ ์šฉ) (#514)"}},{"before":"e5f65a2119c88973dd07e8209d64f581cdec1326","after":"0270fa67f421d5ca85716204349b12b33ac8bc5c","ref":"refs/heads/namhyeop","pushedAt":"2024-04-26T22:15:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"javajigi","name":"๋ฐ• ์žฌ์„ฑ","path":"/javajigi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/520500?s=80&v=4"},"commit":{"message":"Step3 - ์ˆ˜๊ฐ•์‹ ์ฒญ(DB์ ์šฉ) (#519)\n\n* feat : ์‹œ๊ฐ„ ์„ค์ • ๋กœ์ง ์ˆ˜์ • (ํ”ผ๋“œ๋ฐฑ ๋ฐ˜์˜)\r\n\r\n* feat : MethodSource ์ ์šฉ (ํ”ผ๋“œ๋ฐฑ ๋ฐ˜์˜)\r\n\r\n* feat : Session, Image ํ…Œ์ด๋ธ” ๋งคํ•‘\r\n\r\n* feat : DB ์ƒ์„ฑ์œผ๋กœ ์ธํ•œ Sessions ์‚ญ์ œ\r\n\r\n* feat : DB ์ƒ์„ฑ์œผ๋กœ ์ธํ•œ Sessions ์‚ญ์ œ\r\n\r\n* feat : JdbcSessionEntityRepository ์ƒ์„ฑ\r\n\r\n* feat : JdbcSessionEntityRepository ์ธํ„ฐํŽ˜์ด์Šค ์ถ”๊ฐ€\r\n\r\n* feat : JdbcSessionEntityRepository ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€\r\n\r\n* feat : NotExistSessionType ์˜ˆ์™ธ ์ถ”๊ฐ€\r\n\r\n* feat : Session , ์œ ํšจ๊ธฐ๊ฐ„ ๊ฐ์ฒด ์ถ”๊ฐ€๋กœ ์ธํ•œ ํ…Œ์ŠคํŠธ์ฝ”๋“œ ์ถ”๊ฐ€ ๋ฐ ์ˆ˜์ •\r\n\r\n* feat : ์œ ํšจ๊ธฐ๊ฐ„ ๊ฐ์ฒด ์ถ”๊ฐ€\r\n\r\n* feat : ImageRepository ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€ ๋ฐ ๊ตฌํ˜„\r\n\r\n* feat : JdbcCourseRepository ํŒจํ‚ค์ง€ ๊ฒฝ๋กœ ์ˆ˜์ •\r\n\r\n* feat : JdbcCourseRepository ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€\r\n\r\n* feat : ImageEntity ์ถ”๊ฐ€\r\n\r\n* feat : Image ๊ฐ์ฒด ์ƒ์„ฑ์ž ์ถ”๊ฐ€\r\n\r\n* feat : FreeSession-์ƒ์„ฑ์ž ์ถ”๊ฐ€\r\n\r\n* feat : CourseRepositoryTest-ํŒจํ‚ค์ง€ ๊ฒฝ๋กœ ์ˆ˜์ •\r\n\r\n* feat : CourseRepositoryTest-ํ…Œ์ŠคํŠธ ํŒจํ‚ค์ง€ ๊ฒฝ๋กœ ์ˆ˜์ •\r\n\r\n* feat : SessionFactory ๊ตฌํ˜„\r\n\r\n* feat : SessionFactory-SesstionType ๊ตฌ๋ถ„์„ ์œ„ํ•œ enum ์ถ”๊ฐ€\r\n\r\n* feat : SessionEntity ์ถ”๊ฐ€\r\n\r\n* feat : BaseEntity Getter ์ถ”๊ฐ€\r\n\r\n* feat : Course ํ…Œ์ŠคํŠธ์ฝ”๋“œ ์ถ”๊ฐ€\r\n\r\n* feat : Course registerSession ์ถ”๊ฐ€\r\n\r\n* feat : Session, Image Mock ํ…Œ์ŠคํŠธ์ฝ”๋“œ ์ถ”๊ฐ€\r\n\r\n* feat : SessionBuilder ์ถ”๊ฐ€\r\n\r\n* feat : DB schema ์ถ”๊ฐ€\r\n\r\n* feat : PaidSession ํ•„๋“œ ์ˆ˜์ •์œผ๋กœ ์ธํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •\r\n\r\n* feat : PaidSession ์ƒ์„ฑ์ž ์ถ”๊ฐ€\r\n\r\n* feat : MaxRegistrationCount-Getter ์ถ”๊ฐ€\r\n\r\n* feat : Money-Getter ์ถ”๊ฐ€\r\n\r\n* feat : Session-freeSession์„ ์œ„ํ•œ default ๋ฉ”์†Œ๋“œ ์ถ”๊ฐ€ ๋ฐ DB ์ ‘๊ทผ์„ ์œ„ํ•œ Getter ์ถ”๊ฐ€\r\n\r\n* feat : SessionRegisterFailException ์ถ”๊ฐ€\r\n\r\n* feat : NotExistTimeException ์ถ”๊ฐ€\r\n\r\n* feat : ValidityPeriodTest-NotExistTimeException ์ถ”๊ฐ€๋กœ ์ธํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •\r\n\r\n* feat : Service ์ฝ”๋“œ ์ถ”๊ฐ€\r\n\r\n* feat : BaseEntity ํŒจํ‚ค์ง€ ๊ฒฝ๋กœ ์ˆ˜์ •\r\n\r\n* feat : ์ธํ„ฐํŽ˜์ด์Šค -> ๊ณจ๊ฒฉํด๋ž˜์Šค๋กœ ๋ฆฌํŒฉํ† ๋ง\r\n\r\n* feat : ValidPeriod ๊ฐ์ฒด๋ช… ์ˆ˜์ •\r\n\r\n* feat : SessionFactory ํŒจํ‚ค์ง€ ๋ณ€๊ฒฝ\r\n\r\n* feat : AbstractSession ์œ„์น˜ ๋ณ€๊ฒฝ\r\n\r\n* feat : ๋ถˆํ•„์š”ํ•œ import๋ฌธ ์ œ๊ฑฐ\r\n\r\n* feat : Course ์ˆ˜๊ฐ•์‹ ์ฒญ ๋กœ์ง ์‚ญ์ œ\r\n\r\n* feat : importํŒจํ‚ค์ง€ ๊ฒฝ๋กœ ๋ณ€๊ฒฝ\r\n\r\n* feat : Sessions ์‚ญ์ œ๋กœ ์ธํ•œ ๋ถˆํ•„์š”ํ•œ equals, hascode ์‚ญ์ œ\r\n\r\n* feat : PaymentService @Service ์ถ”๊ฐ€\r\n\r\n* feat : Enrollment ์ถ”๊ฐ€\r\n\r\n* feat : FreeSessionTest ํ…Œ์ŠคํŠธ๋ช… ์ˆ˜์ •\r\n\r\n* feat : ๋ถˆํ•„์š”ํ•œ DTO ํŒŒ์ผ ์‚ญ์ œ\r\n\r\n* feat : SessionFactory ์œ ๋ฃŒ/๋ฌด๋ฃŒ ํŒ๋‹จ ๋กœ์ง ์ˆ˜์ •\r\n\r\n* feat : Enrollment ๊ฐ์ฒด ์ƒ์„ฑ์œผ๋กœ ์ธํ•œ Course ํ…Œ์ŠคํŠธ ๋กœ์ง ์‚ญ์ œ\r\n\r\n* feat : Enrollment ๊ตฌํ˜„ ๋ฐ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€\r\n\r\n* feat : Service ๋กœ์ง ์ˆ˜์ •\r\n\r\n* feat : ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ ์‚ญ์ œ\r\n\r\n* feat : ๋ถˆํ•„์š”ํ•œ ํด๋ž˜์Šค ์‚ญ์ œ\r\n\r\n* feat : Enrollment ๋ถ„๋ฆฌ\r\n\r\n* feat : ํ…Œ์ŠคํŠธ ์ˆ˜์ •\r\n\r\n* feat : DB ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ\r\n\r\n* feat : ํ•™์ƒ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€\r\n\r\n* feat : ๊ตฌ์กฐ ์žฌ์„ค๊ณ„๋กœ ์ธํ•œ ๋ฏธ์‚ฌ์šฉ ํด๋ž˜์Šค ์‚ญ์ œ\r\n\r\n* feat : ๊ตฌ์กฐ ์žฌ์„ค๊ณ„ ์ž‘์—… ๋ฐ˜์˜\r\n\r\n* feat : ํ…Œ์ŠคํŠธ ์‹คํŒจ ์˜ค๋ฅ˜ ์ˆ˜์ •\r\n\r\n* feat : SessionFactory ๋ฉ”์†Œ๋“œ๋ช… ์ˆ˜์ •\r\n\r\n* feat : sessionRepository ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€\r\n\r\n* feat : sessionRepository ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€\r\n\r\n1. ๋น„ํ™”์„คํ™ฉ๋œ sessionRepository ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ํ™œ์„ฑํ™”\r\n2. ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ enrollmentBuilder ๊ตฌํ˜„\r\n3. session, sesssionEntiyu ์ƒ์„ฑ์ž ์ถ”๊ฐ€\r\n\r\n* feat : enrollment ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€ ์ „ ์ด์ „ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‚ญ์ œ\r\n\r\n* feat : SessionRepositoryTest ํด๋ž˜์Šค๋ช… ์ˆ˜์ •\r\n\r\n* feat : Enrollment ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€\r\n\r\n* feat : EnrollmentCount ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€\r\n\r\n* feat : codeConvention ์ ์šฉ ๋ฐ ๋ถˆ ํ•„์š”ํ•œ ์ฝ”๋“œ ์ œ๊ฑฐ\r\n\r\n* feat : Image <-> ImageEntity ์˜์กด์„ฑ ์ œ๊ฑฐ\r\n\r\n* feat : Session <-> SessionEntity Cyclic Dependency์ œ๊ฑฐ","shortMessageHtmlLink":"Step3 - ์ˆ˜๊ฐ•์‹ ์ฒญ(DB์ ์šฉ) (#519)"}},{"before":"41feb99b274e29c9b6e4151f4d11c79994ca7037","after":"be798041165335107d97bcf1b5faa12aff639817","ref":"refs/heads/m5s3","pushedAt":"2024-04-26T22:08:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"javajigi","name":"๋ฐ• ์žฌ์„ฑ","path":"/javajigi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/520500?s=80&v=4"},"commit":{"message":"[์ˆ˜๊ฐ•์‹ ์ฒญ - ๋„๋ฉ”์ธ ๋ชจ๋ธ] step2 ๋ฏธ์…˜ (#503)\n\n* feat(DeleteHistory): ์ •์  ์ƒ์„ฑ์ž ํŒฉํ† ๋ฆฌ `createAnswer`, `createQuestion` ๊ธฐ๋Šฅ ๊ตฌํ˜„\r\n\r\n* refactor(Answers): ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋ฅผ ์ƒ์„ฑํ•˜๋Š” `from()` ์‚ญ์ œ\r\n\r\n* refactor(QnaServiceTest): `newline` ์ถ”๊ฐ€\r\n\r\n* feat(Course): ๋ฌด๋ฃŒ๊ฐ•์˜๋ฅผ ์‹ ์ฒญ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„\r\n\r\n* test(CourseTest): ๊ฐ•์˜ ๋“ฑ๋ก์ด ์•„๋‹ˆ๋ผ ๊ฐ•์˜ ์ƒ์„ฑ์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ\r\n\r\n* feat(Course): ๊ณผ์ •์„ ์ƒ์„ฑํ•˜๋Š” ์˜๋ฏธ๋ฅผ ๋„์šฐ๊ธฐ ์œ„ํ•ด `register` -> `add` ๋กœ ์ˆ˜์ •\r\n\r\n* feat(Session): ๋ชจ์ง‘์ค‘ ์ด์™ธ์— ์ˆ˜๊ฐ• ์‹ ์ฒญ์‹œ ์˜ˆ์™ธ ๋ฐœ์ƒ ๊ธฐ๋Šฅ ๊ตฌํ˜„\r\n\r\n* feat(Session): ์œ ๋ฃŒ ๊ฐ•์˜ ์ƒ์„ฑ ๊ธฐ๋Šฅ ๊ตฌํ˜„\r\n\r\n* feat(Session): ์œ ๋กœ๊ฐ•์˜ ์‹ ์ฒญ ๊ธฐ๋Šฅ ๊ตฌํ˜„\r\n\r\n* test(SessionTest): ๊ฒฐ์ œ ๊ธˆ์•ก๊ณผ ์ˆ˜๊ฐ•๋ฃŒ๊ฐ€ ๋‹ค๋ฅผ๋•Œ ์˜ˆ์™ธ ์ผ€์ด์Šค ์ถ”๊ฐ€\r\n\r\n* feat(Image): `Image` ๋„๋ฉ”์ธ ์ƒ์„ฑ\r\n\r\n* feat(Sessions): ์„ธ์…˜ ๋“ฑ๋ก ๊ธฐ๋Šฅ ๊ตฌํ˜„\r\n\r\n* feat(Course): ๊ณผ์ • ๋“ฑ๋ก ๊ธฐ๋Šฅ ๊ตฌํ˜„\r\n\r\n* fix(Session): ์ตœ๋Œ€ ์ธ์› ํ™•์ธ ํ•˜๋Š” validation ๋กœ์ง ์˜ค๋ฅ˜ ์ˆ˜์ •\r\n\r\n* refactor(Image): ์บก์Šํ™” ๋ฐ `ImageExtension` ์ƒ์„ฑ\r\n\r\n* refactor(Image): `ImageInfo` -> `ImageMeta` ํด๋ž˜์Šค๋ช… ๋ณ€๊ฒฝ\r\n\r\n* feat(Course): ๊ณผ์ •์ˆ˜๋ฅผ ๋ช‡๊ฐœ ๊ฐ€์กŒ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„\r\n\r\n* refactor(Image): `Image` ํด๋ž˜์Šค ๋ถ„๋ฆฌ\r\n\r\n* refactor(Session): `Session` ํด๋ž˜์Šค ๋ถ„๋ฆฌ\r\n\r\n* fix: ํ˜•์ƒ๊ด€๋ฆฌ์— ๋ˆ„๋ฝ๋œ ํŒŒ์ผ ์ถ”๊ฐ€\r\n\r\n* refactor(Session): ์˜๋ฏธ ์—†๋Š” ๋นˆ๊ณต๋ฐฑ๋ผ์ธ ์ œ๊ฑฐ\r\n\r\n* feat(Enrollment): ๋“ฑ๋ก ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ถ”๊ฐ€\r\n\r\n* refactor(Students): ์˜๋ฏธ์—†๋Š” `final` ์‚ญ์ œ\r\n\r\n* refactor(Enrollment): `Enrollment` ํด๋ž˜์Šค์— `Object Mother Pattern` ๋„์ž…\r\n\r\n* feat(Session): `Session` ํด๋ž˜์Šค์— `Builder Pattern` ๋„์ž…\r\n\r\n* refactor(Money): `equal` ๋Œ€์‹ ์— ์ž๋ฐ” `Object` ์˜ `equals` ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•ด์„œ ๊ตฌํ˜„\r\n\r\n* refactor(Enrollment): ์ฃผ ์ƒ์„ฑ์ž๋ฅผ ์ด์šฉํ•˜๋„๋ก ์ˆ˜์ •\r\n\r\n* refactor(Image): ์ฃผ์ƒ์„ฑ์ž๋ฅผ ์ด์šฉํ•˜๋„๋ก ์ˆ˜์ •\r\n\r\n* refactor: ๋ฏธ์‚ฌ์šฉ ์ฝ”๋“œ ๋ฐ ์ฝ”๋“œ ํฌ๋ฉง ์ˆ˜์ •\r\n\r\n* feat(Session): ๊ฐ•์˜๋ฅผ ๋“ฑ๋กํ•œ ํ•™์ƒ์ˆ˜ ๊ธฐ๋Šฅ ๊ตฌํ˜„\r\n\r\n* feat(Students): ์ƒ์„ฑ์ž ์ถ”๊ฐ€\r\n\r\n* refactor: ์ฃผ์ƒ์„ฑ์ž๋ฅผ ๊ด€๋ก€์— ๋”ฐ๋ฅด๋„๋ก ์ˆ˜์ •","shortMessageHtmlLink":"[์ˆ˜๊ฐ•์‹ ์ฒญ - ๋„๋ฉ”์ธ ๋ชจ๋ธ] step2 ๋ฏธ์…˜ (#503)"}},{"before":"297a3982836232312af2e4bc8430d3dc2e2578d6","after":"1cb23d295c025eeaa212eaedfb81c74461b960f5","ref":"refs/heads/ljydapp214","pushedAt":"2024-04-26T00:14:41.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"javajigi","name":"๋ฐ• ์žฌ์„ฑ","path":"/javajigi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/520500?s=80&v=4"},"commit":{"message":"4๋‹จ๊ณ„ Step2 ๋„๋ฉ”์ธ ๋ชจ๋ธ ๋ฆฌ๋ทฐ ์š”์ฒญ (#505)\n\n* DOCS : ์š”๊ตฌ์‚ฌํ•ญ์— ๋”ฐ๋ฅธ ํ…Œ์ŠคํŠธ ๋ชฉ๋ก ์ž‘์„ฑ\r\n\r\n* REFACTOR : service ๋‚ด ๊ฐ์ฒด ์‚ญ์ œ ๋กœ์ง์„ ๊ฐ ๊ฐ์ฒด๋กœ ์ด์ „\r\n\r\n* FEAT : ์ƒ์„ฑ์ž ์ถ”๊ฐ€\r\n\r\n* TEST : ํ…Œ์ŠคํŠธ ๋ฆฌํŒฉํ† ๋ง\r\n\r\n* REFACTOR : Answer ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ผ๊ธ‰ ์ปฌ๋ ‰์…˜ ๊ตฌํ˜„\r\n\r\n* REFACTOR : Answers ๊ฐ์ฒด ๋‚ด delete ๋กœ์ง ๊ตฌํ˜„\r\n\r\n* REFACTOR : DeleteHistory ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ผ๊ธ‰ ์ปฌ๋ ‰์…˜ ๊ตฌํ˜„\r\n\r\n* REFACTOR : ๋ฉ”์†Œ๋“œ ์ด๋ฆ„ ๋ณ€๊ฒฝ\r\n\r\n* REFACTOR : setter ์ œ๊ฑฐ\r\n\r\n* DOCS : ํ…Œ์ŠคํŠธ ์ˆ˜ํ–‰ ๋ฆฌ์ŠคํŠธ ์—…๋ฐ์ดํŠธ\r\n\r\n* REFACTOR : ๋ณ€์ˆ˜ ์ด๋ฆ„ ๋ณ€๊ฒฝ\r\n\r\n* TEST : ParameterizedTest ๋ฅผ ํ†ตํ•ด ์ค‘๋ณต ํ…Œ์ŠคํŠธ ์ œ๊ฑฐ\r\n\r\n* STYLE : ์ฃผ์„ ์ œ๊ฑฐ\r\n\r\n* CHG : Exception ๋ฉ”์‹œ์ง€ ๋ณ€๊ฒฝ\r\n\r\n* REFACTOR : ๋ฐ์ดํ„ฐ ์šด๋ฐ˜ ์—ญํ• ๋งŒ ํ•˜๋˜ DeletedDataHistories ํด๋ž˜์Šค ์‚ญ์ œ\r\n\r\n* REFACTOR : ์‚ญ์ œ ๋กœ์ง ๋ฐ DeleteHistory ์ƒ์„ฑ ๋กœ์ง ๋ถ„๋ฆฌ\r\n\r\n* CHG : ๋™๋“ฑ์„ฑ ํŒ๋‹จ ์กฐ๊ฑด ๋ณ€๊ฒฝ\r\n\r\n* REFACTOR : ์‚ญ์ œ์™€ ์ƒ์„ฑ ๋กœ์ง ๋ถ„๋ฆฌ\r\n\r\n* CHG : ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ƒ์„ฑ์ž ์ œ๊ฑฐ\r\n\r\n* TEST : ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •\r\n\r\n* FEAT : ๊ฐ•์˜ ์ปค๋ฒ„ ์ด๋ฏธ์ง€ ์ •๋ณด ๋„๋ฉ”์ธ ๊ตฌํ˜„\r\n\r\n* FEAT : ์ด๋ฏธ์ง€ ํ™•์žฅ์ž ํด๋ž˜์Šค ๊ตฌํ˜„\r\n\r\n* FEAT : ๊ฐ•์˜ ์ปค๋ฒ„ ์ด๋ฏธ์ง€ ์ •๋ณด ๋„๋ฉ”์ธ ๊ตฌํ˜„\r\n\r\n* TEST : ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ\r\n\r\n* FEAT : ๊ฐ•์˜ ๋„๋ฉ”์ธ ๊ตฌํ˜„\r\n\r\n* TEST : ๊ฐ•์˜ ๋„๋ฉ”์ธ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ\r\n\r\n* FEAT : ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ฉ”์†Œ๋“œ ์ œ๊ฑฐ\r\n\r\n* FEAT : ๋ฌด๋ฃŒ๊ฐ•์˜์— ๋Œ€ํ•œ ์ƒ์„ฑ์ž ์ถ”๊ฐ€\r\n\r\n* FEAT : ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์„ธ๋ถ„ํ™”\r\n\r\n* FEAT : Course ๋‚ด session ๊ตฌํ˜„\r\n\r\n* FEAT : FreeOrPaid ๊ฐ์ฒด ๊ตฌํ˜„\r\n\r\n* FEAT : Duration ๊ฐ์ฒด ๊ตฌํ˜„\r\n\r\n* FEAT : AttendeeCount ๊ฐ์ฒด ๊ตฌํ˜„\r\n\r\n* TEST : ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ๋ถ„๋ฆฌ\r\n\r\n* REFACTOR : Session ๊ฐ์ฒด ๋ฆฌํŒฉํ† ๋ง\r\n\r\n* TEST : ๋ฆฌํŒฉํ† ๋ง์— ๋”ฐ๋ฅธ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ๋ณ€๊ฒฝ\r\n\r\n* FEAT : session ๊ณผ ImageInfo ๋ฅผ ๋ฌถ๋Š” ์‹ ๊ทœ ๊ฐ์ฒด ๊ตฌํ˜„\r\n\r\n* CHG : SessionGroup ์˜ ์ปฌ๋ ‰์…˜ ๋Œ€์ƒ ๋ณ€๊ฒฝ\r\n\r\n* CHG : java ๋‚ด Duration ํด๋ž˜์Šค์™€ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ํด๋ž˜์Šค ์ด๋ฆ„ ๋ณ€๊ฒฝ\r\n\r\n* FEAT : ์‹œ์ž‘ ๋‚ ์งœ์™€ ์ข…๋ฃŒ ๋‚ ์งœ์˜ ๊ฒ€์ฆ ๋กœ์ง ์ถ”๊ฐ€\r\n\r\n* FEAT : ํ—ˆ์šฉ๋œ ํŒŒ์ผ ํ™•์žฅ์ž์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ enum ์œผ๋กœ ์ „ํ™˜\r\n\r\n* FEAT : ์ด๋ฏธ์ง€ ํ™•์žฅ์ž๋ฅผ enum ์œผ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ๊ตฌํ˜„\r\n\r\n* CHG : ํด๋ž˜์Šค ์ด๋ฆ„ ๋ณ€๊ฒฝ\r\n\r\n* FEAT : ์ˆ˜๊ฐ• ์‹ ์ฒญ ํด๋ž˜์Šค ๊ตฌํ˜„\r\n\r\n* TEST : ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ๊ตฌํ˜„\r\n\r\n* FEAT : ์ˆ˜๊ฐ•๋ฃŒ ํด๋ž˜์Šค ๊ตฌํ˜„\r\n\r\n* FEAT : ์‹ ๊ทœ custom exception ์ถ”๊ฐ€\r\n\r\n* CHG : ํด๋ž˜์Šค ์ด๋ฆ„ ๋ณ€๊ฒฝ\r\n\r\n* CHG : ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋“ค์˜ ํƒ€์ž… ๋ณ€๊ฒฝ\r\n\r\n* CHG : ๊ธฐ์ค€๊ฐ’์„ ์ƒ์ˆ˜ ์ฒ˜๋ฆฌ\r\n\r\n* TEST : ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ\r\n\r\n* CU : ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํด๋ž˜์Šค ์‚ญ์ œ\r\n\r\n* REFACTOR : ํŒจํ‚ค์ง€ ๋ฆฌํŒฉํ† ๋ง","shortMessageHtmlLink":"4๋‹จ๊ณ„ Step2 ๋„๋ฉ”์ธ ๋ชจ๋ธ ๋ฆฌ๋ทฐ ์š”์ฒญ (#505)"}},{"before":"fbdde3b3c7958478fda59096c150b490735067b7","after":"41340afdfd3cf0e802e486950c1d994af80646d1","ref":"refs/heads/astrid-dm","pushedAt":"2024-04-25T12:49:04.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"seondongpyo","name":"Seondong Pyo","path":"/seondongpyo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/64854054?s=80&v=4"},"commit":{"message":"๐Ÿš€ 4๋‹จ๊ณ„ - ์ˆ˜๊ฐ•์‹ ์ฒญ(์š”๊ตฌ์‚ฌํ•ญ ๋ณ€๊ฒฝ) (#525)\n\n* feat : ์ปค๋ฒ„ ์ด๋ฏธ์ง€๋ฅผ ์ตœ์†Œ 1๊ฐœ ์ด์ƒ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ repository ์ƒ์„ฑ\r\n\r\n* docs : ์ปค๋ฒ„ ์ด๋ฏธ์ง€๋ฅผ ์ตœ์†Œ 1๊ฐœ ์ด์ƒ ๊ฐ–๋Š” ์กฐ๊ฑด ์ถ”๊ฐ€\r\n\r\n* feat : ์ˆ˜๊ฐ•์‹ ์ฒญ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฐ์ฒด์™€ Repository, TC ์ž‘์„ฑ\r\n\r\n* chore : Course์˜ ํŒจํ‚ค์ง€ ๊ฒฝ๋กœ ๋ณ€๊ฒฝ\r\n\r\n* refactor : ์š”๊ตฌ์‚ฌํ•ญ์— ๋”ฐ๋ผ Session ๊ฐ์ฒด, Repository, TC ์ˆ˜์ •\r\n\r\n* feat : ์š”๊ตฌ์‚ฌํ•ญ์— ๋”ฐ๋ผ ๋ฌด๋ฃŒ ๊ฐ•์˜, ์œ ๋ฃŒ ๊ฐ•์˜์˜ ๊ฐ์ฒด ์ •๋ณด ๋ฐ TC ์ˆ˜์ •\r\n\r\n* chore : ๊ธฐํƒ€ ์ฝ”๋“œ ์ •๋ฆฌ\r\n\r\n* sql : schema ๋‚ด์šฉ ์ˆ˜์ •\r\n\r\n* docs : readme ์—…๋ฐ์ดํŠธ\r\n\r\n* refactor : ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋ฐ˜์˜\r\n\r\n- information ๋ช…์นญ ์ œ๊ฑฐ\r\n- ๋ถˆํ•„์š”ํ•œ ๋ฉ”์„œ๋“œ ์ œ๊ฑฐ\r\n\r\n* refactor : ์ •์  ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ๋กœ ๊ฐ•์˜ ๊ฐ์ฒด ์ƒ์„ฑ\r\n\r\n* fix : ์„ ๋ฐœ๋œ ์ธ์›์— ํ•œํ•˜์—ฌ ๊ฐ•์‚ฌ๊ฐ€ ์ˆ˜๊ฐ•์‹ ์ฒญ ์Šน์ธ, ์ทจ์†Œํ•˜๋Š” ๋กœ์ง ์ถ”๊ฐ€\r\n\r\n* refactor : ์ปค๋ฒ„ ์ด๋ฏธ์ง€ ์ผ๋ถ€ ๋กœ์ง ์ˆ˜์ •","shortMessageHtmlLink":"๐Ÿš€ 4๋‹จ๊ณ„ - ์ˆ˜๊ฐ•์‹ ์ฒญ(์š”๊ตฌ์‚ฌํ•ญ ๋ณ€๊ฒฝ) (#525)"}},{"before":"9b7c4e1b54080c87ae0ec69c25a9c79d03fc0bee","after":"017559fc4a8ad49e97345adaddf3a7c0b7380ccb","ref":"refs/heads/jaejeong1","pushedAt":"2024-04-25T02:19:23.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"javajigi","name":"๋ฐ• ์žฌ์„ฑ","path":"/javajigi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/520500?s=80&v=4"},"commit":{"message":"Step3 (#526)\n\n* refactor: 2๋‹จ๊ณ„ ํ”ผ๋“œ๋ฐฑ ๋ฐ˜์˜\r\n\r\n* feat: 3๋‹จ๊ณ„ ๊ตฌํ˜„\r\n\r\n* feat: ํŒจํ‚ค์ง€๋ช… ์†Œ๋ฌธ์ž๋กœ ๋ณ€๊ฒฝ\r\n\r\n* feat: ํŒจํ‚ค์ง€๋ช… ์†Œ๋ฌธ์ž๋กœ ๋ณ€๊ฒฝ\r\n\r\n* feat: 3๋‹จ๊ณ„ ํ”ผ๋“œ๋ฐฑ ์ ์šฉ\r\n\r\n* feat: ํ”ผ๋“œ๋ฐฑ ๋ฐ˜์˜\r\n\r\n---------\r\n\r\nCo-authored-by: socar-cloud ","shortMessageHtmlLink":"Step3 (#526)"}},{"before":"325a85230e24617db31db06f0ef3bf7eb20d04c8","after":"b285429fcbc42721ececa2cfcc5d0a9eb95cd862","ref":"refs/heads/kylekim2123","pushedAt":"2024-04-24T07:57:59.000Z","pushType":"pr_merge","commitsCount":26,"pusher":{"login":"ksy90101","name":"SeYun(Marco)","path":"/ksy90101","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/53366407?s=80&v=4"},"commit":{"message":"Merge pull request #523 from kylekim2123/step3\n\n[STEP 3] ์ˆ˜๊ฐ• ์‹ ์ฒญ DB ์ ์šฉ (kylekim2123, ๊น€์˜์ฃผ)","shortMessageHtmlLink":"Merge pull request #523 from kylekim2123/step3"}},{"before":"de587b9b414b8ec9ce8f32cf255ec1be8a8670a2","after":"fd572f2b626b3744e1efb1435e51c3b286a117d8","ref":"refs/heads/kimsunghyun1995","pushedAt":"2024-04-23T09:09:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"javajigi","name":"๋ฐ• ์žฌ์„ฑ","path":"/javajigi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/520500?s=80&v=4"},"commit":{"message":"๐Ÿš€ 1๋‹จ๊ณ„ - ๋ ˆ๊ฑฐ์‹œ ์ฝ”๋“œ ๋ฆฌํŒฉํ„ฐ๋ง (#521)\n\n* doc: ์š”๊ตฌ์‚ฌํ•ญ ๋ช…์„ธ์„œ ์ž‘์„ฑ\r\n\r\n* test: ํ…Œ์ŠคํŠธ ๋ถ€ํ„ฐ ์ž‘์„ฑ\r\n\r\n* feat: ์ผ๊ธ‰์ปฌ๋ ‰์…˜ ์ž‘์„ฑ ํ›„, ์ž์‹ ๋งŒ ์“ด ๋‹ต๊ธ€์ธ์ง€ ํ™•์ธํ•˜๋Š” ๋ฉ”์†Œ๋“œ ์ถ”๊ฐ€\r\n\r\n* test: Answers ์‚ญ์ œ ํ…Œ์ŠคํŠธ\r\n\r\n* feat: Answers ์‚ญ์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„\r\n\r\n* test: question ์‚ญ์ œ ํ…Œ์ŠคํŠธ\r\n\r\n* feat: Question์—์„œ Answers์— ์‚ญ์ œ ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ\r\n\r\n* test: ์‚ญ์ œ ํžˆ์Šคํ† ๋ฆฌ ๊ธฐ๋Šฅ TDD\r\n\r\n* feat: ์‚ญ์ œ ํžˆ์Šคํ† ๋ฆฌ ์ €์žฅ ๊ตฌํ˜„\r\n\r\n* refactor: service ๋ถ€๋ถ„ ๋ฆฌํŒฉํ† ๋ง\r\n\r\n* refacotr: formatting ๋ฆฌํŒฉํ† ๋ง\r\n\r\n* refactor: deleteHistories ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋„˜๊ธฐ์ง€ ์•Š๊ณ , return ์œผ๋กœ ๋ฐ›๋„๋ก ๋ฆฌํŒฉํ† ๋ง\r\n\r\n* refactor: ์ ‘๊ทผ์ œํ•œ์ž ๋ณ€๊ฒฝ\r\n\r\n* refactor: fianl ํ‚ค์›Œ๋“œ ์ถ”๊ฐ€\r\n\r\n* refactor: answer ์‚ญ์ œ๋ฅผ ์™ธ๋ถ€๊ฐ€ ์•„๋‹Œ ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ\r\n\r\n* test: ํ…Œ์ŠคํŠธ์ฝ”๋“œ ์‹คํŒจ ์ˆ˜์ •\r\n\r\n* refactor: List์„ ์™ธ๋ถ€์—์„œ ๋ฐ›๋Š” ๊ฒƒ์ด ์•„๋‹Œ return์œผ๋กœ ์ˆ˜์ •\r\n\r\n* test: ๋‹ต๋ณ€์‚ญ์ œ ์„ฑ๊ณต ํ…Œ์ŠคํŠธ\r\n\r\n* test: ์งˆ๋ฌธ ์‚ญ์ œ ํ…Œ์ŠคํŠธ\r\n\r\n* refactor: question ์‚ญ์ œ ์‹œ ์™ธ๋ถ€ ์ ‘๊ทผ ์—†๋„๋ก ์ˆ˜์ •","shortMessageHtmlLink":"๐Ÿš€ 1๋‹จ๊ณ„ - ๋ ˆ๊ฑฐ์‹œ ์ฝ”๋“œ ๋ฆฌํŒฉํ„ฐ๋ง (#521)"}},{"before":"29a53791c6d135e3f4c52b2d2dae0bb517510bbb","after":"25332e09b62b062d94feeb55a38e8626240fff4f","ref":"refs/heads/sm9171","pushedAt":"2024-04-23T08:52:11.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"javajigi","name":"๋ฐ• ์žฌ์„ฑ","path":"/javajigi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/520500?s=80&v=4"},"commit":{"message":"2๋‹จ๊ณ„ - ์ˆ˜๊ฐ•์‹ ์ฒญ(๋„๋ฉ”์ธ ๋ชจ๋ธ) (#522)\n\n* docs: 2๋‹จ๊ณ„ ์š”๊ตฌ์‚ฌํ•ญ\r\n\r\n* feat: ๊ณผ์ •์€ ๊ธฐ์ˆ˜๋ฅผ ๊ฐ€์ง€๊ณ  ์ƒ์„ฑ๋œ๋‹ค test ๋ฐ ๊ธฐ๋Šฅ ๊ตฌํ˜„\r\n\r\n* test: ๊ณผ์ •์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ•์˜๋ฅผ ๊ฐ€์ง€๊ณ  ์ƒ์„ฑ๋œ๋‹ค. fail test\r\n\r\n* feat: ๊ฐ•์˜ ๋„๋ฉ”์ธ ์ƒ์„ฑ\r\n* ๊ณผ์ •์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ•์˜(Session)๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. ์ผ€์ด์Šค ํ†ต๊ณผ\r\n* ๊ฐ•์˜๋Š” ์‹œ์ž‘์ผ๊ณผ ์ข…๋ฃŒ์ผ์„ ๊ฐ€์ง„๋‹ค. ์ผ€์ด์Šค ํ†ต๊ณผ\r\n\r\n* feat: image ๋„๋ฉ”์ธ ์ƒ์„ฑ\r\n\r\n* refactor: ImageSize ๋ž˜ํผํด๋ž˜์Šค ์ƒ์„ฑ ๋ฐ ํ…Œ์ŠคํŠธ ์„ฑ๊ณต\r\n* '์ด๋ฏธ์ง€ ํฌ๊ธฐ๋Š” 1MB ์ดํ•˜์—ฌ์•ผ ํ•œ๋‹ค' ํ…Œ์ŠคํŠธ ์„ฑ๊ณต\r\n\r\n* refactor: ImageHeight, ImageWidth ๋ž˜ํผํด๋ž˜์Šค ์ƒ์„ฑ ๋ฐ ํ…Œ์ŠคํŠธ ์„ฑ๊ณต\r\n* '์ด๋ฏธ์ง€์˜ width๋Š” 300ํ”ฝ์…€, height๋Š” 200ํ”ฝ์…€ ์ด์ƒ์ด์–ด์•ผ ํ•˜๋ฉฐ, width์™€ height์˜ ๋น„์œจ์€ 3:2์—ฌ์•ผ ํ•œ๋‹ค.' ํ…Œ์ŠคํŠธ ์„ฑ๊ณต\r\n\r\n* refactor: image, session ๋„๋ฉ”์ธ ๋ถ„๋ฆฌ\r\n\r\n* feat: Seccions ์ผ๊ธ‰ ์ปฌ๋ž™์…˜ ์ƒ์„ฑ\r\n\r\n* feat: ๋ฌด๋ฃŒ๊ฐ•์˜, ์œ ๋ฃŒ๊ฐ•์˜ ํƒ€์ž… ์ƒ์„ฑ, ํ…Œ์ŠคํŠธ 2๊ฐœ ์„ฑ๊ณต\r\n- '๋ฌด๋ฃŒ ๊ฐ•์˜๋Š” ์ตœ๋Œ€ ์ˆ˜๊ฐ• ์ธ์› ์ œํ•œ์ด ์—†๋‹ค' ํ…Œ์ŠคํŠธ ์„ฑ๊ณต\r\n- '์œ ๋ฃŒ ๊ฐ•์˜๋Š” ๊ฐ•์˜ ์ตœ๋Œ€ ์ˆ˜๊ฐ• ์ธ์›์„ ์ดˆ๊ณผํ•  ์ˆ˜ ์—†๋‹ค.' ํ…Œ์ŠคํŠธ ์„ฑ๊ณต\r\n\r\n* feat: '์œ ๋ฃŒ ๊ฐ•์˜๋Š” ์ˆ˜๊ฐ•์ƒ์ด ๊ฒฐ์ œํ•œ ๊ธˆ์•ก๊ณผ ์ˆ˜๊ฐ•๋ฃŒ๊ฐ€ ์ผ์น˜ํ•  ๋•Œ ์ˆ˜๊ฐ• ์‹ ์ฒญ์ด ๊ฐ€๋Šฅ' ํ…Œ์ŠคํŠธ ์„ฑ๊ณต\r\n\r\n* feat: '๊ฐ•์˜ ์ˆ˜๊ฐ•์‹ ์ฒญ์€ ๊ฐ•์˜ ์ƒํƒœ๊ฐ€ ๋ชจ์ง‘์ค‘์ผ ๋•Œ๋งŒ ๊ฐ€๋Šฅ' ํ…Œ์ŠคํŠธ ์„ฑ๊ณต\r\n\r\n* refactor: ์‚ฌ์šฉ์•ˆํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ œ๊ฑฐ\r\n\r\n* refactor: imageWidth, imageHeight ํ•„๋“œ๋ช… ๋ณ€๊ฒฝ\r\n\r\n* refactor: EndedAt, StartedAt ๋ž˜ํ•‘ํด๋ž˜์Šค๋กœ ๋ถ„๋ฆฌ\r\n\r\n* refactor: sessionType description ํ•„๋“œ ์ถ”๊ฐ€\r\n\r\n* refactor: Charge,Enrollment,SessionInfo ํด๋ž˜์Šค ๋ถ„๋ฆฌ\r\n\r\n* test: payment ์™„๋ฃŒ ํ…Œ์ŠคํŠธ ์„ฑ๊ณต\r\n\r\n* test: ๊ฒฐ์ œ๊ธˆ์•ก๊ณผ ๊ฐ•์˜๊ธˆ์•ก์ด ๋‹ค๋ฅด๋ฉด ๊ฒฐ์ œ๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค\r\n\r\n* refactor: Payment ์ƒ์„ฑ์ž์— ChargeStatus ์ธ์ˆ˜๊ฐ’ ์ถ”๊ฐ€","shortMessageHtmlLink":"2๋‹จ๊ณ„ - ์ˆ˜๊ฐ•์‹ ์ฒญ(๋„๋ฉ”์ธ ๋ชจ๋ธ) (#522)"}},{"before":"6f61ffc7cb3d6fc64cfb65580652b7959d5fac28","after":"8d24061980025e5b0472e4f91495f66cedf972e1","ref":"refs/heads/park-cheonho","pushedAt":"2024-04-23T08:30:00.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"javajigi","name":"๋ฐ• ์žฌ์„ฑ","path":"/javajigi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/520500?s=80&v=4"},"commit":{"message":"Step2 ๋ฆฌ๋ทฐ ์š”์ฒญ ๋“œ๋ฆฝ๋‹ˆ๋‹ค. (#506)\n\n* refactor: ๋ฏธ์‚ฌ์šฉ ์ฝ”๋“œ ์ œ๊ฑฐ\r\n\r\nrefactor: ๋ฏธ์‚ฌ์šฉ ์ฝ”๋“œ ์ œ๊ฑฐ\r\n\r\n* refactor: DeleteHistory ๊ตฌ์กฐ ๋ณ€๊ฒฝ\r\n\r\nrefactor: DeleteHistory ๊ตฌ์กฐ ๋ณ€๊ฒฝ\r\n\r\n* docs: step1 ์ •๋ฆฌ\r\n\r\ndocs: step1 ์ •๋ฆฌ\r\n\r\n* docs: step2 ์š”๊ตฌ์‚ฌํ•ญ ๋ฐ ๊ตฌ์กฐ ๊ตฌ์ƒ\r\n\r\ndocs: step2 ์š”๊ตฌ์‚ฌํ•ญ ๋ฐ ๊ตฌ์กฐ ๊ตฌ์ƒ\r\n\r\n* test: ๋ฌด๋ฃŒ ๊ฐ•์˜ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ\r\n\r\ntest: ๋ฌด๋ฃŒ ๊ฐ•์˜ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ\r\n\r\n* feat: ๋ฌด๋ฃŒ ๊ฐ•์˜ ๋„๋ฉ”์ธ ๊ฐœ๋ฐœ\r\n\r\nfeat: ๋ฌด๋ฃŒ ๊ฐ•์˜ ๋„๋ฉ”์ธ ๊ฐœ๋ฐœ\r\n\r\n* test: CoverImage ํ…Œ์ŠคํŠธ ์ฝ”๋“œ\r\n\r\ntest: CoverImage ํ…Œ์ŠคํŠธ ์ฝ”๋“œ\r\n\r\n* feat: CoverImage ๊ธฐ๋Šฅ ๊ตฌํ˜„\r\n\r\nfeat: CoverImage ๊ธฐ๋Šฅ ๊ตฌํ˜„\r\n\r\n* test: ์œ ๋ฃŒ๊ฐ•์˜ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ\r\n\r\ntest: ์œ ๋ฃŒ๊ฐ•์˜ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ\r\n\r\n* feat: ์œ ๋ฃŒ๊ฐ•์˜ ๊ธฐ๋Šฅ ๊ตฌํ˜„\r\n\r\nfeat: ์œ ๋ฃŒ๊ฐ•์˜ ๊ธฐ๋Šฅ ๊ตฌํ˜„\r\n\r\n* feat: ๊ฐ•์˜ ๊ธฐ๊ฐ„ ๋ฐ ์ƒํƒœ ๊ธฐ๋Šฅ ๊ตฌํ˜„\r\n\r\nfeat: ๊ฐ•์˜ ๊ธฐ๊ฐ„ ๋ฐ ์ƒํƒœ ๊ธฐ๋Šฅ ๊ตฌํ˜„\r\n\r\n* test: Course ํ…Œ์ŠคํŠธ\r\n\r\ntest: Course ํ…Œ์ŠคํŠธ\r\n\r\n* feat: Course ๊ธฐ๋Šฅ ๊ตฌํ˜„๊ณผ Sessions ์ผ๊ธ‰์ปฌ๋ž™์…˜ ๊ตฌํ˜„\r\n\r\nfeat: Course ๊ธฐ๋Šฅ ๊ตฌํ˜„๊ณผ Sessions ์ผ๊ธ‰์ปฌ๋ž™์…˜ ๊ตฌํ˜„\r\n\r\n* docs: ๋ฆฌ๋ทฐ๋‚ด์šฉ ์ •๋ฆฌ\r\n\r\ndocs: ๋ฆฌ๋ทฐ๋‚ด์šฉ ์ •๋ฆฌ\r\n\r\n* refactor: SessionFee Long -> BigDecimal\r\n\r\nrefactor: SessionFee Long -> BigDecimal\r\n\r\n* refactor: ImageType ๋ฉ”์„œ๋“œ ๋ช… of -> from\r\n\r\nrefactor: ImageType ๋ฉ”์„œ๋“œ ๋ช… of -> from\r\n\r\n* refactor: PaidSession ๊ฐ์ฒด์ง€ํ–ฅ ์ƒํ™œ ์ฒด์กฐ ์›์น™ ์ค€์ˆ˜\r\n\r\nrefactor: PaidSession ๊ฐ์ฒด์ง€ํ–ฅ ์ƒํ™œ ์ฒด์กฐ ์›์น™ ์ค€์ˆ˜\r\n\r\n* docs: TIL ์ž‘์„ฑ\r\n\r\ndocs: TIL ์ž‘์„ฑ\r\n\r\n* docs: TIL ์ž‘์„ฑ\r\n\r\ndocs: TIL ์ž‘์„ฑ\r\n\r\n* test: ์ด๋ฏธ ์ˆ˜๊ฐ• ์‹ ์ฒญ ํ•œ ํ•™์ƒ ํŒŒ์•…\r\n\r\ntest: ์ด๋ฏธ ์ˆ˜๊ฐ• ์‹ ์ฒญ ํ•œ ํ•™์ƒ ํŒŒ์•…\r\n\r\n* test: ์ด๋ฏธ ๋“ฑ๋กํ•œ ์œ ์ € ๋ชฉ๋ก ์ถ”๊ฐ€\r\n\r\ntest: ์ด๋ฏธ ๋“ฑ๋กํ•œ ์œ ์ € ๋ชฉ๋ก ์ถ”๊ฐ€\r\n\r\n* refactor: ์ด๋ฏธ ๋“ฑ๋กํ•œ ์œ ์ € ๋ชฉ๋ก ์ถ”๊ฐ€, ๊ธฐ๋“ฑ๋ก ํ•™์ƒ ๊ฒ€์ฆ ์ถ”๊ฐ€\r\n\r\nrefactor: ์ด๋ฏธ ๋“ฑ๋กํ•œ ์œ ์ € ๋ชฉ๋ก ์ถ”๊ฐ€, ๊ธฐ๋“ฑ๋ก ํ•™์ƒ ๊ฒ€์ฆ ์ถ”๊ฐ€\r\n\r\n* refactor: ์ด๋ฏธ ๋“ฑ๋กํ•œ ์œ ์ € ๋ชฉ๋ก ์ถ”๊ฐ€, ๊ธฐ๋“ฑ๋ก ํ•™์ƒ ๊ฒ€์ฆ ์ถ”๊ฐ€\r\n\r\nrefactor: ์ด๋ฏธ ๋“ฑ๋กํ•œ ์œ ์ € ๋ชฉ๋ก ์ถ”๊ฐ€, ๊ธฐ๋“ฑ๋ก ํ•™์ƒ ๊ฒ€์ฆ ์ถ”๊ฐ€","shortMessageHtmlLink":"Step2 ๋ฆฌ๋ทฐ ์š”์ฒญ ๋“œ๋ฆฝ๋‹ˆ๋‹ค. (#506)"}},{"before":"49fa72ef4b5c47454766be8f311a0e2153c9f9b6","after":"9b7c4e1b54080c87ae0ec69c25a9c79d03fc0bee","ref":"refs/heads/jaejeong1","pushedAt":"2024-04-20T06:14:14.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"mskangg","name":"Minsu Kang","path":"/mskangg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/27044096?s=80&v=4"},"commit":{"message":"Merge pull request #509 from jaejeong1/step2\n\nStep2","shortMessageHtmlLink":"Merge pull request #509 from jaejeong1/step2"}},{"before":"fae4f036c1209979eaf971123e4550756c3067b3","after":"997f04d1c96dadfccd3edf3f36f9d4e324ac014a","ref":"refs/heads/hellonayeon","pushedAt":"2024-04-20T02:47:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"testrace","name":null,"path":"/testrace","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8064743?s=80&v=4"},"commit":{"message":"๐Ÿš€ 4๋‹จ๊ณ„ - ์ˆ˜๊ฐ•์‹ ์ฒญ(์š”๊ตฌ์‚ฌํ•ญ ๋ณ€๊ฒฝ) (#508)\n\n* Refactor: (Feedback) ๋ถˆํ•„์š”ํ•˜๊ฒŒ sesionId ๋ฅผ ์ƒํƒœ๋กœ ๊ฐ–๊ณ  ์žˆ๋Š” ๋„๋ฉ”์ธ ์ผ๊ด„ ์ˆ˜์ • (Capacity, Enrollment, Fee)\r\n\r\n* Refactor: SessionPeriod ๊ฐ์ฒด ์ƒ์„ฑ ์œ ํšจ์„ฑ ๊ฒ€์ฆ ๋ฉ”์„œ๋“œ๋ช… ์ˆ˜์ •\r\n- ๋„๋ฉ”์ธ ๊ฐ์ฒด ์ƒ์„ฑ ์œ ํšจ์„ฑ ๊ฒ€์ฆ ๋ฉ”์„œ๋“œ๋ช… validate() ํ†ต์ผ\r\n\r\n* Refactor: (Feedback) SessionStudent ์ •์  ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ ์œ„์น˜ ์ˆ˜์ • (์ƒ์„ฑ์ž๋ณด๋‹ค ์•„๋ž˜ ์œ„์น˜)\r\n\r\n* Refactor: (Feedback) SessionEnrollment ๋ถ€์ƒ์„ฑ์ž๊ฐ€ ์ฃผ์ƒ์„ฑ์ž๋ฅผ ํ™œ์šฉํ•˜๋„๋ก ์ˆ˜์ •\r\n\r\n* Test: CourseRepository Optional ๋ฐ˜ํ™˜ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ\r\n\r\n* Refactor: (Feedback) Course findById() ์‹œ ์กฐํšŒ๋œ Row ๊ฐ€ ์—†์œผ๋ฉด Optional.empty() ๋ฆฌํ„ดํ•˜๋„๋ก ์˜ˆ์™ธ์ฒ˜๋ฆฌ\r\n\r\n* Session, SessionCoverImage Repository findById() Optional ๋ฆฌํ„ด ์ผ€์ด์Šค ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ\r\n\r\n* Refactor: (Feedback) Repository.findById() ๋กœ ์กฐํšŒ๋œ Row ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ Optional ๋ฆฌํ„ดํ•˜๋„๋ก ์˜ˆ์™ธ์ฒ˜๋ฆฌ\r\n\r\n* Test: SessionStudentRepository ์กฐํšŒ๋œ ROW ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์˜ ํ•™์Šต ํ…Œ์ŠคํŠธ ์ž‘์„ฑ\r\n\r\n* Feature: ๊ฐ•์˜ ์ง„ํ–‰์ƒํƒœ์™€ ๋ชจ์ง‘์ƒํƒœ ์ถ”๊ฐ€\r\n\r\n* Feature: ๊ฐ•์˜ ์ง„ํ–‰์ƒํƒœ, ๋ชจ์ง‘์ƒํƒœ์— ๋Œ€ํ•œ ์ปค์Šคํ…€ ์˜ˆ์™ธ ์ถ”๊ฐ€\r\n\r\n* Fix: ๊ฐ•์˜ ์ƒํƒœ ์ถ”๊ฐ€์— ๋”ฐ๋ฅธ ์—ฐ๊ด€ ๋„๋ฉ”์ธ ํด๋ž˜์Šค ์ˆ˜์ •\r\n\r\n* Feature: ๊ฐ•์˜ ์ง„ํ–‰์ƒํƒœ, ๋ชจ์ง‘์ƒํƒœ DB ์ปฌ๋Ÿผ ์ถ”๊ฐ€\r\n\r\n* Test: ๊ฐ•์˜ ์ƒํƒœ ๋ณ€๊ฒฝ์— ๋”ฐ๋ฅธ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ผ๊ด„ ์ˆ˜์ •\r\n\r\n* Test: ํ…Œ์ŠคํŠธ ํŒจํ‚ค์ง€ enrollment ํŒจํ‚ค์ง€ ๋ถ„๋ฆฌ\r\n\r\n* Test: ์ง„ํ–‰์ƒํƒœ์™€ ๋ชจ์ง‘์ƒํƒœ ๋ณ€ํ™˜์— ๋Œ€ํ•œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ\r\n\r\n* Feature: ๊ฐ•์˜๊ฐ€ ํ•˜๋‚˜ ์ด์ƒ์˜ ์ปค๋ฒ„ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ–๋„๋ก ๋ณ€๊ฒฝ\r\n\r\n* Feature: List ๋ฅผ ์ €์žฅํ•˜๊ณ  ์กฐํšŒํ•˜๋„๋ก SessionCoverImageRepository ์ˆ˜์ •\r\n\r\n* Test: SessionCoverImageRepository ์ €์žฅ, ์กฐํšŒ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ˆ˜์ •\r\n\r\n* Docs: ์š”๊ตฌ์‚ฌํ•ญ ๋ฌธ์„œ ์ˆ˜์ • - Session, SessionStatus ํ•ญ๋ชฉ ์ˆ˜์ •\r\n\r\n* Docs: StudentEnrollmentStatus ํ•ญ๋ชฉ ์ถ”๊ฐ€\r\n\r\n* Refactor: domain.student ํŒจํ‚ค์ง€ ์ถ”๊ฐ€\r\n\r\n* Feature: ์ˆ˜๊ฐ•์‹ ์ฒญ ์Šน์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„\r\n\r\n* Feature: ์ˆ˜๊ฐ•์ƒ ์‹ ์ฒญ ์ƒํƒœ ์ถ”๊ฐ€\r\n\r\n* Feature: ์ˆ˜๊ฐ•์ƒ ์‹ ์ฒญ ์ƒํƒœ Column ์ถ”๊ฐ€\r\n\r\n* Feature: ์ˆ˜๊ฐ•์ƒ(SessionStudent) ์ฟผ๋ฆฌ ์ˆ˜์ • - EnrollmentStauts ์ถ”๊ฐ€\r\n\r\n* Test: ์ˆ˜๊ฐ•์ƒ ์‹ ์ฒญ ์ƒํƒœ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ž‘์„œ\r\n\r\n* Test: SessionStudents ์ˆ˜๊ฐ• ์‹ ์ฒญ ์Šน์ธ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ\r\n\r\n* Feature: ๊ฐ•์˜ ์ˆ˜๊ฐ•์ƒ ์Šน์ธ ์„œ๋น„์Šค ๋กœ์ง ๊ตฌํ˜„\r\n\r\n* Refactor: ์ˆ˜๊ฐ•์ƒ ์‹ ์ฒญ ์ƒํƒœ ์—…๋ฐ์ดํŠธ DB ์ €์žฅ ๊ตฌํ˜„\r\n\r\n* Refactor: SessionStudents ๋ฅผ ๋ฐ˜ํ™˜, ์—…๋ฐ์ดํŠธ ํ•˜๋„๋ก SessionStudentRepository ์ˆ˜์ •\r\n\r\n* Refactor: ์ˆ˜๊ฐ•์ƒ ์Šน์ธ / ์ทจ์†Œ ์ƒํƒœ ์—…๋ฐ์ดํŠธ ๋ฉ”์„œ๋“œ ๋ถ„๋ฆฌ\r\n\r\n* Test: SessionStudentRepository.updateAll() ๋ฉ”์„œ๋“œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€\r\n\r\n* Test: SessionStudents ์ˆ˜๊ฐ• ์ทจ์†Œ ์ƒํƒœ ์—…๋ฐ์ดํŠธ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€\r\n\r\n* Feature: SessionStudentService ๋ถ„๋ฆฌ\r\n\r\n* Fix: SessionStudents ์ƒ์„ฑ ์‹œ ์ˆ˜์ • ๊ฐ€๋Šฅํ•œ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ์ˆ˜์ •\r\n\r\n* Refactor: ๊ฒฐ์ œ ์š”์ฒญ ์‹œ SessionFee ๊ฐ€ ์•„๋‹ˆ๋ผ, Long amount ๋ฅผ ์ธ์ž๋กœ ๋ฐ›๋„๋ก ์ˆ˜์ •\r\n\r\n* Refactor: ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ปค๋ฒ„ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ์š”๊ตฌ์‚ฌํ•ญ ์ถ”๊ฐ€์— ๋”ฐ๋ฅธ, Session.coverImage > coverImages ๋„ค์ด๋ฐ ์ˆ˜์ •\r\n\r\n* Test: SessionService ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ\r\n\r\n* Test: SessionFixture ์ˆ˜์ • - freeSession(), paidSession() ํ”ฝ์Šค์ณ ์ƒ์„ฑ ๋ถ„๋ฆฌ\r\n\r\n* Refactor: (Feedback) Session.ProgressStatus, SessionEnrollment.RecruitmentStatus ์ƒํƒœ ์ถ”๊ฐ€ (์ ์ง„์  ๋ฆฌํŒฉํ† ๋ง)\r\n\r\n* Refactor: SessionStatus ์ œ๊ฑฐ - ProgressStatus, RecruitmentStatus ๋…๋ฆฝ์ ์ธ ์ƒํƒœ๋กœ ๋ถ„๋ฆฌ\r\n\r\n* Refactor: courses.session ํŒจํ‚ค์ง€ ์ถ”๊ฐ€\r\n\r\n* Refactor: (Feedback) RecruitmentStatus ํด๋ž˜์Šค ํŒจํ‚ค์ง€ ์ด๋™ (enrollment ํ•˜์œ„๋กœ ์ด๋™)\r\n\r\n* Refactor: SessionRepository ๋‚ด๋ถ€์—์„œ SessionCoverImage, SessionStudents ์กฐํšŒํ•ด์„œ ๋ฆฌํ„ดํ•˜๋„๋ก ์ˆ˜์ •\r\n\r\n* Refactor: ๋ฏธ์‚ฌ์šฉ ๊ฐ์ฒด ์ƒ์„ฑ ๋ฉ”์„œ๋“œ ์ œ๊ฑฐ\r\n\r\n* Test: SessionService ๋ถˆํ•„์š” Stubbing ์ œ๊ฑฐ\r\n\r\n* Refactor: (Feedback) schema.sql session_student.enrollment_status ๊ธฐ๋ณธ ์ƒํƒœ๊ฐ’ ์ถ”๊ฐ€๋ฅผ ์œ„ํ•œ ALERT TABLE ์ฟผ๋ฆฌ ์ถ”๊ฐ€\r\n\r\n* Feature: (Feedback) ๊ฐ•์˜์˜ ๋ชจ๋“  ์ˆ˜๊ฐ•์ƒ ์กฐํšŒ ์„œ๋น„์Šค ๋ฉ”์„œ๋“œ ์ถ”๊ฐ€\r\n\r\n* Delete: ๋ฏธ์‚ฌ์šฉ ์ฝ”๋“œ ์ œ๊ฑฐ\r\n\r\n* Test: ํ…Œ์ŠคํŠธ ํŒจํ‚ค์ง€๋ฅผ ๋ฉ”์ธ ํŒจํ‚ค์ง€์™€ ๋™๊ธฐํ™” (status ํŒจํ‚ค์ง€ ์ œ๊ฑฐ, session ํŒจํ‚ค์ง€ ์ถ”๊ฐ€)","shortMessageHtmlLink":"๐Ÿš€ 4๋‹จ๊ณ„ - ์ˆ˜๊ฐ•์‹ ์ฒญ(์š”๊ตฌ์‚ฌํ•ญ ๋ณ€๊ฒฝ) (#508)"}},{"before":"708db9bd445725cc92b07de5a55f5de7fb704f18","after":"eda9860cf82c359b17edc17e20bfd2f40c46a1cf","ref":"refs/heads/hisomini","pushedAt":"2024-04-19T14:05:01.000Z","pushType":"pr_merge","commitsCount":19,"pusher":{"login":"wooobo","name":"wooobo","path":"/wooobo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12059592?s=80&v=4"},"commit":{"message":"Merge pull request #520 from hisomini/db-table-mapping\n\n3๋‹จ๊ณ„ - ์ˆ˜๊ฐ•์‹ ์ฒญ(DB ์ ์šฉ)","shortMessageHtmlLink":"Merge pull request #520 from hisomini/db-table-mapping"}},{"before":"af6c823d530305de556a38702f564cf5f1c82a9f","after":"d76b20471d5ab0bdc2b9dc07c601e51c93c50b13","ref":"refs/heads/jjihye-hyun","pushedAt":"2024-04-19T12:45:58.000Z","pushType":"pr_merge","commitsCount":6,"pusher":{"login":"catsbi","name":"Catsbi","path":"/catsbi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/43158866?s=80&v=4"},"commit":{"message":"Merge pull request #518 from jjihye-hyun/step2\n\nStep2 ๋ฆฌ๋ทฐ ์š”์ฒญ๋“œ๋ฆฝ๋‹ˆ๋‹ค!","shortMessageHtmlLink":"Merge pull request #518 from jjihye-hyun/step2"}},{"before":"48086e45c9eabe462610b550c59d919f36fdb4c8","after":"c8a059129eda82c1f4ee55734e30ec228b662ae7","ref":"refs/heads/sunheejo","pushedAt":"2024-04-19T00:44:24.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"neojjc2","name":null,"path":"/neojjc2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/68527004?s=80&v=4"},"commit":{"message":"Merge pull request #516 from SunheeJo/step2\n\n[2๋‹จ๊ณ„-์ˆ˜๊ฐ•์‹ ์ฒญ(๋„๋ฉ”์ธ ๋ชจ๋ธ) ๊ตฌํ˜„","shortMessageHtmlLink":"Merge pull request #516 from SunheeJo/step2"}},{"before":"64b7c59334f31367e2b58ffa2c30ba1621c1b9a6","after":"22ff1d1b940b7de7e66377f749a703e22508de4b","ref":"refs/heads/jioome","pushedAt":"2024-04-18T16:17:14.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dhmin5693","name":"luke","path":"/dhmin5693","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15965611?s=80&v=4"},"commit":{"message":"๐Ÿš€ 3๋‹จ๊ณ„ - ์ˆ˜๊ฐ•์‹ ์ฒญ(DB ์ ์šฉ) (#504)\n\n* fix: refactoring\r\n\r\n* docs: ๊ธฐ๋Šฅ ๋ชฉ๋ก\r\n\r\n* fix: image info ํƒ€์ž… ๋ณ€๊ฒฝ\r\n\r\n* feat: ๋„๋ฉ”์ธ DDL ์ž‘์„ฑ\r\n\r\n* feat: cover image ๋ ˆํฌ์ง€ํ† ๋ฆฌ ์ž‘์„ฑ\r\n\r\n* feat: session repository ์ž‘์„ฑ\r\n\r\n* feat: session ๊ด€๋ จ test, ๋ฆฌํŒฉํ† ๋ง\r\n\r\n* docs: ๊ธฐ๋Šฅ ์š”๊ตฌ์‚ฌํ•ญ\r\n\r\n* fix: ๋นŒ๋”ํŒจํ„ด ์—†์• ๊ธฐ","shortMessageHtmlLink":"๐Ÿš€ 3๋‹จ๊ณ„ - ์ˆ˜๊ฐ•์‹ ์ฒญ(DB ์ ์šฉ) (#504)"}},{"before":"dc7c303262ffc0228dd61f2efd6d450a0af7864e","after":"2823dbc05e08ffc84afd8965f5599b150681c646","ref":"refs/heads/naayoungkwon","pushedAt":"2024-04-18T14:21:21.000Z","pushType":"pr_merge","commitsCount":12,"pusher":{"login":"wooobo","name":"wooobo","path":"/wooobo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12059592?s=80&v=4"},"commit":{"message":"Merge pull request #490 from NaayoungKwon/step4\n\n[Step4] ์ˆ˜๊ฐ•์‹ ์ฒญ(์š”๊ตฌ์‚ฌํ•ญ ๋ณ€๊ฒฝ)","shortMessageHtmlLink":"Merge pull request #490 from NaayoungKwon/step4"}},{"before":"6f72e0cf5cefa27684a7c28b9c153625a3a2159e","after":"8e8af211cc12d354636e27d040f488156eaf96e3","ref":"refs/heads/leejaek","pushedAt":"2024-04-18T13:55:48.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"kyucumber","name":"KyuNam","path":"/kyucumber","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34656258?s=80&v=4"},"commit":{"message":"Step2 ๋ฆฌ๋ทฐ ์š”์ฒญ์ž…๋‹ˆ๋‹ค. (#510)\n\n* [refactor] Answers ํด๋ž˜์Šค ์ถ”๊ฐ€, ์‚ญ์ œ ๊ฐ€๋Šฅ ์—ฌ๋ถ€ ๊ฒ€์ฆ ๋กœ์ง์„ ๋„๋ฉ”์ธ์œผ๋กœ ์ด๋™\r\n\r\n* [test] ์ถ”๊ฐ€๋œ ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€\r\n\r\n* [refactor] TODO ์‚ญ์ œ\r\n\r\n* [refactor] DeleteHistorySave ์ €์žฅ์„ ์ด๋ฒคํŠธ๋ฅผ ํ™œ์šฉํ•ด ์ €์žฅํ•˜๋„๋ก ์ˆ˜์ •\r\n\r\n* [refactor] ๋ฉ”์„œ๋“œ ๋ถ„๋ฆฌ ๋ฐ ๋ฉ”์„œ๋“œ๋ช… ๋ณ€๊ฒฝ\r\n\r\n* [feature] Session ํด๋ž˜์Šค, SessionStatus, SessionType enum ์ถ”๊ฐ€\r\n\r\n* [feature] SessionImage Class ์ถ”๊ฐ€\r\n\r\n* [feature] Session ์ƒ์„ฑ์ž, ImageFileType enum ์ถ”๊ฐ€\r\n\r\n* [feature] SessionImage ํฌ๊ธฐ, ์‚ฌ์ด์ฆˆ ๊ฒ€์ฆ ๋กœ์ง ์ถ”๊ฐ€\r\n\r\n* [feature] SessionImage Type ๊ฒ€์ฆ ๋กœ์ง ์ถ”๊ฐ€\r\n\r\n* [refactor] FreeSession, PaidSession ๊ตฌ๋ถ„\r\n\r\n* [refactor, test] Session ๊ด€๋ จ ํด๋ž˜์Šค ํŒจํ‚ค์ง€ ๊ตฌ๋ถ„, PaidSession, FreeSession ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€\r\n\r\n* [feat, test] ์ด๋ฏธ ๋“ฑ๋กํ•œ ์œ ์ €์— ๋Œ€ํ•œ ์ค‘๋ณต ๋“ฑ๋ก ์ œํ•œ\r\n\r\n* [refactor] SessionId ์ถ”๊ฐ€, Session์—์„œ CourseId ๋ฅผ ๊ฐ–๋„๋ก ๋ณ€๊ฒฝ\r\n\r\n* [refactor] SessionId ์ถ”๊ฐ€, Session์—์„œ CourseId ๋ฅผ ๊ฐ–๋„๋ก ๋ณ€๊ฒฝ\r\n\r\n* [refactor] Session ์„ ์ถ”์ƒํด๋ž˜์Šค๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ enroll() ๋ฉ”์„œ๋“œ ๊ตฌํ˜„ ๊ฐ•์ œ","shortMessageHtmlLink":"Step2 ๋ฆฌ๋ทฐ ์š”์ฒญ์ž…๋‹ˆ๋‹ค. (#510)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEUGD2qQA","startCursor":null,"endCursor":null}},"title":"Activity ยท next-step/java-lms"}