๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ191 ์ด์ 1 2 3 4 5 ยทยทยท 28 ๋ค์ [KakaoPay] ์นด์นด์คํ์ด ๋จ๊ฑด ๊ฒฐ์ ์ปจํธ๋กค๋ฌ ์์ ์๋ด๊ธ ๊ฒฐ์ ํ๋ฆ์ ๋ณด๊ธฐ ์ํด debug ๋ชจ๋์ ๋ก๊ทธ ์ถ๋ ฅ์ด ๋ง์ต๋๋ค ๊ตฌํ ์ด๊ธฐ์ ์ฝ๋๋ผ ๋ถ์กฑํ ๋ถ๋ถ์ด ์์ ์ ์์ต๋๋ค. ์ํดํด์ฃผ์ธ์! ํ๋ฆ์ ์ดํดํ๊ธฐ ์ํด ๋ฉ์๋ ์์์ ๋ชจ๋ ์ฒ๋ฆฌ๋ฅผ ์ง์ ํ๋๋ก ์ฝ๋๋ฅผ ๋จ์ํํจ ์นด์นด์คํ์ด ๊ฒฐ์ ์ค๋น ์์ฒญ ์ฒ๋ฆฌ๋ฅผ ์ํ REST ์ปจํธ๋กค๋ฌ ๋ฉ์๋ ๊ตฌํ @RestController public class KakaoPayController @PostMapping("/api/pay/kakaopay") public ResponseEntity processKakaoPayRequest(@RequestBody OrderInfoDTO orderInfoDTO) @Transactional @PostMapping("/api/pay/kakaopay") public ResponseEntity p.. 2024. 3. 29. [KakaoPay] ์นด์นด์คํ์ด ๋จ๊ฑด ๊ฒฐ์ ๊ณผ์ ์ค ๊ฒช์ ์ค๋ฅ ๋ชจ์ ์ค๋ฅ์ ์์ธ๋ค (๊ตฌ) ์นด์นด์คํ์ด API ์์ 2024์ ์๋ก ๋ฐ๋๋ฉด์ ํ์์์ด์ง ํ๋๊ฐ ๋๋ฌธ์ Jackson ๋ชจ๋ url ์ค์ key๊ฐ์ dev์ฉ์ผ๋ก ์์จ์ ํ๋ ๋ถ์ผ์น ์ธ์ฆ ํค ๋ณ๊ฒฝ๋จ (๊ตฌ) headers.set("Authorization", "KakaoAK " + kakaoPayConfig.getSecretKeyDev()); (์ ) headers.set("Authorization", "SECRET_KEY " + kakaoPayConfig.getSecretKeyDev()); ์นด์นด์ค๊ฐ ์ ๊ณตํ๋ ๊ฒฐ์ ์ค๋ฅ์ฝ๋ ์ ๋ฆฌ ์์ ํ์ผ ๋ด๊ฐ ๊ฒช์ ์ค๋ฅ ๋ฉ์ธ์ง ์ ๋ฆฌ ์ค๋ฅ ๋ฉ์ธ์ง Create breakpoint ์์ธ (์ถ์ธก) ํด๊ฒฐ๋ฐฉ๋ฒ org.springframework.web.client.HttpClientErrorExc.. 2024. 3. 29. [KakaoPay] ์นด์นด์คํ์ด ๋จ๊ฑด ๊ฒฐ์ ๊ธฐ๋ฅ ๊ตฌํ ๋ฐฉ๋ฒ (2024 ์ ๊ท API ๋ฒ์ ) ์ฌ์ ์ค๋น ์ ํ๋ฆฌ์ผ์ด์ ๋ฑ๋ก https://developers.kakaopay.com/applications ์นด์นด์คํ์ด | ๊ฐ๋ฐ์์ผํฐ ์๋ก์ด ๊ธฐํ์ ๊ฐ์น๋ฅผ ํจ๊ป ๋ง๋ค์ด๋ด์ developers.kakaopay.com ํค ๋ฐ๊ธ๋ฐ๊ธฐ ๊ด๋ จ ๋ฌธ์ ํฌ๋ผ https://developers.kakaopay.com/forum/ ํฌ๋ผ ์นด์นด์คํ์ด ๊ฐ๋ฐ์์ผํฐ ์ด์ฉ ๊ด๋ จ ์ง๋ฌธ ๋ฐ ๋ต๋ณ์ ๊ณต์ ํ๋ ์ปค๋ฎค๋ํฐ์ ๋๋ค. developers.kakaopay.com 2024 ์นด์นด์คํ์ด API ์ธ์ฆ์ ์ฌ์ฉํ ๊ฐ ์ธ์ฆ ์คํค๋ง (๊ตฌ) "KakaoAK " -> (์ ) " SECRET_KEY " Secret Key๊ฐ์ ํ ์คํธ์ ๊ฒฝ์ฐ Secret Key(dev) ์ฌ์ฉํ๊ธฐ ์นด์นด์คํ์ด ๊ฒฐ์ ๊ตฌํ ๊ณผ์ OrderInfoDTO : ์ฌ์ฉ์ ์ฃผ๋ฌธ ์ ๋ณด Kakao.. 2024. 3. 29. [CICD] ๊ธฐ์ด ์๋๋ฆฌ์ค ๊นํ ์ก์ ๊นํ์ก์ ์ฝ๋ ์ค๋ฅ ๊ฒ์ฌ ์ฌ์ดํธ https://rhysd.github.io/actionlint/ actionlint playground Loading WebAssembly binary... Yay! No error was detected. rhysd.github.io ๊ฐ์ ์๋๋ฆฌ์ค 3 ํ์ฌ ํ๋ก์ ํธ์ ํฌ์ํ ์ ์๋ ์๊ฐ์ ๊ณ ๋ คํด์ ์ผ๋จ ๊ฐ๋จํ CICD๋ฅผ ์ ์ฉํด๋ณด๊ธฐ ์ํด ์๋๋ฆฌ์ค 3์ ์ ํํจ ๊ฐ์ ๊ฐ๋ฐํ๊ฒฝ, QA, ์ด์ํ๊ฒฝ์ CICD ๊ตฌ์ฑ branch dev : ๊ฐ๋ฐํ๊ฒฝ master : ์ด์ํ๊ฒฝ QA ํ ์คํธ๋ฅผ ํตํด ์ํ๋ฅด์จ์ด ๊ฒฐํจ ์๋ณํ๊ธฐ ์ฝ๋์ ํ์ง๊ณผ ๊ธฐ๋ฅ์ด ์ฌ๋ฐ๋ฅด๊ฒ ๋์ํ๋์ง ๊ฒ์ฆํจ ๋ฐฐํฌ์์ 1. ๊ฐ๋ฐ ํ๊ฒฝ (dev branch) 2. QA ํ๊ฒฝ 3. ์ด์ ํ๊ฒฝ (master branch) ๊ธฐ์กด ์๊ตฌ.. 2024. 3. 23. [CICD] ํค์๋ ๊ธฐ๋ฐ ์ด์ ์๋ฆผ ์๋ํ 3. ๊ฐ๋จํ ์ํฌํ๋ก์ฐ ๋ง๋ค๊ธฐ ํค์๋ ๊ธฐ๋ฐ ์ด์ ์๋ฆผ ์๋ํ ๋ง๋ค๊ธฐ ์ด์๊ฐ ์์ฑ๋ ๋ ์คํ issue event types: [opened] ํน์ ํค์๋๊ฐ ํฌํจ๋๋ฉด ์ฌ๋์ผ๋ก ๊ณต์ ํ๊ธฐ if critical -> ์ฌ๋์ critical-issue ์ฑ๋๋ก ๊ณต์ if cormal -> ์ฌ๋์ normal-issue ์ฑ๋๋ก ๊ณต์ ํค์๋๋ ๋ณ๋์ฌํญ์ด ์๊ธธ ์ ์์ ๋ณต์ก์ฑ์ ์ค์ด๋ ๋ฐฉ๋ฒ ํค์๋ ๊ด๋ฆฌํ๊ธฐ (X) ๊นํ์ก์ ์ํฌํ๋ก์ฐ์์ ๊ด๋ฆฌ (O) ์ธ๋ถ์์ ํค์๋ ๊ด๋ฆฌ ex) keyword.txt slack step ์ฌ์ฉ ๊ตฌ์กฐ ํค์๋๋งํผ ์ฌ์ฉํ๋ฉด ๊ด๋ฆฌ๊ฐ ์ด๋ ค์ slack step 1๊ฐ๋ก ์ฌ์ฉํ๊ธฐ ๋์ผํ ์ฌ๋ ์นํ ์ด๋ฆ ์ฌ์ฉํ๊ธฐ ๋์ผํ ์ํฌ๋ฆฟ ์ด๋ฆ ์ฌ์ฉํ๊ธฐ ${{ secret.SLACK_WEBHOOK }} ๊ตฌ์ฑ job 2.. 2024. 3. 23. [CICD] ๊นํ ๋ ํฌ ์์ฑ ์๋ํ 3. ๊ฐ๋จํ ์ํฌํ๋ก์ฐ ๋ง๋ค๊ธฐ ๊นํ ๋ ํฌ ์์ฑ ์๋ํ name: create-repo on: workflow_dispatch: inputs: prefix: description: 'set repo prefix' required: true default: 'service' type: choice options: - example - service name: description: 'set repo name' required: true default: 'github-actions' type: string jobs: create-repo-automation: runs-on: ubuntu-latest steps: - name: gh auth login run: | echo ${{ secrets.PERSONAL_.. 2024. 3. 23. [CICD] Github Actions์ ๋ค์ํ ๊ธฐ๋ฅ 2. Github Actions์ ๋ค์ํ ๊ธฐ๋ฅ 1. checkout github repository๋ฅผ ๊ฐ์ ธ์์ ์์ ์ ์ํํ ์ ์๋๋ก ํ๋ ์ก์ ๋ง์ผํ๋ ์ด์ค ๊ณต์ ์ก์ ํ์ํ ํ ์คํธ๋ ๋น๋ ์์ ๋ฑ์ ์ํํ ์ ์์ ๋ ํฌ์งํ ๋ฆฌ ๋ด์ฉ์ CICD ์ํฌํ๋ก์ฐ์์ ์ฌ์ฉํ ์ ์์ uses ํค์๋๋ก ์ก์ ์ ๋ถ๋ฌ์ฌ ์ ์์ name: checkout on: workflow_dispatch jobs: no-checkout: runs-on: ubuntu-latest steps: - name: check file list run: cat README.md checkout: runs-on: ubuntu-latest steps: - name: use checkout action uses: actions/checkout@v.. 2024. 3. 22. ์ด์ 1 2 3 4 5 ยทยทยท 28 ๋ค์