devrudevico
@devrudevico
Reviews Written
15
Average Rating
5.0
Posts
Q&A
๊ฐ์ ๋ง์ง๋ง์ ์ธ๊ธํ๋ '๋ค์ ๊ฐ์'๋?
์์ฒด ํด๊ฒฐ: ์น์ 10 - ์๊ฐ์ ์ถํ๋๋ฆฝ๋๋ค ๋ฅผ ๋ณด๋๊น ๋ค์ ๊ฐ์ = ๊ทผ๋ณธ๊น-์์ฑ์ด ๋ง๋ค์!
- 0
- 1
- 50
Q&A
8๊ฐ git status ๊ด๋ จ ์ง๋ฌธ
git-scm์ ์ค๋ช ์ค ์ผ๋ถ๋ฅผ ์ฒจ๋ถํฉ๋๋ค.git-status - Show the working tree statusDisplays paths that have differences between the index file and the current HEAD commit...๊ฒฐ๋ก ๋ง ๋ง์๋๋ฆฌ์๋ฉด, ๋ค์ ์ํฉ ์ค ํ๋์ ์ํ ํ์ผ๋ค๋ง์ด git status ๋ช ๋ น์ ์ํด ์ถ๋ ฅ๋ฉ๋๋ค.UntrackedUntracked files: ๋ถ๋ถ์ ์ถ๋ ฅ๋ง์ง๋ง ์ปค๋ฐ ์์ ์ดํ๋ก ๋ณ๊ฒฝ ์ฌํญ์ด ์๋ Tracked ํ์ผ๋ณ๊ฒฝ ์ฌํญ์ด git add๋ก staged ๋ ๊ฒฝ์ฐ์๋ Changes to be committed: ๋ถ๋ถ์ ์ถ๋ ฅ๋ณ๊ฒฝ ์ฌํญ์ด ์์ง staged๊ฐ ์๋ ๊ฒฝ์ฐ์๋ Changes not staged for commit: ๋ถ๋ถ์ ์ถ๋ ฅ์ฆ, ์ด์ ๊ฐ์์์ vi rectangle๊ณผ vi circle ํ์ผ์ ์์ฑํ๊ณ ์ปค๋ฐํ์ จ์ผ๋ฏ๋ก ๋ ํ์ผ์ ๋ง์ง๋ง ์ปค๋ฐ ์์ ์ดํ๋ก ๋ณ๊ฒฝ ์ฌํญ์ด ์กด์ฌํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ git status ๋ช ๋ น์ ์ํด ์ถ๋ ฅ๋๋ ๋์์ด ์๋๋๋ค.๋ ํ์ผ์ ์ฌ์ ํ working directory์ ์กด์ฌํ๋ฉฐ, git์ ์ถ์ ๋์์ ๋๋ค.(์ฌ์ง)
- 0
- 2
- 52
Q&A
ํธ๋์ญ์ ์ข ๋ฃ ํ์ setAuotoCommit(true)๋ก ๋ณ๊ฒฝํ๋ ์ด์ ๊ฐ ๋ฌด์์ธ๊ฐ์?
David๋ ๋ต๋ณ์ ์ถ๊ฐ์ ์ผ๋ก'์ฒ์ ์ธ์ ์ ์ป์ ๋๋ ๋ณดํต ๊ธฐ๋ณธ๊ฐ(autocommit=true)์์ ๊ธฐ๋'ํ๊ธฐ ๋๋ฌธ์ ์ดํ์ ๋ณธ์ธ์ด ์๋ ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ ์ธ์ ์ ์ป์ ๋ ์ด ๊ธฐ๋์ ๋ถ์ํ ์ ์๋๋ก ๋ฐ๊ฟ์ฃผ๋ ์ด์ ๋ ์์๊ฑฐ๋ผ ์๊ฐํฉ๋๋ค.์ปค๋ฅ์ ํ์ ์์ฑํ๊ธฐ ์ ์๋ ํญ์ ์๋ก์ด ์ปค๋ฅ์ ์ด ์์ฑ๋์๊ธฐ ๋๋ฌธ์, autocommit=true๋ก ์ค์ ๋ ์ปค๋ฅ์ ์ ๋ฐ๊ฒ ๋์ง๋ง ์ปค๋ฅ์ ํ์ ํตํด ๋ฐ์ผ๋ฉด ๋๊ตฐ๊ฐ ์ฌ์ฉํ๋ ์ปค๋ฅ์ ์ ๋ฐ๊ฒ ๋๋ ์ ์ด๋ (์ด์ ์ฌ์ฉ์๊ฐ ์ปค๋ฅ์ ์ ๋ํ ์ต์ ์ ๋ฐ๊ฟ๋จ์ ๊ฒ์ ๋๋นํ์ฌ) ์ด๊ธฐํ๋ ์ํ๋ก ๋ง๋ค์ด์ฃผ๋ ๊ฒ์ด์ฃ .
- 0
- 2
- 305
Q&A
๋ ํฌ์งํ ๋ฆฌ๊ฐ ํธ๋์ญ์ ๋๊ธฐํ๋งค๋์ ์์ ์ปค๋ฅ์ ์ ๊ฐ์ ธ์ค๋ ๋ถ๋ถ์ ๋ํ ์ง๋ฌธ์ด ์์ต๋๋ค.
DataSourceUtils์์ TransactionSynchronizationManager๋ฅผ importํ๊ณ ์์ต๋๋ค.๊ทธ๋ฆฌ๊ณ TransactionSynchronizationManager์ ๋ชจ๋ ๋ฉ์๋์ ํ๋๋ static์ ๋๋ค. ๋ฐ๋ผ์ DataSourceUtils์ ๋ฉ์๋๋ค์ TransactionSynchronizationManager.xxx()๋ก static ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ๋๊ธฐํ ๋งค๋์ ๋ฅผ ์ด์ฉํฉ๋๋ค.ThreadLocal์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ปจํ ์คํธ๊ฐ ํน์ ์ธ์คํด์ค์ ์ข ์๋๋ ๊ฒ์ด ์๋๊ณ , (์๋ง๋) threadId๋ก ๊ตฌ๋ถํ๊ธฐ ๋๋ฌธ์ ๋ชจ๋ static์ผ๋ก ๊ด๋ฆฌํ๋ ๊ฒ ์๋๊น์ถ๋ค์.๊ฒฐ๋ก ์ ์ผ๋ก, ํธ๋์ญ์ ๋งค๋์ ์ ๋ฐ์ดํฐ์์ค ์ ํธ ๋ชจ๋ ๋๊ธฐํ ๋งค๋์ ์ static ์์ญ์ ์ ๊ทผํด์ ์ปค๋ฅ์ ์ ์ป์ต๋๋ค. ์ด๋ ์ค๋ ๋๋ณ๋ก ์ ์ฅ ๊ณต๊ฐ์ด ๋ถ๋ฆฌ๋๋๋ฐ, ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉ์๋ณ๋ก ์ค๋ ๋๊ฐ ํ ๋น๋๊ธฐ ๋๋ฌธ์ ๋์ผํ ์ค๋ ๋์ ์์ฒญ์ด๋ผ๋ฉด ThreadLocal์ ๋ก์ง์ ์ํด ๊ฐ์ ์ ์ฅ ๊ณต๊ฐ์ ์ ๊ทผํ๊ฒ ๋ฉ๋๋ค.
- 0
- 2
- 123
Q&A
400๋ฒ๋ ์๋ฌ ์๋ต์ด ๋ชจ๋ 404.html๋ก ๋ฉ๋๋ค.
์ฐ๋ฆฌ๊ฐ /error-400์ผ๋ก ์์ฒญํ๋ค๊ณ ํด์ ์๋ฒ์์ 400 ์๋ฌ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ ์๋๋๋ค. ์ง๊ธ์ ServletExceptionController์ /error-404 ๊ฒฝ๋ก์ ๋งคํ๋ ์ปจํธ๋กค๋ฌ ๋ฉ์๋ ๋ด๋ถ์์ sendError(404)๋ฅผ ํธ์ถํ๋ฏ๋ก ๊ฒฝ๋ก์ ๋ฐ์ ์๋ฌ๊ฐ ์ผ์นํ๋ ๊ฒ์ ๋๋ค.๋ฐ๋ผ์ ์์ฑ์๋์ ์๋๋๋ก ํ๋ ค๋ฉด ServletExceptionController ์ฝ๋์ ์๋ ์ฝ๋๋ฅผ ์ถ๊ฐํด์ฃผ์๊ณ , /error-400์ผ๋ก ์์ฒญํ์๋ฉด 4xx.html์ด ๋ ๋๋ฉ๋๋ค.@GetMapping("/error-400") public void error400(HttpServletResponse response) throws IOException { response.sendError(400, "400 ์ค๋ฅ!"); }์ง๋ฌธ์๋์ ํ์ฌ ์ํ์์์ /error-400 ์์ฒญ์ ์กด์ฌํ์ง ์๋ ํ์ด์ง์ ๋ํ ์์ฒญ์ด๊ณ , ์ด ๊ฒฝ์ฐ์๋ ๊ธฐ๋ณธ์ ์ผ๋ก 404 ์๋ฌ๊ฐ ๋ฐ์ํฉ๋๋ค.์์ฒญ ๊ฒฝ๋ก์ 400์ด๋ผ๊ณ ์ ๋๋ค๊ณ ํด์ ๋ง๋ฒ์ฒ๋ผ 400 ์๋ฌ๊ฐ ๋ฐ์ํ์ง ์๋๋ค๋ ๊ฒ์ด์ฃ .
- 0
- 2
- 123
Q&A
preHandle์์ ํธ๋ค๋ฌ๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์ ์ ์๋ ์ด์
ai ์ค๋ช ์ฒ๋ผ ๋์คํจ์ฒ ์๋ธ๋ฆฟ์์ ์์ฒญ์ ์๋ตํ๊ธฐ ์ํด ํ์ํ ๊ฐ์ฒด๋ค(ํธ๋ค๋ฌ ์ด๋ํฐ, ํธ๋ค๋ฌ)์ ์ ํด์ฃผ๊ธฐ ๋๋ฌธ์ ๊ทธ ์ดํ์ ์คํ๋๋ ์ธํฐ์ ํฐ์์๋ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์ ์ ์์ต๋๋ค.
- 0
- 2
- 90
Q&A
์ซ์์ ๋ ฅ ์ int ํ ๋ฒ์๊ฐ ๋์ด๊ฐ๋ ๊ฒฝ์ฐ
๊ธฐ๋ณธ์ ์ผ๋ก HTML Form ์ ๋ ฅ์ String์ผ๋ก ์ ์ก์ด ๋ฉ๋๋ค.์ฆ, int ๋ฒ์ ๋ด์ธ 10000์ ์ ๋ ฅํ๋๋ผ๋ ์ผ๋จ String์ผ๋ก ์ ์ก์ด ๋๊ณ , ์๋ฒ์์ ์ด๋ฅผ int๋ก ๋ฐ์ธ๋ฉํ๋ ๊ฒ์ ๋๋ค. ์ด๋๋ ๋ฐ์ธ๋ฉ์ ์ฑ๊ณตํ๊ฒ ์ฃ .๋ฐ๋ผ์ 1111111111(11๊ฐ)๋ ์ผ๋จ String์ผ๋ก ์ ์ก์ด ๋๊ณ , ์๋ฒ์์ ์ด๋ฅผ int๋ก ๋ฐ์ธ๋ฉ ์๋ํ์ง๋ง ์คํจํ๊ธฐ ๋๋ฌธ์ ์๋ฒ๋ "์ซ์๊ฐ ์๋๋ค" ๋ผ๊ณ ํ๋จํฉ๋๋ค. ์ด๋ ์ง๋ฌธ์๋์ ์๋ฌธ์ "int ๋ฒ์๋ ์๋์ด๋ long ๋ฒ์ ๋ด๋ผ์ ์ซ์๋ฅผ ์ ๋ ฅํ ๊ฒ์ ๋ง์ง ์๋?" ์ธ๋ฐ์. ์ฌ๊ธฐ์ ์์ ๋ง์๋๋ฆฐ ๊ฒ์ฒ๋ผ์๋ฒ๋ (HTML Form ์ ๋ ฅ์ ๊ฒฝ์ฐ) 10000์ด๋, 111111...์ด๋, "abc"๋, ... -> ๊ฒฐ๊ตญ ๋ฌธ์์ด๋ก ๋ฐ๋๋ค.๋ฐ์ ๋ฌธ์์ด์ int ํ์ ์ผ๋ก ๋ณํ ์ฑ๊ณตํ๋ฉด "์ซ์๊ฐ ์ ๋ ฅ๋ ๊ฒ์ด๊ตฌ๋" ๋ผ๊ณ ํ๋จํ ๋ฟ์ ๋๋ค.์๋ฒ ์ธก์์ ์ ์ด์ int ํ์ ์ผ๋ก ์ค์ ํ์ผ๋ฏ๋ก, '์ซ์'์ ์ ์๊ฐ '์ญ์ง์๋ค์ ์กฐํฉ(ํฌ๊ธฐ ์๊ด x)'๊ฐ ์๋๋ผ 'intํ ๋ฒ์ ๋ด์ ์ญ์ง์๋ค์ ์กฐํฉ'์ธ ๊ฒ์ด์ง์. ๋ฐ๋ผ์ ์ง๋ฌธ์๋ ์๋๋๋ก ๋์ํ๊ฒ๋ ํ๊ธฐ ์ํด์๋ ์๋ฒ ์ธก์์์ '์ซ์'์ ๋ํ ์ ์๋ฅผ int์์ long์ผ๋ก ๋ณํํด์ฃผ๋ฉด ๋ฉ๋๋ค.์ฆ, hello.itemservice.domain.item ๊ฒฝ๋ก์ Item ํ์ผ์ ์ฝ๋๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ๋ณ๊ฒฝํ๋ฉด ๋ฉ๋๋ค.(์ถ๊ฐ๋ก ์์ฑ์๋ price์ ๋ํ ๊ณ์ฐ ๊ฒฐ๊ณผ๋ฅผ ๋ณ์๋ก ๋ฐ๋ ๋ถ๋ถ๋ ๋ชจ๋ long์ผ๋ก ๋ณ๊ฒฝํด์ค์ผ ๋ฉ๋๋ค.)package hello.itemservice.domain.item; import lombok.Data; @Data public class Item { private Long id; private String itemName; private Long price; private Integer quantity; public Item() { } public Item(String itemName, Long price, Integer quantity) { this.itemName = itemName; this.price = price; this.quantity = quantity; } } ๊ฒฐ๊ณผ ์ฌ์ง(์ฌ์ง)
- 0
- 2
- 199
Q&A
์์ ์ฝ๋ ์ ๊ณต ๊ด๋ จ ๋ฌธ์
์น์ 1. ๊ฐ์ ์์ค ์ฝ๋ ํ์ธํ์๋ฉด ๋ฉ๋๋ค.
- 0
- 2
- 65
Q&A
RequestMappingHandlerAdapter์ Controller ํธ์ถ ๊ณผ์
์ง๋ฌธ์ ๋จ๊ธฐ๋ฉด์ ์๊ฐ์ ์ ๋ฆฌํ๊ณ , ํด๋น ๋ถ๋ถ ์์์ ๋ค์ ๋๋ ค๋ณด๋ ์ํ๋๊ป์๋ ๋ฐฉ์2๊ฐ ์๋๋ผ ๋ฐฉ์1๋ก ์ค๋ช ์ ํ์ จ๋ค๋ ํ๋จ์ด ๋๋ค์!์ฒ์์ ๋ฆฌ์กธ๋ฒ -> ์ปจํธ๋กค๋ฌ๋ก ๊ฐ๋ ์ ์ ํ์ดํ๋ก ์ธํด ํท๊ฐ๋ ธ์ต๋๋ค.
- 0
- 3
- 72
Q&A
RequestMappingHandlerAdapter์ Controller ํธ์ถ ๊ณผ์
๊ธ์ ๋ค ์์ฑํ๊ณ ๋๋ ์๋ก์ด ํ๋ฆ(๋ฐฉ์3)๋ ์๊ฐ์ด ๋๋๋ฐ์. ๋ฐฉ์3(์ด ๊ฐ์ ์ด์ ๊ทธ๋ฆผ ๊ธฐ๋ฐ์ ํ๋ฆ) ํธ๋ค๋ฌ ์ด๋ํฐ -> ์ปจํธ๋กค๋ฌ ํธ์ถ(ํ์ฌ ํ๋ฆ) ํธ๋ค๋ฌ ์ด๋ํฐ -> ๋ฆฌ์กธ๋ฒ -> ์ปจํธ๋กค๋ฌ . ์ด๋ ๊ฒ ์ค๊ฐ์ ๋ฆฌ์กธ๋ฒ๋ฅผ ๊ปด์ ํธ์ถ ๋ฐฉ์1, 2, 3 ์ค์ ์ด๋ค ๊ฒ์ด ์ ์ ํ ํ๋ฆ์ธ์ง ๊ถ๊ธํ๋ค์ ใ
- 0
- 3
- 72




