์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- ๋นํธ๋ง์คํน
- ์๋ฎฌ๋ ์ด์
- ๋ค์ต์คํธ๋ผ
- ์ ๋ ฌ
- ๊ตฌํ
- ์๋๋ก์ด๋
- Deque
- bfs
- DP
- ๋ถํ ์ ๋ณต
- ์๊ณ ๋ฆฌ์ฆ
- dfs
- ๋ถ๋ถ์งํฉ
- ํ๋ก๊ทธ๋๋จธ์ค
- HashMap
- BOJ
- 3์ฐจ์๋ฐฐ์ด
- ๋ฌธ์์ด
- SQL
- ๋ฐฑํธ๋ํน
- ํ๋ก์ด๋์์ฌ
- ํ์ด์ฌ
- ์ฌ๊ท
- ๋ธ๋ฃจํธํฌ์ค
- ์ด๋ถํ์
- ๋ฐฐ๋ญ๋ฌธ์
- ์กฐํฉ
- heapq
- Python
- Java
- Today
- Total
๋ชฉ๋ก์ ์ฒด ๊ธ (146)
It's easy, if you try
๋ณดํธ๋์ด ์๋ ๊ธ์ ๋๋ค.
๋ณดํธ๋์ด ์๋ ๊ธ์ ๋๋ค.
๋ณดํธ๋์ด ์๋ ๊ธ์ ๋๋ค.
๋ช ์ฌ API๋ฅผ ๋ง๋ค๋๋ ์ํฐํฐ๋ฅผ ๋ฐํํ๋ฉด ์๋๋ค ! (์ ๋ณด์ ์ถ, API ์คํ ๋ณํ) ํ ํ๋ฉด html ํ์ผ : jsp์ include ์ ๊ฐ๋ค. fragments ํด๋ ๋ด์ header.html ํ์ผ ๋ด์ th:fragment="header"๋ฅผ ๊ฐ์ ธ๋ค include ํ๋ค. ํ์๋ฆฌํ ๊ธฐ๋ณธ์ค์ spring: thymeleaf: prefix: classpath:/templates/ suffix: .html ๋ฐํํ ๋ฌธ์( home )๊ณผ ์คํ๋ง๋ถํธ ์ค์ prefix , suffix ์ ๋ณด๋ฅผ ์ฌ์ฉํด์ ๋ ๋๋งํ ๋ทฐ( html )๋ฅผ ์ฐพ๋๋ค. ํ์๋ฆฌํ layout ์คํ์ผ Include-style layouts Hierarchical-style layouts ํ์๋ฆฌํ ๋ฌธ๋ฒ ?๋ฅผ ๋ถ์ด๋ฉด null์ ๋ฌด์ํ๋ค. Controlle..
์ฃผ๋ฌธ ๋๋ฉ์ธ ๊ฐ๋ฐ ์ฃผ๋ฌธ ์ํฐํฐ ๊ฐ๋ฐ ์์ฑ ๋ฉ์๋ ๋ฐ ๋น์ฆ๋์ค ๋ก์ง ์์ฑ @NoArgsConstructor(access = AccessLevel.PROTECTED) : ์ธ๋ถ์์ set ํ ์ ์๋๋ก ํ๋ ์ต์ ์ฃผ๋ฌธ ๊ฒ์ ๊ธฐ๋ฅ ๊ฐ๋ฐ (์๋ ์ฐธ๊ณ ) ์ฃผ๋ฌธ ๋ฆฌํฌ์งํ ๋ฆฌ ๊ฐ๋ฐ ์ฃผ๋ฌธ ์๋น์ค ๊ฐ๋ฐ new Order(); ๋ฑ์ ๊ฐ๊ฐ์ set์ ์ง์ํ๊ณ createOrder ํจ์๋ฅผ ์์ฑํ๋๊ฒ์ด ์ ์ง๋ณด์ ์ธก๋ฉด์์ ์ฉ์ดํ๋ค. ์ฃผ๋ฌธ ๊ธฐ๋ฅ ํ ์คํธ ์ฐธ๊ณ : ์ฃผ๋ฌธ ์๋น์ค์ ์ฃผ๋ฌธ๊ณผ ์ฃผ๋ฌธ ์ทจ์ ๋ฉ์๋๋ฅผ ๋ณด๋ฉด ๋น์ฆ๋์ค ๋ก์ง ๋๋ถ๋ถ์ด ์ํฐํฐ์ ์๋ค. ์๋น์ค ๊ณ์ธต์ ๋จ์ํ ์ํฐํฐ์ ํ์ํ ์์ฒญ์ ์์ํ๋ ์ญํ ์ ํ๋ค. ์ด์ฒ๋ผ ์ํฐํฐ๊ฐ ๋น์ฆ๋์ค ๋ก์ง์ ๊ฐ์ง๊ณ ๊ฐ์ฒด ์งํฅ์ ํน์ฑ์ ์ ๊ทน ํ์ฉํ๋ ๊ฒ์ ๋๋ฉ์ธ ๋ชจ๋ธ ํจํด(https://martinfo..
1) ์ดํ๋ฆฌ์ผ์ด์ ์ํคํ ์ฒ ๊ณ์ธตํ ๊ตฌ์กฐ ์ฌ์ฉ controller, web: ์น ๊ณ์ธต (์ปจํธ๋กค๋ฌ๋ repository์ ์ ๊ทผ๊ฐ๋ฅ, ๋จ๋ฐฉํฅ) service: ๋น์ฆ๋์ค ๋ก์ง, ํธ๋์ญ์ ์ฒ๋ฆฌ repository: JPA๋ฅผ ์ง์ ์ฌ์ฉ, ์ํฐํฐ ๋งค๋์ ์ฌ์ฉ domain: ์ํฐํฐ๊ฐ ๋ชจ์ฌ์๋ ๊ณ์ธต, ๋ชจ๋ ๊ณ์ธต์์ ์ฌ์ฉ ํจํค์ง ๊ตฌ์กฐ domain exception repository service web ๊ฐ๋ฐ์์ ์๋น์ค, ๋ฆฌํฌ์งํ ๋ฆฌ ๊ณ์ธต ๊ฐ๋ฐ ํ ์คํธ ์ผ์ด์ค ์์ฑ ์น๊ณ์ธต ์ ์ฉ ๋๋ฉ์ธ ๊ฐ๋ฐ ์ํฐํฐ ๊ฐ๋ฐ (์ํฐํฐ ํด๋์ค ์์ฑ์ ์น์ 2 ์ฐธ๊ณ (https://sohee-dev.tistory.com/152)) ๋ฆฌํฌ์งํ ๋ฆฌ ๊ฐ๋ฐ ์๋น์ค ๊ฐ๋ฐ ๊ธฐ๋ฅ ํ ์คํธ ์น๊ณ์ธต ๊ฐ๋ฐ ํ์๋ฆฌํ๋ก ํ๋ฉด ๊ฐ๋ฐ ํ๋ฉด๊ณผ ๊ธฐ๋ฅ ์ฐ๊ฒฐ API ๊ฐ๋ฐ ajax ํต์ ,..
๋๋ฉ์ธ ๋ถ์ ์ค๊ณ 1) ์๊ตฌ์ฌํญ ๋ถ์ ์ค์ ๋์ํ๋ ํ๋ฉด์ ๋ณด๋ฉฐ ๊ธฐ๋ฅ์ ์ค๊ณํ๋ค 2) ๋๋ฉ์ธ ๋ชจ๋ธ๊ณผ ํ ์ด๋ธ ์ค๊ณ RDB๋ ๋ค๋๋ค ๊ด๊ณ๋ฅผ ๊ฐ์ง ์ ์์ด์ ๋งคํํ ์ด๋ธ์ ๊ฐ์ ธ์ผํจ. (1:N / N:1) ๊ณตํต์์ฑ์ ๊ฐ์ง๊ฒฝ์ฐ ์์ ๊ตฌ์กฐ๋ก ํํ ์ํฐํฐ ๋ถ์ (์ํฐํฐ๊ฐ ๊ฐ์ง๋ ์์ฑ์ ์์ฑ) ์ด๋, Address ๋ ์๋ฒ ๋๋ ํ์ - ํ์๊ณผ ๋ฐฐ์ก์์ ์ฌ์ฉ๋จ. ํ ์ด๋ธ ๋ถ์ (ํ ์ด๋ธ์ ๋ง๋ ํํ๋ก ์์ฑ - PK/ FK ์ง์ , ๋ค์ด๋ฐ ๋ฑ) ์ธ๋ ํค๊ฐ ์๋ ๊ณณ์ ์ฐ๊ด๊ด๊ณ์ ์ฃผ์ธ์ผ๋ก ์ ํด๋ผ ์ผ๋๋ค ๊ด๊ณ์์๋ ๋ค ์ชฝ์ ์ธ๋ํค๋ฅผ ์ง์ @ManyToMany ๋ ์ฌ์ฉ ์ง์ ์ค๊ฐ ํ ์ด๋ธ( CATEGORY_ITEM )์ ์ปฌ๋ผ์ ์ถ๊ฐํ ์ ์๊ณ , ์ธ๋ฐํ๊ฒ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๊ธฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์ ์ค๋ฌด์์ ์ฌ์ฉํ๊ธฐ์๋ ํ๊ณ๊ฐ ์๋ค. @ManyToMan..
์ฐ์ปดํ์ด์ง ์ฐ์ ์์ ์ฐ์ ์คํ๋ง ์ปจํ ์ด๋์์ ๊ด๋ จ ์ปจํธ๋กค๋ฌ๋ฅผ ์ฐพ๊ณ , ์์ผ๋ฉด static์์ ์ฐพ๊ธฐ ๋๋ฌธ์ @GetMapping("/") static ๋ด์ ์ฐ์ปดํ์ด์ง๋ก ์ค์ ํ ํ์ผ html ์ด๋ฆ action url๋ก controller์ @PostMapping์ผ๋ก ๋งคํ๋๋ค. thymeleaf # ์ด๋ฆ th: ๋ก ์์ํ๋๊ฒ ํ์๋ฆฌํ ๋ฌธ๋ฒ ์คํ๋ง DB ์ ๊ทผ ๊ธฐ์ 1. H2 DB๋ฅผ ์ด์ฉํ ์คํ๋ง ๋ฐ์ดํฐ ์์ธ์ค ๊ฐ๋ฐ์ด๋ ํ ์คํธ ์ฉ๋๋ก ๊ฐ๋ณ๊ณ ํธ๋ฆฌํ DB, ์น ํ๋ฉด ์ ๊ณต 2. JDBC ๊ณผ๊ฑฐ์ ์ฌ์ฉํ๋ ๋ฐฉ์ ์คํ๋ง ํตํฉ ํ ์คํธ @SpringBootTest: ์คํ๋ง ์ปจํ ์ด๋์ ํ ์คํธ๋ฅผ ํจ๊ป ์คํํ๋ค. @Transactional : ํ ์คํธ ์์ ์ ์ ํธ๋์ญ์ ์ ์์ํ๊ณ , ํ ์คํธ๊ฐ ๋๋๋ฉด rollback ํด์ค๋ค. (๋ค์ ํ ..
๋น์ฆ๋์ค ์๊ตฌ์ฌํญ ์ ๋ฆฌ ์ผ๋ฐ์ ์ธ ์น ์ดํ๋ฆฌ์ผ์ด์ ๊ณ์ธต ๊ตฌ์กฐ ์ปจํธ๋กค๋ฌ: ์น MVC์ ์ปจํธ๋กค๋ฌ ์ญํ ์๋น์ค: ํต์ฌ ๋น์ฆ๋์ค ๋ก์ง ๊ตฌํ ๋ฆฌํฌ์งํ ๋ฆฌ: ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผ, ๋๋ฉ์ธ ๊ฐ์ฒด๋ฅผ DB์ ์ ์ฅํ๊ณ ๊ด๋ฆฌ ๋๋ฉ์ธ: ๋น์ฆ๋์ค ๋๋ฉ์ธ ๊ฐ์ฒด ์) ํ์, ์ฃผ๋ฌธ, ์ฟ ํฐ ๋ฑ๋ฑ ์ฃผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๊ณ ๊ด๋ฆฌ๋จ. ๋ฐ์ดํฐ ์ ์ฅ์๊ฐ ์ ์ ๋์ง ์์์๋, ์ฐ์ Repository๋ฅผ ์ธํฐํ์ด์ค๋ก ์์ฑํ์ฌ ์ถํ์ ๊ตฌํ ํด๋์ค๋ฅผ ๋ณ๊ฒฝํ ์ ์๋๋ก ์ค๊ณํ๋ค. 1. ๋๋ฉ์ธ , ๋ฆฌํฌ์งํ ๋ฆฌ ์์ฑ โญ๏ธ Optional Java8์ ๋์ ๋จ. null ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ ์ค ํ๋. ์ฌ์ฉ๋ฐฉ๋ฒ ์์) Optional member : Optional ๊ฐ์ฒด ์ ์ธ Optional.ofNullable(store.get(id)); : null์ด์ด๋ ๊ฐ์ธ์ ๋ฐํ ..
ํ๋ก์ ํธ ์ด๊ธฐ์ ํ (springboot) build.gradle > repositories - mavenCentral : ๋ฉ์ด๋ธ ๊ณต๊ฐ ์ฌ์ดํธ์์ ๊ด๋ จ ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ๋ค์ด๋ก๋ ๋ฐ์๋ผ. .gitignore : ๊ธฐ๋ณธ์ ์ผ๋ก ์ ํ ๋์ด์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์คํ๋ง๋ถํธ๋ tomcat ์๋ฒ ์ค์น ์ํด๋ ๋๋น ์ค๋ฌด์์๋ system.out.println ๋์ log ์ฌ์ฉํด์ผํ๋ค !! (๋ก๊ทธ ๋ ๋ฒจ๋ณ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด) ํ ์คํธ ๊ด๋ จ java์์ ํ ์คํธ ์ฝ๋ ์์ฑ์ ์ฃผ๋ก junit์ ์ด์ฉํ๋ค. (์ต๊ทผ์ junit5๊ฐ ๋์ด) - ํ ์คํธ ํ๋ ์์ํฌ assertj: ํ ์คํธ ์ฝ๋๋ฅผ ์ข ๋ ํธํ๊ฒ ์์ฑํ๊ฒ ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ spring-test: ์คํ๋ง ํตํฉ ํ ์คํธ ์ง์ View ํ๊ฒฝ์ค์ src>resources>static> index.h..