https://school.programmers.co.kr/learn/courses/30/lessons/60057 ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์
๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์
๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์. programmers.co.kr ๋ฌธ์ ๋ฌธ์ ์ค๋ช
๋ฐ์ดํฐ ์ฒ๋ฆฌ ์ ๋ฌธ๊ฐ๊ฐ ๋๊ณ ์ถ์ "์ดํผ์น"๋ ๋ฌธ์์ด์ ์์ถํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๊ณต๋ถ๋ฅผ ํ๊ณ ์์ต๋๋ค. ์ต๊ทผ์ ๋๋์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ์ํ ๊ฐ๋จํ ๋น์์ค ์์ถ ๋ฐฉ๋ฒ์ ๋ํด ๊ณต๋ถ๋ฅผ ํ๊ณ ์๋๋ฐ, ๋ฌธ์์ด์์ ๊ฐ์ ๊ฐ์ด ์ฐ์ํด์ ๋ํ๋๋ ๊ฒ์ ๊ทธ ๋ฌธ์์ ๊ฐ์์ ๋ฐ๋ณต๋๋ ๊ฐ์ผ๋ก ํํํ์ฌ ๋ ์งง์ ๋ฌธ์์ด๋ก ์ค์ฌ์ ํํํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๊ณต๋ถํ๊ณ ์์ต๋๋ค. ๊ฐ๋จํ ์๋ก "aabbaccc"์ ๊ฒฝ์ฐ "2a..
์ ์ฒด ๊ธ
API๋ฅผ ๋ง๋ค๊ธฐ ์ํด ์ด 3๊ฐ์ ํด๋์ค๊ฐ ํ์ Request ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ DTO API ์์ฒญ์ ๋ฐ์ Controller ํธ๋์ญ์
, ๋๋ฉ์ธ ๊ธฐ๋ฅ ๊ฐ์ ์์๋ฅผ ๋ณด์ฅํ๋ Service โ
์ฌ๊ธฐ์ ๋ง์ ์คํด → Service์์ ๋น์ฆ๋์ค ๋ก์ง์ ์ฒ๋ฆฌํด์ผ ํ๋ค๋ ๊ฒ But, ์ ํ ๊ทธ๋ ์ง ์์ โ
Service๋ ํธ๋์ญ์
, ๋๋ฉ์ธ ๊ฐ ์์ ๋ณด์ฅ์ ์ญํ ๋ง ํจ Web Layer ํํ ์ฌ์ฉํ๋ ์ปจํธ๋กค๋ฌ(@Controller)์ JSP/Freemarker ๋ฑ์ ๋ทฐ ํ
ํ๋ฆฟ ์์ญ ์ด์ธ์๋ ํํฐ(@Filter), ์ธํฐ์
ํฐ, ์ปจํธ๋กค๋ฌ ์ด๋๋ฐ์ด์ค(@ControllerAdvice)๋ฑ ์ธ๋ถ ์์ฒญ๊ณผ ์๋ต์ ๋ํ ์ ๋ฐ์ ์ธ ์์ญ Service Layer @Service์ ์ฌ์ฉ๋๋ ์๋น์ค ์์ญ ์ผ๋ฐ์ ์ผ๋ก Controller์ Dao ์ค๊ฐ ..
MyBatis ์ค์ ๋ก ๊ฐ๋ฐํ๋ ์๊ฐ ๋ณด๋ค SQL ์ ๋ค๋ฃจ๋ ์๊ฐ์ด ๋ ๋ง์์ ๊ฐ์ฒด ๋ชจ๋ธ๋ง๋ณด๋ค๋ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์๋ง ์ง์คํ๊ณ , ๊ฐ์ฒด๋ฅผ ๋จ์ํ ํ
์ด๋ธ์ ๋ง์ถ์ด ๋ฐ์ดํฐ ์ ๋ฌ ์ญํ ๋ง ํ๋ ๊ฐ๋ฐ์ ํ๊ฒ ๋จ MyBatis๋ ORM์ด ์๋. SQL Mapper์ด๋ค. ORM์ ๊ฐ์ฒด๋ฅผ ๋งคํํ๋ ๊ฒ์ด๊ณ , SQL Mapper๋ ์ฟผ๋ฆฌ๋ฅผ ๋งคํ JPA ํ๋์ ์น ์ ํ๋ฆฌ์ผ์ด์
์์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(RDB, Relational Database)๋ ๋น ์ง ์ ์๋ ์์ ๊ทธ๋ฌ๋ค ๋ณด๋ ๊ฐ์ฒด๋ฅผ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๊ด๋ฆฌํ๋ ๊ฒ์ด ๋ฌด์๋ณด๋ค ์ค์ ํ์
ํ๋ก์ ํธ ๋๋ถ๋ถ์ด ์ ํ๋ฆฌ์ผ์ด์
์ฝ๋๋ณด๋ค SQL๋ก ๊ฐ๋ํ๊ฒ ๋ ๊ฒ ์ด๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ SQL๋ง ์ธ์ํ ์ ์๊ธฐ ๋๋ฌธ์ธ๋ฐ, SQL๋ก๋ง ๊ฐ๋ฅํ๋ ๊ฐ ํ
์ด๋ธ๋ง๋ค ๊ธฐ๋ณธ์์ธ CRUD(Create, ..
ํ
์คํธ ์ฝ๋ ์๊ฐ TDD์ Unit Test(๋จ์ ํ
์คํธ)๋ ๋ค๋ฆ TDD : ํ
์คํธ๊ฐ ์ฃผ๋ํ๋ ๊ฐ๋ฐ → ํ
์คํธ ์ฝ๋๋ฅผ ๋จผ์ ์์ฑํ๋ ๊ฒ ํญ์ ์คํจํ๋ ํ
์คํธ๋ฅผ ๋จผ์ ์์ฑํ๊ณ (Red) ํ
์คํธ๊ฐ ํต๊ณผํ๋ ํ๋ก๋์
์ฝ๋๋ฅผ ์์ฑํ๊ณ (Green) ํ
์คํธ๊ฐ ํต๊ณผํ๋ฉด ํ๋ก๋์
์ฝ๋๋ฅผ ๋ฆฌํฉํ ๋ง (Refactoring) ๋ฐ๋ฉด ๋จ์ ํ
์คํธ๋ TDD์ ์ฒซ ๋ฒ์งธ ๋จ๊ณ์ธ ๊ธฐ๋ฅ ๋จ์์ ํ
์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ ๐ ์์ํ๊ฒ ํ
์คํธ๋ง ์์ฑํ๋ ๊ฒ
Junit 5 Annotation Junit5์์ ์ ๊ณตํ๋ org.junit.jupiter.api ํจํค์ง ๋ด์ ์ด๋
ธํ
์ด์
@Test ํด๋น ์ด๋
ธํ
์ด์
์ ๋ฌ์๋ ๋ฉ์๋๊ฐ ํ
์คํธ ๋ฉ์๋์์ ๋ํ๋ธ๋ค. @BeforeEach ๊ฐ๊ฐ์ @Test, @RepeatedTest, @ParameterizedTest, @TestFactory ์ ์ ์คํ๋จ @AfterEach ๊ฐ๊ฐ์ @Test, @RepeatedTest, @ParameterizedTest, @TestFactory ํ์ ์คํ๋จ @BeforeAll ๋ชจ๋ @Test, @RepeatedTest, @ParameterizedTest, @TestFactory ์ ์ ์คํ๋จ @AfterAll ๋ชจ๋ @Test, @RepeatedTest, @ParameterizedTest, @Te..
https://www.acmicpc.net/problem/17825 17825๋ฒ: ์ฃผ์ฌ์ ์ท๋์ด ์ฃผ์ฌ์ ์ท๋์ด๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒ์ํ์์ ํ๋ ๊ฒ์์ด๋ค. ์ฒ์์๋ ์์ ์นธ์ ๋ง 4๊ฐ๊ฐ ์๋ค. ๋ง์ ๊ฒ์ํ์ ๊ทธ๋ ค์ง ํ์ดํ์ ๋ฐฉํฅ๋๋ก๋ง ์ด๋ํ ์ ์๋ค. ๋ง์ด ํ๋์ ์นธ์์ ์ด๋์ ์์ํ๋ฉด www.acmicpc.net ํ์ด ์ง๋ฆ๊ธธ์ด ์๋ ์นธ๋ค์ +2์ฉ ์ฆ๊ฐํ๊ณ ์๊ณ , ์ง๋ฆ๊ธธ์ ๊ฐ์ง ์นธ, 10/20/30์ ๊ต์ฐจ์ ์ธ 25๋ก ํฅํ๋ค. ๊ทธ๋์ ๊ฐ ๋
ธ๋๋ ์ ์, ๋์ฐฉ์ง์ ์ธ์ง, ๋ง์ด ์๋์ง, ์ง๋ฆ๊ธธ ์ฌ๋ถ๋ฅผ ๊ฐ์ ธ์ผ ํ๋ค. init() ์ง๋๋ฅผ ์์ฑํ๋ ํจ์ !! ์ ์ผ ๋ฐ๊นฅ์ชฝ ๊ฒฝ๋ก๋ฅผ ์์ฑํ๊ณ , ์ง๋ฆ๊ธธ์ ๊ฐ์ง 10/20/30 ์นธ์ ์ฐพ์ ์ง๋ฆ๊ธธ์ ์ถ๊ฐํด์ค๋ค! permutation(int depth) ์ฃผ์ฌ์์ ๊ฐ ์ซ์๋ฅผ 1~4๋ฒ ๋ง..
https://www.acmicpc.net/problem/14594 14594๋ฒ: ๋๋ฐฉ ํ๋ก์ ํธ (Small) ์ฒซ ๋ฒ์งธ ํ๋์ผ๋ก 1๋ฒ๊ณผ 2๋ฒ ๋ฐฉ์ด ํฉ์ณ์ ธ (1, 2), (3), (4), (5) ์ํ๊ฐ ๋๋ค. ์ดํ ๋ ๋ฒ์งธ ํ๋์ผ๋ก 2, 3, 4๋ฒ ๋ฐฉ์ด ํฉ์ณ์ ธ (1, 2, 3, 4), (5)์ ์ํ๊ฐ ๋๋ค. ๋ฐ๋ผ์ ๋จ์์๋ ๋๋ฐฉ์ ์๋ 2๊ฐ ๋๋ค. www.acmicpc.net ๋ฌธ์ ๋์๋ฆฌ๋ฐฉ์ด ๊ฐ์ง๊ณ ์ถ์๋ ๋ณ์ฐฌ์ด๋ LINK ์ฌ์
๋จ์ ๋ฌธ์ํ์ฌ N๊ฐ์ ๋ฐฉ ์ค์ ํ๋๋ฅผ ์ป์ ๊ธฐํ๋ฅผ ์ป์๋ค. ์ผ์๋ก ๋์ด์๋ ๊ฑด๋ฌผ์ N๊ฐ์ ๋ฐฉ์ ์ผ์ง์ ์์ ์กด์ฌํ๋ฉฐ, ๊ฐ ๋ฐฉ์๋ ๋ฒํธ๊ฐ ๋งค๊ฒจ์ ธ ์๋ค. ๋งจ ์ผ์ชฝ ๋ฐฉ์ ๋ฒํธ๋ 1๋ฒ์ด๋ฉฐ, ์์๋๋ก ์ฆ๊ฐํ์ฌ ๋งจ ์ค๋ฅธ์ชฝ ๋ฐฉ์ ๋ฒํธ๊ฐ N๋ฒ์ด๋ค. ๊ฐ ๋ฐฉ ์ฌ์ด์๋ ๋ฐฉ์ ๊ตฌ๋ถํ๋ ๋ฒฝ์ด ์กด์ฌํ๋ค. ๋ฌผ๋ก ..
https://www.acmicpc.net/problem/13460 13460๋ฒ: ๊ตฌ์ฌ ํ์ถ 2 ์ฒซ ๋ฒ์งธ ์ค์๋ ๋ณด๋์ ์ธ๋ก, ๊ฐ๋ก ํฌ๊ธฐ๋ฅผ ์๋ฏธํ๋ ๋ ์ ์ N, M (3 ≤ N, M ≤ 10)์ด ์ฃผ์ด์ง๋ค. ๋ค์ N๊ฐ์ ์ค์ ๋ณด๋์ ๋ชจ์์ ๋ํ๋ด๋ ๊ธธ์ด M์ ๋ฌธ์์ด์ด ์ฃผ์ด์ง๋ค. ์ด ๋ฌธ์์ด์ '.', '#', 'O', 'R', 'B' www.acmicpc.net ๋ฌธ์ ์คํํธ๋งํฌ์์ ํ๋งคํ๋ ์ด๋ฆฐ์ด์ฉ ์ฅ๋๊ฐ ์ค์์ ๊ฐ์ฅ ์ธ๊ธฐ๊ฐ ๋ง์ ์ ํ์ ๊ตฌ์ฌ ํ์ถ์ด๋ค. ๊ตฌ์ฌ ํ์ถ์ ์ง์ฌ๊ฐํ ๋ณด๋์ ๋นจ๊ฐ ๊ตฌ์ฌ๊ณผ ํ๋ ๊ตฌ์ฌ์ ํ๋์ฉ ๋ฃ์ ๋ค์, ๋นจ๊ฐ ๊ตฌ์ฌ์ ๊ตฌ๋ฉ์ ํตํด ๋นผ๋ด๋ ๊ฒ์์ด๋ค. ๋ณด๋์ ์ธ๋ก ํฌ๊ธฐ๋ N, ๊ฐ๋ก ํฌ๊ธฐ๋ M์ด๊ณ , ํธ์์ 1×1ํฌ๊ธฐ์ ์นธ์ผ๋ก ๋๋์ด์ ธ ์๋ค. ๊ฐ์ฅ ๋ฐ๊นฅ ํ๊ณผ ์ด์ ๋ชจ๋ ๋งํ์ ธ ์๊ณ , ๋ณด๋์๋ ..