๋ค๋ฃจ๋ ๊ฐ๋ฐ ์ธ์ด : JAVA, PHP, Javascript
๊ด์ฌ๋ถ์ผ : Maven, Gradle, Spring Framework(Spring Boot), JPA, MyBatis, Node.js, React , Rest API, GraphQL
Posts
Q&A
๋ก์ปฌํ๊ฒฝ์์ ๊ฐ๋ฐ ํ ์ด์ํ๊ฒฝ์ผ๋ก ๋ฐฐํฌ ์ ๋ฐ์ํ๋ ์ด์์ ๋ํ ๋ฌธ์์ ๋๋ค.
๋ง์ฝ, Arrow Function์ ์ฌ์ฉํ์ง ๋ชปํ๋ ํ๊ฒฝ์์๋ ๋์ํ ์ ์๋๋ก ์์ค์ฝ๋ ๋ณ๊ฒฝ์ด ํ์ํ๋ค๋ฉด ์ ์ ๊ฒฝ์ฐ์๋ ํด๋น ๋ฌธ๋ฒ์ ์ฌ์ฉํ๊ณ ์๋ ๋ชจ๋ ์์ค์ฝ๋์ ๋ณ๊ฒฝ์ด ํ์ํ ์ํฉ์ด ๋ ๊ฒ ๊ฐ์ต๋๋ค!
- 1
- 2
- 504
Q&A
password_verify(string, hash) ํจ์๊ฐ ๋งค๋ฒ false๊ฐ ๋์ค๋ ๊ฒ์ ๋ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ๊ถ๊ธํฉ๋๋ค.
์๋ต์ ๋๋ค. namespace App\Services\AuthService::login ๋ฉ์๋์ return ๋ฐฉ์์ ์๋ชป ์ค์ ํ๋ ๋ฌธ์ ์์ต๋๋ค. ๋ช์ผ์ ๊ณ ๋ฏผํ๋ค๊ฐ ์ด์ ์ผ ์ฐพ๊ฒ๋์๋ค์.(์์ฒญ๋ ์ฝ์ง...) [์์ ์ ] (์ฌ์ง) [์์ ํ] (์ฌ์ง)
- 1
- 1
- 310
Q&A
Composer ์ค์ ํ ์์ฑ๋๋ .vendor ๋ฐ composer.json, composer.lock.json์ ๋ํ ์ง๋ฌธ์ ๋๋ค.
'๋๋ง์ ํ๋ ์์ํฌ๋ฅผ ํจํค์ง๋ก ๋ง๋ค๊ธฐ (Package)' ๊ฐ์์์ ํด๋ต์ ์ป์ ์ ์์์ต๋๋ค. 'vendor' ํด๋๋ .gitignore ํ์ผ์ ํตํด ์ ์ธ ์ํค๋๊ฒ ๋ง์๋ค์. ๊ฐ์ฌํฉ๋๋ค.
- 1
- 1
- 527
Q&A
ํด๋ผ์ด์ธํธ ์๋ฒ ๊ตฌ์กฐ ๊ฐ์ ํํธ์ ๋ํ ์ง๋ฌธ์ ๋๋ค.
ํด๋ฌ์ด์ธํธ ๋ฐ ์๋ก๊ฐ์ ํต์ ์ ์ฐจ์ ๋ํ ์ดํด์ ๋์์ด ๋ ๋ต๋ณ์ด์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค!(ํด๋น ๊ฐ์ ์ ๋ง ์ข์๊ฑฐ ๊ฐ์์.)
- 8
- 2
- 396
Q&A
PHP MySQLi ํธ๋์ญ์ ์ฒ๋ฆฌ์ ๋ํ ์ง๋ฌธ์ ๋๋ค.
์๋ฅผ ๋ค์ด, ์ผํ๋ชฐ ์น์ฌ์ดํธ์ ๊ฒฝ์ฐ A ๊ณ ๊ฐ์ด ์ํ์ ์ฃผ๋ฌธํ ๋ ์ฃผ๋ฌธ์ ๋ณด(์ฃผ๋ฌธ๋ฒํธ, ์ฃผ๋ฌธ์ ์ ๋ณด)์ ์ฃผ๋ฌธ์์ธ์ ๋ณด(์ฃผ๋ฌธ ์ํ๋ค์ ์ ๋ณด, ๊ฒฐ์ ์ ๋ณด)๊ฐ ๋ชจ๋ ์ ๋ ฅ๋ ๊ฒฝ์ฐ commit์ ์คํ์ํค๊ฒ ๋๋๋ฐ, (์ฒ๋ฆฌ ์๋๊ฐ ๋๋ฆฌ๋ค๋ ๊ฐ์ ํ์) ์ฃผ๋ฌธ์ ๋ณด Query๋ฅผ ์ ์์ ์ผ๋ก ์คํ๋๊ณ , ์ฃผ๋ฌธ์์ธ์ ๋ณด Query๋ฅผ ์คํํ๋ ์ค ์๋์น ์๊ฒ ๋ธ๋ผ์ฐ์ ธ๊ฐ ์ข ๋ฃ๊ฐ ๋์ด Error Catch๊ฐ ์๋๋ ์์ ์์ ๊ฐ์ ์๊ฐ์ B ๊ณ ๊ฐ์ ๋ชจ๋ ์์ ์ ์ฑ๊ณต์ ์ผ๋ก ์ฒ๋ฆฌ ํ์ ๋ A ๊ณ ๊ฐ์ ์ฃผ๋ฌธ์ ๋ณด๋ ์ด๋ฏธ ์คํ๋ Query์ด๊ธฐ ๋๋ฌธ์ DBMS ์คํ ์ฟผ๋ฆฌ ์์ ์ ์ฅ๊ณต๊ฐ(?)์ commit/rollback ๋๊ธฐ์ํ๋ก ๋จ์์์๊ฑฐ๋ผ ์๊ฐ์ด ๋์ด์ค์ B ๊ณ ๊ฐ์ผ๋ก ํ์ฌ๊ธ A ๊ณ ๊ฐ์ ์ฃผ๋ฌธ์ ๋ณด๊ฐ ์ ์ฅ์ด ๋๋์ง ๊ฒ์ฆ์ ์งํํ๋ฉด์ ๊ฐ๋ฐํด์ผ๊ฒ ์ต๋๋ค. ๊ณ ๋ คํด๋ณผ ์ฌํญ์ด ๋ง์ ๊ฒ ๊ฐ์ต๋๋ค! ์ธ๊ธํด ์ฃผ์ DBMS ACID ์์น์ ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ๋ฅผ ์ทจ๋ํ ๋ DBMS Part์์ ์ด๋ก ์ ์ผ๋ก๋ง ๋ฐฐ์ ๋ ๋ด์ฉ์ธ๋ฐ ์ด๋ ๊ฒ ์ค๋ฌด์์ ๋ค์ ํ๋ฒ ์๊ธฐ์ํค๊ฒ ๋๋ค๋, ๋ต๋ณ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
- 1
- 2
- 480
Q&A
proc_open() ํจ์ ์๋ฌ์ ๋ํ ์ง๋ฌธ์ ๋๋ค.
์๋ ค์ฃผ์ ๋ฐ๋ก ์คํ์ ์์ ํ์ฌ ์คํ์์ผ๋ณด์๋๋ ์ ์์ ์ผ๋ก ๋์ํฉ๋๋ค. ๊ฐ์ฌํฉ๋๋ค!
- 2
- 2
- 488
Q&A
MVC ํจํด์ ์ค๋ณต์ฝ๋์ ๋ํ ์ง๋ฌธ์ ๋๋ค.
์ ๋ง ์ข์ ๋ต๋ณ ๊ฐ์ฌ๋๋ฆฝ๋๋ค! ๋ค์ ์ค๋ฌด ํ๋ก์ ํธ๋ถํฐ๋ ๊ผญ ๋ง์ํด์ฃผ์ '๊ณตํตํ'๋ฅผ ๊ณ ๋ คํ์ฌ, ์ค๋ณต๋ ์ฝ๋๋ฅผ ์ต๋ํ ์ค์ด๋ ๋ฐฉ์์ผ๋ก ๊ฐ๋ฐ์ ํด์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์์ต๋๋ค. (๋ฌผ๋ก ํ์๋ค ๊ฐ์ ์ปค๋ฎค๋์ผ์ด์ ๋ฐ ํ์ ๋๊ตฌ๋ค์ ํ์ฉํด์ผ๊ฒ ์ง๋ง์!)
- 5
- 2
- 466
Q&A
Gradle์ ํ์ตํด ๋ณผ ์ ์๋ ๋ ํผ๋ฐ์ค ๋๋ ์์ ์ด ์๋์ง ๊ถ๊ธํฉ๋๋ค.
๊น์ํ ํ์ฅ๋, ryubato๋ ๋ต๋ณ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ^^
- 4
- 3
- 1K
Q&A
Spring AOP์ Spring MVC HandlerInterceptor์ ๋ํ ์ง๋ฌธ์ ๋๋ค.
๋จธ๋ฆฟ์์ ์๋ ๊ณ ๋ฏผ์ ๋์ด ํ๋ฆฐ ๊ฒ ๊ฐ์ต๋๋ค. ๋ต๋ณ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.^^
- 4
- 2
- 280
Q&A
"/oauth/token" URL์ ๋ํ ์์ฒญ ์ฒ๋ฆฌ๊ฐ ์๋์ผ๋ก ์ด๋ฃจ์ด์ง๋ ์ง์ ์ ๋ํ ํ์ธ์ฐจ ์ง๋ฌธ ๊ธ์ ๋จ๊น๋๋ค.
TEST ์ฝ๋, ์ธ์ฆ ์๋ฒ ์ค์ ํ์ผ(AuthServerConfig.class) ์์ cliend_id, client_secret์ ์ค์ ํ๋ ๋ถ๋ถ์ ๋ํ์ฌ ์ถ๊ฐ์ ์ธ ๊ถ๊ธ ์ฌํญ์ด ๋ฐ์ํ์ฌ ์ฌ๊ธฐ์ ๊ธ์ ๋จ๊น๋๋ค. ์๋ฅผ ๋ค์ด Naver ์์ด๋๋ก ๋ก๊ทธ์ธ ์๋น์ค๋ฅผ ์ฌ์ฉํ ๋ ์ ์ฐจ๋ฅผ ๋ณด๋ฉด, ๋ค์ด๋ฒ ๊ฐ๋ฐ์ ์ผํฐ ์ ์ > ๋ค์ด๋ฒ ์์ด๋๋ก ๋ก๊ทธ์ธ > ๋ค์ด๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์์ฑ ๋ฐ CLIENT_ID, CLIENT_SECRET ๋ฐ๊ธ > ์ดํ ์ถ๊ฐ์ ์ธ API ์ฌ์ฉ ์ค์ ๋ฑ๊ณผ ๊ฐ์ ์ ์ฐจ๋ก ๋ค์ด๋ฒ์์ ์ ๊ณตํ๋ API๋ฅผ ์ฌ์ฉํ ์๊ฐ ์์๋๋ฐ์.์ด๋ API๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ํ๋ ์ ์ (์ฌ์ฉ์)๋ง๋ค ๊ฐ๊ธฐ ๋ค๋ฅธ CLIENT_ID, CLIENT_SECRET๋ฅผ ๋ฐ๊ธ๋ฐ๋ ๊ฒ์ผ๋ก ์๊ณ ์์ต๋๋ค. ํ์ง๋ง ๊ฐ์ ๋ด์ฉ์์ ์ค์ ํ ์ด๊ฐ๋ค์ ์ ํ๋ฆฌ์ผ์ด์ ์์ฒด ๊ณ ์ ์ ์ธ ID, SECRET ๊ฐ์ ์๋ฏธํ๋์ง ์๋๋ฉด ์ฌ์ฉ์์๊ฒ ๋ฐ๊ธ๋๋ ID, SECRET์ธ์ง ๊ถ๊ธํฉ๋๋ค. ๋ง์ฝ ํ์์ธ ๊ฒฝ์ฐ ์ฌ์ฉ์๋ง๋ค ์ ํจํ CLIENT_ID, CLIENT_SECRET์ธ์ง ํ์ธํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ด๋ค์์ผ๋ก ๊ตฌํ์ ํด์ผํ๋์ง ๊ถ๊ธํฉ๋๋ค. ๊ธด ๊ธ ์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
- 1
- 2
- 398