/Iamhere

๐Ÿ˜‰ ๊ตญ๋‚ด ๊ฑฐ์ฃผ ์™ธ๊ตญ์ธ ๋งค์นญ ์„œ๋น„์Šค "I-am-here" ๐Ÿ˜‰

Primary LanguageVisual Basic 6.0

๐Ÿ˜Ž I am here ๐Ÿ˜Ž

์•„์ด๋””์–ด ๊ตฌ์ƒ

๊ตญ๋‚ด ๊ฑฐ์ฃผ ์™ธ๊ตญ์ธ์„ ๋งค์นญํ•˜์—ฌ ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ํ˜•์„ฑํ•˜๋Š” ์„œ๋น„์Šค

ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

ํ”„๋กœ์ ํŠธ๋ช… : Iamhere

์ฃผ์š” ๊ธฐ๋Šฅ

  • ํšŒ์› ๊ด€๋ฆฌ ์„œ๋น„์Šค : Security ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ, OAuth 2.0 (๊ตฌ๊ธ€, ํŽ˜์ด์Šค๋ถ, ํŠธ์œ„ํ„ฐ, ์นด์นด์˜ค), ๋งˆ์ดํŽ˜์ด์ง€
  • ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ฒŒ์‹œํŒ ์„œ๋น„์Šค : ๊ฒŒ์‹œ๊ธ€ ๋ฐ ๋Œ“๊ธ€ CRUD, ์กฐํšŒ์ˆ˜, ํŽ˜์ด์ง• ๋ฐ ๊ฒ€์ƒ‰ ์ฒ˜๋ฆฌ
  • ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ์„œ๋น„์Šค : ์ฑ„ํŒ…๋ฐฉ ์ž…์žฅ ๋ฐ ํ‡ด์žฅ, ์ฑ„ํŒ…๋ฐฉ ๋ฆฌ์ŠคํŠธ ์กฐํšŒ, ์•Œ๋ฆผ, ์‹ ๊ณ  ๊ธฐ๋Šฅ

์‚ฌ์šฉ ๊ธฐ์ˆ 

๋ฐฑ์—”๋“œ

  • ๊ฐœ๋ฐœ ์–ธ์–ด : Java 17
  • ๊ฐœ๋ฐœ ํ™˜๊ฒฝ : Spring Boot 3.0.4, Gradle, Junit5 Spring Security, OAuth, JPA, Lombok, Kafka
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค : MySQL, MongoDB
  • ํ˜•์ƒ ๊ด€๋ฆฌ ํˆด : Github
  • ์•„ํ‚คํ…์ณ: MSA
  • ์ธํ”„๋ผ : AWS EC2, AWS Route53, Docker, Docker Hub, Jenkins

ํ”„๋ก ํŠธ์—”๋“œ

  • ๊ฐœ๋ฐœ ์–ธ์–ด : HTML/CSS3, JavaScript, Thymeleaf, Bootstrap

ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ ๋ฐ ์ผ์ • ์‚ฐ์ •

ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ

  • ํด๋ฆฐ ์ฝ”๋“œ์™€ ํด๋ฆฐ ์•„ํ‚คํ…์ณ์— ๊ณ ๋ฏผํ•˜๋ฉด์„œ ๊ฐœ๋ฐœํ•˜๊ธฐ
  • ๊ฐœ๋ฐœ ๊ณผ์ •์„ ๊ผผ๊ผผํžˆ ๊ธฐ๋กํ•˜๊ธฐ
  • JenKins๋ฅผ ์ด์šฉํ•œ ์ž๋™ํ™” ๋ฐฐํฌ ๊ด€๋ฆฌ
  • DevOps ์„œ๋น„์Šค ํ™˜๊ฒฝ ๊ด€๋ฆฌ : ๋ฒ„์ „ ๊ด€๋ฆฌ, ์„ฑ๋Šฅ ๋ชจ๋‹ˆํ„ฐ๋ง
  • RESTful API๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๊ณ ๋ฏผํ•˜๊ณ  ๊ฐœ์„ ํ•˜๊ธฐ
  • MSA, Terraform, ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๊ฒฝํ—˜

