๋ฐ์ํ ๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ60 [Spring Security] SecurityContextHolder๋? ๋ฆฌํ๋ ์ฌ ํ ํฐ์ DB์๋ ๋ณด๊ดํ๊ธฐ ๋๋ฌธ์Entity๋ Repository๊น์ง ๋ง๋ค์ด์ค ์ํ ์ด์ ํ ํฐ ํํฐ๋ฅผ ๋ง๋ค ์ฐจ๋ก์. ํํฐ๋ ์ ๋ฌ๋๊ธฐ ์ ํ์URLํจ๋ก์ ๋ง๋ ๋ชจ๋ ์์ฒญ ์ฒ๋ฆฌํ๋ ๊ธฐ๋ฅ์ด ์์.HTTP์์ฒญ์ด controller๊น์ง ๋๋ฌํ๊ธฐ ์ /ํ์ ์๋. ์์ฒญ์ด ์ค๋ฉด, ํค๋๊ฐ ๋น๊ตํด์ ํ ํฐ ์๋์ง ํ์ธํจ.์ ํจ์ฑ ํ์ธํ๊ณ ์ ํจํ ํ ํฐ์ด๋ฉด Security Context Holder(ํด๋์ค)์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ ์ฅํจ. ** SecurityContextHolder๋ ์์์๋ ์ ๊น ์ธ๊ธํ ์ ์๋๋ฐ,์ธ์ฆ ๊ฐ์ฒด(Authentication)๊ฐ ์ ์ฅ๋๋ ๊ณณ์.(๊ทธ๋์ getAuthentication()๋ฉ์๋๊ฐ ์ฃผ๋ก ํธ์ถ๋๋๊ณณ์ด ํํฐ๋ผ๊ณ ๋ค์)๋ฐ๋ผ์ ์ฌ๊ธฐ์ ์ธ์ฆ ๊ฐ์ฒด ๊บผ๋ด์ ์ฌ์ฉํ ์ ์์. ์ด ํด๋์ค๋ ์ค๋ ๋๋ง๋ค ๊ณต๊ฐ์.. 2025. 5. 5. [Git] ๊นํ๋ธ์ SSH์๊ฒฉ ์ ์ํ๊ธฐ/SSH ํค ์์ฑ/ํผ๋ธ๋ฆญํค ์ ์กํ๊ธฐ/SSH์ฃผ์๋ก ์๊ฒฉ ์ ์ฅ์ ์ฐ๊ฒฐํ๊ธฐ SSH ์๊ฒฉ ์ ์์ด๋SSH = Secure Shell์ ์ค์๋ง๋ณด์์ด ๊ฐํ ์์ ํ ๋ฐฉ๋ฒ์ผ๋ก ์ ๋ณด ๊ตํํ๋ ๋ฐฉ์โPublic Key & Private Key ํ ์์ผ๋ก ๋ฌถ์ฌ์ ์ปดํจํฐ๋ฅผ ์ธ์ฆํจSSH์์ฑ๊ธฐ๋ฅผ ์คํํ๋ฉด ํจ๊ป ๋ง๋ค์ด์ง.โโโโSSH ํค ์์ฑํ๊ธฐ$ ssh-keygen*ํ ๋๋ ํ ๋ฆฌ์์ ํด์ผํจ ($cd ~๋ก ํ ๋๋ ํ ๋ฆฌ๋ก ์ด๋ํ ์ ์์)โYour identification has been saved in ~~~~~.ssh/id_rsa --> ํ๋ผ์ด๋น ํคYour public key has been sved in ~~~~.ssh/id_rsa.pub --> ํผ๋ธ๋ฆญ ํคโ$ cd ~/.ssh $ ls -la์์ ์ฝ๋๋ก ํค๋ค์ด .ssh ๋๋ ํ ๋ฆฌ์ ์ ์ฅ๋์๋์ง ํ์ธ ๊ฐ๋ฅโโโโ๊นํ๋ธ์ ํผ๋ธ๋ฆญ ํค ์ ์กํ๊ธฐโ์ฌ์ฉ์ ์ปด.. 2025. 5. 5. [Git]์๊ฒฉ ์ ์ฅ์ ํจ๊ป ์ฌ์ฉํ๊ธฐ/git clone/git pull **git_home๊ณผ git_office๋ผ๋ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ง๋ค์ด์ ์ฐ์ต. ์ด๋ฏธ ๋ง๋ค์ด์ ธ์๋ค๊ณ ๊ฐ์ git_home์ ๊ฐ์ธ ์ปดํจํฐ ์ ์ฅ์, git_office๋ ํ์ฌ ์ปดํจํฐ ์ ์ฅ์๋ผ๊ณ ์๊ฐํด๋ ๋จโโโ์๊ฒฉ ์ ์ฅ์ ๋ณต์ ํ๊ธฐ - git clone1.clone-https์ ์ฃผ์๋ฅผ ๋ณต์ฌโโ2.ํฐ๋ฏธ๋ ์ฐฝ์์ git_home ๋๋ ํ ๋ฆฌ, git_office ๋๋ ํ ๋ฆฌ ๋ง๋ค๊ณ git clone @@@git clone *๋ณต์ฌํ ์ฃผ์* git_homegit_home์ ๋ณต์ฌํ๋ ๋ชจ์ตโgit_office์ ๋ณต์ฌํ๋ ๋ชจ์ตโ**์ด ๋ git_home(ํน์ office)์ด๋ผ๋ ๋๋ ํ ๋ฆฌ๊ฐ ์์ผ๋ฉด ์๋์ผ๋ก ๋ง๋ค์ด์ง โโโ3. ls -al ๋ช ๋ น ์ฌ์ฉํด์ ๋ง๋ ๋๋ ํ ๋ฆฌ ํ์ธโโโ4. git_home ๋๋ ํ ๋ฆฌ์ git_office ๋๋ ํ ๋ฆฌ์ ๊ฐ์.. 2025. 5. 5. [Git]์๊ฒฉ ๋ธ๋์น ์ ๋ณด ๊ฐ์ ธ์ค๊ธฐ/git fetch/ํ์น/๋ธ๋์น ๋ณํฉ/FETCH-HEAD ์๊ฒฉ master ๋ธ๋์น**์๊ฒฉ ์ ์ฅ์์ ์๋ ๋ธ๋์น --> ์๊ฒฉ ๋ธ๋์น**์๊ฒฉ ์ ์ฅ์์ ์๋ master ๋ธ๋์น --> ์๊ฒฉ master ๋ธ๋์น๋ก ๋ถ๋ฅด๊ฒ ์ 1. ๊นํ๋ธ์์ ์์ ํ๋ ์ ์ฅ์๋ก ์ ์ ํ, ๋ง์ง๋ง ์ปค๋ฐ ํ์ธ* ์ฑ ๋๋ก ํ๋ค๋ฉด ๋ง์ง๋ง ์ปค๋ฐ์ 'add d'โ์ฌ๊ธฐ์ ์๊ฒฉ ์ ์ฅ์์ HEAD๋ ์๊ฒฉ ์ ์์์ master ๋ธ๋์น๋ฅผ ๊ฐ๋ฆฌํค๊ณ ,์๊ฒฉ master ๋ธ๋์น๋ 'add d'๋ผ๋ ์ต์ข ์ปค๋ฐ ๊ฐ๋ฆฌํค๊ณ ์์โโ2. git_home ๋๋ ํ ๋ฆฌ์์ git log๋ก ์ปค๋ฐ ์ํ ํ์ธ$ cd ~/git_home $ git log --onelineHEAD -> main : ์ด ์ปค๋ฐ์ด ์ง์ญ ์ ์ฅ์์ ์ต์ข ์ปค๋ฐ์ด๋ผ๋ ๋ปorigin/main : ์๊ฒฉ ์ ์ฅ์์ ์ต์ข ์ปค๋ฐ์ด๋ผ๋ ๋ปโ์์ง git_home ๋๋ ํ ๋ฆฌ๋ ์๊ฒฉ ์ ์ฅ.. 2025. 5. 4. [Github]๊ณต๋ ์์ ์ ์ถ๊ฐํ๊ธฐ 1. ๊นํ๋ธ ๋ธ๋ผ์ฐ์ ๋ก ๋ค์ด๊ฐ์ settings ํด๋ฆญ์์ ์ฌ์ง์ ์ ์ ํ๋ ์ ๋ํฐ ์ ์ฅ์..โโโ2. Collaborators - ์ค๋ฅธ์ชฝ ํ ์คํธ ํ๋์ ํ์๋ค์ ๊นํ๋ธ ์์ด๋ or ๋ฉ์ผ ์ฃผ์ ์์ฑ - Add Collaboratorํด๋ฆญโโโ3. ํ์์ ํ์ ์๋ก ์ด๋๋์๋ค๋ ๋ฉ์ผ + ๊นํ๋ธ ๋ฉ์์ง ๋ฐ๊ฒ ๋จ ->Accept Invitation๋๋ฅด๋ฉด ์ด๋ ์๋ฝ! โ๊ณต๋ ์์ ์๋ค์ด ๋ชจ๋ ์ด๋๋ฅผ ์๋ฝํ๋ฉด Collaborators ํ๋ฉด์ ์ฌ์ฉ์ ์ด๋ฆ๋ง ๋ํ๋จ 2025. 5. 4. [Git]๋ธ๋์น pushํ๊ธฐ/ํ ๋ฆฌํ์คํธ๋ก ํธ์ฌํ ๋ธ๋์น ๋ณํฉํ๊ธฐ/git checkout -b ์๋ก ๋ง๋ ๋ธ๋์น pushํ๊ธฐ1. ์๊ฒฉ ์ ์ฅ์์ ๋ค๋ฅธ ํ์๋ค์ ์ปค๋ฐ์ด ์ถ๊ฐ๋์๋์ง ํ์ธํ๊ธฐ ์ํด git pull๋ช ๋ น ์ฌ์ฉ$ git pullโโ2. ์ง์ญ ์ ์ฅ์์ ๋ธ๋์น f๋ฅผ ๋ง๋ค๊ณ , f๋ก ์ฒดํฌ์์$ git checkout -b f*์ด๋ฏธ f๋ธ๋์น๊ฐ ์๋ค๋ฉด f๋ธ๋์น๋ก ์ฒดํฌ์์ํจโโ3. f1.txt ๋ฌธ์ ์์ฑ + ์ปค๋ฐ (features1)+ push$ vim f1.txt $ git add f1.txt $ git commit -m "features1" $ git push origin f*git push ๋ค์ origin f ์ถ๊ฐํ๋ฉด ์๊ฒฉ ์ ์ฅ์(origin)์ f ๋ธ๋์น๋ฅผ pushํ๊ฒ ๋ค๋ ๋ปโโโ4. ์น ๋ธ๋ผ์ฐ์ ๋ก ์๊ฒฉ ์ ์ฅ์ ์ ์ - 2 branches ํ์ธ ํ ๋ฆฌํ์คํธ๋ก pushํ ๋ธ๋์น ๋ณํฉํ๊ธฐ1... 2025. 5. 4. [Java] stream()ํจ์๋(map, toList ํ์ฉ ์์ ) ๊ณต์๋ฌธ์ :https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/stream/Stream.html w.getColor() == RED) .mapToInt(w -> w.getWeight()) " data-og-host="docs.oracle.com" data-og-source-url="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/stream/Stream.html" data-og-url="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/stream/Stream.html" dat.. 2025. 5. 4. [Java] ์๋ฐ ์ง๋ ฌํ, ์ญ์ง๋ ฌํ๊ฐ ๋ญ๊น?ObjectMapper ํด๋์ค ObjectMapper ํด๋์ค๊ฐ ๋ค์ด๊ฐ ์ค์ต ์ฝ๋๊ฐ ์๊ธธ๋ ๊ถ๊ธํด์ ์์๋ดโโโObjectMapper ํด๋์ค ํตํด์ ๋ง๋ ๊ฐ์ฒด๋,โ์๋ฐ ๊ฐ์ฒด -> Json๊ฐ์ฒด (์ง๋ ฌํ)Json๊ฐ์ฒด -> ์๋ฐ ๊ฐ์ฒด (์ญ์ง๋ ฌํ)ํ ๋ ์ฐ์ HTTP์์๋ JSON์ ์ฐ๊ณ JAVA์์๋ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํจโ๊ทธ๋ ๋ค๋ฉด ์๋ก ํ์์ ๋ง๊ฒ ๋ณํํ๋ ๊ณผ์ ์ด ํ์์ ์.โ๊ทธ๋ฐ ์์ ์ ์ง๋ ฌํ, ์ญ์ง๋ ฌํ ๋ผ๊ณ ํ๋๊ฑฐ์(์ด๋ฆ์ด ๊ดํ ์ด๋ ค์..)โโ์๋ฅผ๋ค์ดโ์๋ฐ ๊ฐ์ฒด๊ฐ ํ๋ ์๋๋ฐ, ์ด ๊ฐ์ฒด ์์๋"title"์๋ "์ ๋ชฉ1"์ด๋ผ๋ ๊ฐ์ด,"content"์๋ "๋ด์ฉ1"์ด๋ผ๋ ๊ฐ์ด ๋ค์ด๊ฐ ์๋ค๊ณ ์น์.โ---> (JSON์ผ๋ก ์ง๋ ฌํ) --->{"title" : "์ ๋ชฉ1","content": "๋ด์ฉ1"} ์ด๋ ๊ฒ ๋ณํ๋๋๊ฑฐ์!!!!โโ์ญ์ง๋ ฌํ๋ ๊ฑ ๋ฐ๋โ O.. 2025. 5. 4. [Spring Boot] ํ ์คํธ์ฝ๋์์ ๋กฌ๋ณต import์๋จ @Getterpublic class JwtFactory { private String subject = "test1@email.com"; private Date issuedAt = new Date(); private Date expiration = new Date(new Date().getTime() + Duration.ofDays(14).toMillis()); private Map claims = emptyMap(); // ๋น๋ ํจํด ์จ์ ์ค์ ์ด ํ์ํ ๋ฐ์ดํฐ๋ง ์ ํ ์ค์ @Builder public JwtFactory(String subject, Date issuedAt, Date expiration, Map claims) { this.subject .. 2025. 5. 4. ์ด์ 1 2 3 4 5 6 7 ๋ค์ ๋ฐ์ํ