์ ์ฒด ๊ธ (402) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [์ฝ๋ ๋ฆฌํฉํ ๋ง] Compose ๋ฉ์๋ ํจํด ์๋ฐ์ง๊ธฐ ๋ฐ์ฌ์ฑ๋ TDD ๊ฐ์๋ฅผ ๋ณด๋ ๋์ค .. `compose ๋ฉ์๋ ํจํด`์ด๋ ๊ฒ์ด ๋์์ต๋๋ค.TDD๋ฅผ ์งํํ ๋, ์คํจํ๋ ํ ์คํธ ์์ฑ -> ๊ธฐ๋ฅ ๊ตฌํ ๋ฐ ํ ์คํธ ํต๊ณผ -> ์ฝ๋ ๋ฆฌํฉํ ๋ง์ ์งํํ๋๋ฐ, `์ฝ๋ ๋ฆฌํฉํ ๋ง` ๋ถ๋ถ์์ compose method ํจํด์ ์ ์ฉํด์ผํ๋ค๊ณ ์ค๋ช ํด์ฃผ์ จ์ต๋๋ค. ์ฌ๊ธฐ์ ๋์จ compose method ํจํด์ด ๋ฌด์์ธ์ง ๊ถ๊ธํ์ฌ ํ๋ฒ ์ ๋ฆฌ๋ฅผ ํด๋ณด์์ต๋๋ค. ์ฐธ๊ณ ๋ก, ๋ฐ์ฌ์ฑ๋์ ์ฝ๋ ๋ฆฌํํ ๋งํ ๋ ์๋์ ๊ฐ์ ๊ฒ๋ค์ ์งํค๋ฉด ์ข๋ค๊ณ ํ์ จ์ต๋๋ค.ํ ๋ฉ์๋์ ์ค์ง ํ ๋จ๊ณ์ ๋ค์ฌ์ฐ๊ธฐ(indent)๋ง ํ๋ค. -> 2 ์ด์์ indent๋ ๋ฉ์๋๋ก ์์ฑelse ์์ฝ์ด๋ฅผ ์ฐ์ง ์๋๋ค. -> else์ ์ฌ์ฉํ์ง ๋ง๊ณ if~ retrun์ผ๋ก ์์ฑํ๊ธฐ๋ฉ์๋๊ฐ ํ ๊ฐ์ง ์ผ๋ง ํ๋๋ก ๊ตฌํํ๊ธฐ.. [Spring boot] Spring Security์ ๊ตฌ๊ธ ๋ก๊ทธ์ธ ์ฐ๋ํ๊ธฐ ์คํ๋ง ์ํ๋ฆฌํฐ์ ๊ตฌ๊ธ ๋ก๊ทธ์ธ์ ์ฐ๋ํด๋ด ์๋ค. ์คํ๋ง ์ํ๋ฆฌํฐ์ ๋ํ ์ค๋ช ์ ์ฌ๊ธฐ์์ ํ์ธํ์ค ์ ์์ต๋๋ค.https://e-you.tistory.com/454 [Spring Security] Session ๊ธฐ๋ฐ ์ธ์ฆ ๋ฐฉ์ VS Token ๊ธฐ๋ฐ ์ธ์ฆ ๋ฐฉ์๋จผ์ , `์คํ๋ง ์ํ๋ฆฌํฐ`๋ ์คํ๋ง ํ๋ ์์ํฌ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ธ์ฆ(Authentication)๊ณผ ์ธ๊ฐ(Authorization)๋ฅผ ์ฝ๊ฒ ๊ตฌํํ ์ ์๋๋ก ๋์์ฃผ๋ ๋ณด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ์ฃผ๋ก ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ Ree-you.tistory.com1. ๊ตฌ๊ธ ์๋น์ค ๋ฑ๋ก ํ๋จ์ ๊ตฌ๊ธ ์ฌ์ดํธ๋ก ์ด๋ํด์ ๋ด๊ฐ ๋ง๋ค ํ๋ก์ ํธ ์ ๋ณด๋ฅผ ์ ๋ ฅํด์ฃผ์ด์ผํฉ๋๋ค.https://console.cloud.google.com Google ํด๋ผ์ฐ๋ ํ๋ซํผ๋ก๊ทธ์ธ Google ํด๋ผ์ฐ.. [Spring Security] Session ๊ธฐ๋ฐ ์ธ์ฆ ๋ฐฉ์ VS Token ๊ธฐ๋ฐ ์ธ์ฆ ๋ฐฉ์ ๋จผ์ , `์คํ๋ง ์ํ๋ฆฌํฐ`๋ ์คํ๋ง ํ๋ ์์ํฌ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ธ์ฆ(Authentication)๊ณผ ์ธ๊ฐ(Authorization)๋ฅผ ์ฝ๊ฒ ๊ตฌํํ ์ ์๋๋ก ๋์์ฃผ๋ ๋ณด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ์ฃผ๋ก ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ Rest Api ์์ ์ฌ์ฉ์ ์ธ์ฆ๊ณผ ์ ๊ทผ ์ ์ด๋ฅผ ๊ด๋ฆฌํ๋๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์คํ๋ง ์ํ๋ฆฌํฐ์ ์ฃผ์ ๊ธฐ๋ฅ์ธ์ฆ(Authentication) : ์ฌ์ฉ์๊ฐ ๋๊ตฌ์ธ์ง ํ์ธํ๋ ์ ์ฐจ์ ๋๋ค. ex) ๋ก๊ทธ์ธ ํผ์์ ์ฌ์ฉ์ ์์ด๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅ๋ฐ์ ๊ฒ์ฆํ๋ ๋ฐฉ์์ ๋๋ค.์ธ๊ฐ(Authorization) : ์ธ์ฆ๋ ์ฌ์ฉ์๊ฐ ์ด๋ค ๊ธฐ๋ฅ์ด๋ ์์์ ์ ๊ทผํ ์ ์๋์ง๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ์ฆ, ์ ์ ์ ๋ํ ๊ถํ์ ํ๋ฝํ๋ ๊ฒ์ ๋๋ค. ex) ๊ด๋ฆฌ์๋ง ์ ๊ทผ ํ ์ ์๋ ํ์ด์ง ์ค์ ๋ฑ์ด ๊ฐ๋ฅํฉ๋๋ค.์ธ์ ๋ฐ ํ ํฐ ๊ด๋ฆฌ : ์ธ์ ๊ธฐ.. [WEB] HttpServletRequest / ServletRequest HttpServletRequest์ ServletRequest๋ ๋ ๋ค ์๋ธ๋ฆฟ์ด ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ์์ฒญ์ ๋ฐ์ ๋ ์ด๋ฅผ ํํํ๋ ์ธํฐํ์ด์ค์ด๋ค. 1. ServletRequest์ธํฐํ์ด์ค: ServletRequest๋ ๋ชจ๋ ์ข ๋ฅ์ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์๋๋ก ์ค๊ณ๋ ์ผ๋ฐ์ ์ธ ์ธํฐํ์ด์ค์ ๋๋ค.ํ๋กํ ์ฝ์ ๋ ๋ฆฝ์ : HTTP๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ํ๋กํ ์ฝ(Gopher, FTP ๋ฑ)๋ ์ฒ๋ฆฌํ ์ ์๋๋ก ์ผ๋ฐ์ ์ธ ์์ฒญ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.๋ฉ์๋ ๊ธฐ๋ฅ: ์์ฒญ์ ํฌํจ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฑฐ๋(ํ๋ผ๋ฏธํฐ ๋ฑ), ์์ฒญ ์์ฑ์ ์ ๊ทผํ๋ ๊ธฐ๋ณธ์ ์ธ ๋ฉ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค.์ฃผ ์ฌ์ฉ์ฒ: ์น ์๋ฒ๊ฐ ์ ๊ณตํ๋ ๋ชจ๋ ์ข ๋ฅ์ ์๋ธ๋ฆฟ์ ์ํ ์์ฒญ์ ํํํ ๋ ์ฌ์ฉ๋ฉ๋๋ค. HTTP์ ํนํ๋์ง ์์ ๋ถ๋ถ์ด๊ธฐ ๋๋ฌธ์ ์ง์ ์ฌ์ฉํ๊ธฐ๋ณด๋ค๋ ์์ ์ธํฐํ์ด์ค์ธ HttpServl.. [Spring boot] h2 ์ฐ๊ฒฐํ๊ธฐ spring boot ํ๋ก์ ํธ์ h2 ์ฐ๊ฒฐ ํด๋ด ์๋ค. 1. https://www.h2database.com/html/main.html ํด๋น ์ฌ์ดํธ์์ h2 ๋ฅผ ๋ค์ด๋ฐ์ ์์ถ์ ํ์ด์ค๋๋ค. 2. ์์ถ์ ํผ ํด๋์์ h2/bin์ ์ ๊ทผcd study/h2/bin 3. ๋ง์ฝ ์คํ์ด ๋์ง ์์ ์ chmod 755 h2.sh ๋ก ๊ถํ ๋ถ์ฌ 4. h2๋ฅผ ์คํํด์ค๋๋ค../h2.sh 5. ์คํ์ด ๋์์ผ๋ฉด http://172.18.41.167:8082/ ์ ๋ค์ด๊ฐ h2์ ์ ๊ทผํด์ค๋๋ค. 6. ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ์ผ์ ์์ฑํ๊ธฐ ์ํด JDBC URL์ jdbc:h2:~/jpa ์ ์ ๋ ฅํด์ค๋๋ค. 7. ์ฐ๊ฒฐ์ ๋๊ณ jdbc:h2:tcp://localhost/~/jpa ๋ก URL ๋ณ๊ฒฝ ํ ์ฌ์ ์ ํด์ค๋๋ค. 8. spring boot.. [Kotlin] ์ฝํ๋ฆฐ ๊ธฐ์ด ์ฝํ๋ฆฐ์ ํ์ ์ ์ธ์ ์๋ตํด๋ ๋๊ณ , ๋ณ๊ฒฝ ๊ฐ๋ฅํ ๋ฐ์ดํฐ๋ณด๋ค ๋ณ๊ฒฝํ ์ ์์ ๋ถ๋ณ ๋ฐ์ดํฐ ์ฌ์ฉ์ ์ฅ๋ คํ๋ค. ๊ฐ๋จํ ์ฝํ๋ฆฐ์ ํน์ง์ ์์๋ณด์. fun main(args: Array){ println("Hello world!") } ํจ์๋ฅผ ์ ์ธํ ๋ fun ํค์๋๋ฅผ ์ฌ์ฉํ๋ค. ํ๋ผ๋ฏธํฐ ์ด๋ฆ ๋ค์ ๊ทธ ํ๋ผ๋ฏธํฐ์ ํ์ ์ ์ด๋ค. ํจ์๋ฅผ ์ต์์ ์์ค์ ์ ์ํ ์ ์๋ค. ์๋ฐ์ ๋ฌ๋ฆฌ ๊ผญ ํด๋์ค ์์ ํจ์๋ฅผ ๋ฃ์ด์ผ ํ ํ์๊ฐ ์๋ค. ๋ฐฐ์ด๋ ์ผ๋ฐ์ ์ธ ํด๋์ค์ ๋ง์ฐฌ๊ฐ์ง๋ค. ์ฝํ๋ฆฐ์๋ ์๋ฐ์ ๋ฌ๋ฆฌ ๋ฐฐ์ด ์ฒ๋ฆฌ๋ฅผ ์ํ ๋ฌธ๋ฒ์ด ๋ฐ๋ก ์กด์ฌํ์ง ์๋๋ค. cf) ์ฝํ๋ฆฐ์์๋ ๋ฐฐ์ด๋ ์ผ๋ฐ์ ์ธ ํด๋์ค์ ์ ์ฌํ ๋ฐฉ์์ผ๋ก ๋ค๋ฃจ์ด์ง๋ค. ์ฝํ๋ฆฐ์์ ๋ฐฐ์ด์ Array ํด๋์ค์ ์ธ์คํด์ค๋ก ํํ๋๋ฉฐ, ํน๋ณํ ํค์๋ ์์ด๋ ๋ฐฐ์ด์ ์์ฑํ๊ณ ์ฌ์ฉํ ์ .. [Docker] ๋์ปค์ ์ ์์ ๊ธฐ๋ณธ ๋ช ๋ น์ด ๋์ปค๋ ์ปจํ ์ด๋ ๊ธฐ๋ฐ์ ์คํ์์ค ๊ฐ์ํ ํ๋ซํผ์ด๋ค. ๋ค๋ฅธ ๋๊ตฌ์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ด๋ค ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ง๋ค์ด์ก๊ณ ๊ทธ ๋ฐฉ๋ฒ์ด ๋ง์ ์ฌ๋๋ค์๊ฒ ์ธ๊ธฐ๋ฅผ ๋๋ฉด์ ๋๋ฆฌ ์ฌ์ฉ๋์๋ค. ๋์ปค๊ฐ ๋ฑ์ฅํ๊ณ ์๋ฒ๊ด๋ฆฌ/๊ฐ๋ฐ ๋ฐฉ์์ด ์ปจํ ์ด๋ ๋ฐฉ์์ผ๋ก ์์ ํ ๋ฐ๋๊ฒ ๋๋ค. ๋์ปค๊ฐ ๋ฑ์ฅํ๊ณ ๋์ ์ด๋ ํ ํ๋ก๊ทธ๋จ๋ ์ปจํ ์ด๋๋ก ๋ง๋ค ์ ์๊ณ ์ด๋์๋ ์ปจํ ์ด๋๋ฅผ ์คํํ ์ ์๋ค. ๊ทธ๋ผ ๋์ปค๋ ๊ฐ์๋จธ์ ๊ฐ์๊ฑฐ์ผ๊น? ๋์ปค๋ ๊ฐ์๋จธ์ ์ฒ๋ผ ๋ ๋ฆฝ์ ์ผ๋ก ์คํ๋์ง๋ง ๊ฐ์๋จธ์ ๋ณด๋ค ๋น ๋ฅด๊ณ ์ฝ๊ณ ํจ์จ์ ์ด๋ค. ๋์ปค์ ํน์ง ํ์ฅ์ฑ/์ด์์ฑ - ๋์ปค๊ฐ ์ค์น๋์ด ์๋ค๋ฉด ์ด๋์๋ ์ปจํ ์ด๋๋ฅผ ์คํํ ์ ์์ - ํน์ ํ์ฌ๋ ์๋น์ค์ ์ข ์์ ์ด์ง ์์ - ์ฝ๊ฒ ๊ฐ๋ฐ์๋ฒ๋ฅผ ๋ง๋ค ์ ์๊ณ ํ ์คํธ์๋ฒ ์์ฑ๋ ๊ฐํธํจ ํ์ค์ฑ - ๋์ปค๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ ruby, nodejs.. [JAVA] ํ๋ก๊ทธ๋๋จธ์ค - ๊ธฐ์ด๋ฌธ์ Day11 https://school.programmers.co.kr/learn/challenges/training?order=acceptance_desc&languages=java ์ฝ๋ฉ ๊ธฐ์ด ํธ๋ ์ด๋ | ํ๋ก๊ทธ๋๋จธ์ค ์ค์ฟจ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ฒ์ ์ ํ๊ฑฐ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์ต์ํด์ง๊ณ ์ถ๋ค๋ฉด? ์ฝ๋ฉ ์ญ๋์ ํํํ๊ฒ ๊ธธ๋ฌ์ฃผ๋ ์ฝ๋ฉ ๊ธฐ์ด ํธ๋ ์ด๋์ผ๋ก ์ฐจ๊ทผ์ฐจ๊ทผ ์ฝ๋ฉ์ ๋ํ ๊ธฐ์ด ๊ฐ๊ฐ์ ๊ธธ๋ฌ ๋ณด์ธ์. school.programmers.co.kr Day 11 - ๋ฆฌ์คํธ(๋ฐฐ์ด) ๋ฌธ์ ๊ฐ์ ์ธ๊ธฐ class Solution { public int[] solution(String my_string) { int[] answer = new int[52]; for(int i=0;i ์ด์ 1 2 3 4 ยทยทยท 51 ๋ค์