์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„

  • ํšŒ์› ๊ด€๋ฆฌ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค

    (1) ํšŒ์› ๊ฐ€์ž…

    • ์ž…๋ ฅ๊ฐ’ (์œ ํšจ์„ฑ ๊ฒ€์‚ฌ)

      • ์•„์ด๋”” : 4 ~ 12์ž์˜ ์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž์™€ ์ˆซ์ž๋กœ๋งŒ ์ž…๋ ฅ (์ค‘๋ณต ๋ถˆ๊ฐ€, ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€)
      • ๋น„๋ฐ€๋ฒˆํ˜ธ : 4 ~ 12์ž์˜ ์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž์™€ ์ˆซ์ž๋กœ๋งŒ ์ž…๋ ฅ, ๋น„๋ฐ€๋ฒˆํ˜ธ ํ™•์ธ
      • ์ด๋ฉ”์ผ : ์ด๋ฉ”์ผ ํ˜•์‹ ํŒจํ„ด ์ ์šฉํ•ด ์ž…๋ ฅ๊ฐ’ ํ™•์ธ, ์ด๋ฉ”์ผ ์ธ์ฆ๋ฒˆํ˜ธ ํ™•์ธ (์ค‘๋ณต ๋ถˆ๊ฐ€)
      • ๋‚ด/์™ธ๊ตญ์ธ : ์™ธ๊ตญ์ธ์— ์ฒดํฌ ์‹œ ๊ตญ์ ์„ ์ž…๋ ฅํ•˜๋„๋ก ํ•œ๋‹ค.
      • ์—ฌ์„ฑ/๋‚จ์„ฑ
      • ์ƒ๋…„์›”์ผ : 31/08/2001 ๊ณผ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ์ž…๋ ฅ ๋ฐ›๋Š”๋‹ค.
      • ๊ฑฐ์ฃผ ์ง€์—ญ : ์ฃผ์†Œ API๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์šฐํŽธ๋ฒˆํ˜ธ ๋ฐ ์ฃผ์†Œ ์ฐพ๊ธฐ ๊ธฐ๋Šฅ
      • ํ•œ ์ค„ ์†Œ๊ฐœ
    • ์•„์ด๋””/๋น„๋ฐ€๋ฒˆํ˜ธ ์ฐพ๊ธฐ

      • ์•„์ด๋”” ์ฐพ๊ธฐ : ์ด๋ฉ”์ผ ์ธ์ฆ โ†’ ์•„์ด๋””์˜ ์ผ๋ถ€๋ฅผ ๋…ธ์ถœํ•จ.
      • ๋น„๋ฐ€๋ฒˆํ˜ธ ์ฐพ๊ธฐ : ์ด๋ฉ”์ผ ์ธ์ฆ โ†’ ์ž„์‹œ ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ฐœ๊ธ‰

    (2) ๋กœ๊ทธ์ธ

    • ๋กœ๊ทธ์ธ์„ ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋ณผ ์ˆ˜ ์žˆ๋Š” ํŽ˜์ด์ง€
      • ๋ฉ”์ธ ํŽ˜์ด์ง€
      • ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ฒŒ์‹œ๊ธ€ ๋ชฉ๋ก ์กฐํšŒ ํŽ˜์ด์ง€
      • ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ฒŒ์‹œ๊ธ€ ๊ฒ€์ƒ‰ ํŽ˜์ด์ง€
      • ์ฑ„ํŒ… ๋Œ€์ƒ์ž ๋ชฉ๋ก ์กฐํšŒ ํŽ˜์ด์ง€
      • ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€/๋กœ๊ทธ์ธ ํŽ˜์ด์ง€
      • ๋กœ๊ทธ์ธ์„ ํ•˜์ง€ ์•Š์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ด์™ธ ํŽ˜์ด์ง€์— ์ ‘๊ทผํ•˜๋ ค ํ•  ๋•Œ ๊ฒฝ๊ณ ์ฐฝ์„ ๋„์šฐ๊ณ  ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๋กœ ์ด๋™
    • ๋กœ๊ทธ์ธ ๊ฒ€์‚ฌ
      • ์•„์ด๋”” ํ˜น์€ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด โ€œ์•„์ด๋”” ๋˜๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹คโ€ ๊ฒฝ๊ณ ์ฐฝ ๋„์šฐ๊ธฐ
      • ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์ผ์น˜ํ•˜๋ฉด ๋ฉ”์ธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๊ธฐ
      • ๋กœ๊ทธ์ธ ์ƒํƒœ ์œ ์ง€ ๊ธฐ๋Šฅ

    (3) ์†Œ์…œ ๋กœ๊ทธ์ธ

    • ๊ตฌ๊ธ€, ํŽ˜์ด์Šค๋ถ, ํŠธ์œ„ํ„ฐ, ๋„ค์ด๋ฒ„, ์นด์นด์˜ค ์†Œ์…œ ๋กœ๊ทธ์ธ ์—ฐ๋™ ๊ธฐ๋Šฅ ์ œ๊ณต
    • ์ธ์ฆ ๋ฐ ์•ฝ๊ด€๋™์˜์™€ ํ•„์ˆ˜ ์ œ๊ณต ํ•ญ๋ชฉ (์ด๋ฉ”์ผ, ์„ฑ๋ณ„, ์ƒ๋…„์›”์ผ)๊ณผ ํšŒ์› ์ •๋ณด(๋‚ด/์™ธ๊ตญ์ธ, ๊ฑฐ์ฃผ ์ง€์—ญ) ์ž…๋ ฅ์œผ๋กœ ํšŒ์›๊ฐ€์ž… ์™„๋ฃŒ
    • ์ด๋ฏธ ๊ฐ€์ž…๋˜์–ด์žˆ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์†Œ์…œ ๋กœ๊ทธ์ธ์„ ์‹œ๋„ํ•˜๋Š” ๊ฒฝ์šฐ, ๋‘ ๊ณ„์ •์ด ์ž๋™ ์—ฐ๋™๋œ๋‹ค.

    (4) ๋งˆ์ดํŽ˜์ด์ง€

    • ํšŒ์› ์ •๋ณด ์ˆ˜์ •
      • ์ด๋ฉ”์ผ ์ธ์ฆ๋ฒˆํ˜ธ ํ™•์ธ ํ›„ ์ด๋ฉ”์ผ ์ˆ˜์ • ๊ฐ€๋Šฅ (์ค‘๋ณต ๋ถˆ๊ฐ€)
      • ๋น„๋ฐ€ ๋ฒˆํ˜ธ ์ˆ˜์ • ๊ฐ€๋Šฅ (๋น„๋ฐ€๋ฒˆํ˜ธ ํ™•์ธ ์ ˆ์ฐจ)
      • ๊ฑฐ์ฃผ ์ง€์—ญ ์ˆ˜์ • ๊ฐ€๋Šฅ
      • ๊ตญ์  ์ˆ˜์ • ๊ฐ€๋Šฅ
      • ํ•œ ์ค„ ์†Œ๊ฐœ ์ˆ˜์ • ๊ฐ€๋Šฅ
      • ํ•œ ์ค„ ์†Œ๊ฐœ ์ œ์™ธ ๋นˆ์นธ์ด ์žˆ์œผ๋ฉด ์ˆ˜์ •์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์ˆ˜์ • ์™„๋ฃŒ ์‹œ ์ˆ˜์ • ๋‚ ์งœ๋ฅผ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.
    • ๋‚ด๊ฐ€ ์“ด ๊ธ€, ๋Œ“๊ธ€ ์กฐํšŒ
      • ๊ฒŒ์‹œ๊ธ€ ์กฐํšŒ : ๋‚ด๊ฐ€ ์“ด ๊ธ€์˜ ๋ชฉ๋ก ์กฐํšŒ ๋ฐ ์ƒ์„ธ ์กฐํšŒ (๋Œ“๊ธ€ ํฌํ•จ)
      • ๋Œ“๊ธ€ ์กฐํšŒ : ๋‚ด๊ฐ€ ์“ด ๋Œ“๊ธ€์˜ ๋ชฉ๋ก ์กฐํšŒ, ๋Œ“๊ธ€์„ ์“ด ๊ฒŒ์‹œ๊ธ€์˜ ์ƒ์„ธ ์กฐํšŒ (๋Œ“๊ธ€ ํฌํ•จ)

์™€์ด์–ดํ”„๋ ˆ์ž„

  • (1) ํšŒ์› ๊ด€๋ฆฌ ํŽ˜์ด์ง€

    • ํšŒ์›๊ฐ€์ž…
    image
    • ๋กœ๊ทธ์ธ

image

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„

  • (1) ํšŒ์› ๊ด€๋ฆฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„

    ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (MariaDB) ์‚ฌ์šฉ

    USER

    image

API ์„ค๊ณ„

  • (1) ํšŒ์› ๊ด€๋ฆฌ API ์„ค๊ณ„

    USER

    image