/foorrng

Primary LanguageKotlin

πŸ‘‹ ν‘Έλ₯΄λ¦‰ πŸ‘‹

빅데이터λ₯Ό ν™œμš©ν•œ μœ„μΉ˜ μΆ”μ²œ μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•˜λŠ” μ•±


πŸ’š ν‘Έλ₯΄λ¦‰ μ†Œκ°œ 및 μ‹œμ—° μ˜μƒ


πŸ’š ν‘Έλ₯΄λ¦‰ μ„œλΉ„μŠ€ ν™”λ©΄


πŸ’š μ£Όμš” κΈ°λŠ₯

  • μ„œλΉ„μŠ€ μ„€λͺ… : 빅데이터λ₯Ό ν™œμš©ν•˜μ—¬, μœ λ™ 인ꡬ와 νŠΉμ • μŒμ‹μ„ μ„ ν˜Έν•˜λŠ” μ†ŒλΉ„μžκ°€ λ§Žμ€ μœ„μΉ˜λ₯Ό μΆ”μ²œν•˜λŠ” μ„œλΉ„μŠ€
  • μ£Όμš” κΈ°λŠ₯
    • 점주
      • ν‘Έλ“œνŠΈλŸ­ 등둝, ν‘Έλ“œνŠΈλŸ­ 정보 쑰회 및 μˆ˜μ • κ°€λŠ₯. ν•΄λ‹Ή ν‘Έλ“œνŠΈλŸ­μ˜ 리뷰 쑰회.
      • μž₯사할 μœ„μΉ˜ μ„ μ • 및 운영 관리 κΈ°λŠ₯ 제곡
      • ν‘Έλ“œνŠΈλŸ­μ„ μ΄μš©ν•  잠재적 μ†ŒλΉ„μžκ°€ 많이 μœ„μΉ˜ν•œ μž₯μ†Œλ₯Ό λ™λ‹¨μœ„λ‘œ μΆ”μ²œ
      • μΆ•μ œ 정보 및 ν‘Έλ“œνŠΈλŸ­ λͺ¨μ§‘ 곡고글을 쑰회
    • μ†ŒλΉ„μž
      • 였늘 μ„ ν˜Έν•˜λŠ” μŒμ‹μ„ 선택 -> 빅데이터에 ν™œμš©
      • ν‘Έλ“œνŠΈλŸ­ 정보 쑰회 κ°€λŠ₯, μ›ν•˜λŠ” ν‘Έλ“œνŠΈλŸ­ 찜, μ΄μš©ν•œ ν‘Έλ“œνŠΈλŸ­ 리뷰 μž‘μ„± κ°€λŠ₯
      • ν‘Έλ“œνŠΈλŸ­ 제보 κ°€λŠ₯
      • 제보된 ν‘Έλ“œνŠΈλŸ­ 잘λͺ»λœ 정보 μˆ˜μ • 및 μ‚­μ œ κ°€λŠ₯
      • ν‘Έλ“œνŠΈλŸ­ λͺ¨μ§‘ 곡고글을 μž‘μ„±ν•  수 있음

πŸ’š 개발 ν™˜κ²½

🌱 λ°±μ•€λ“œ

  • intellij
  • spring boot 3.2.1
  • spring-boot-jpa
  • spring security 6.1.3
  • java 17
  • MySQL 8.0.36
  • queryDSL 5.0.0

🌱 ν”„λ‘ νŠΈ
...

🌱 μ™ΈλΆ€ API

  • kakao νšŒμ›κ°€μž…/둜그인 API
  • μ‚¬μ—…μžλ²ˆν˜Έ 쑰회 API

🌱 Infra

  • Docker
  • Jenkins 2.426.2
  • Nginx 1.24.0
  • AWS EC2
  • AWS S3
  • RDS
  • Server 20.04.6 LTS (GNU/Linux 5.15.0-1051-aws x86_64)

πŸ’«μ„œλΉ„μŠ€ μ•„ν‚€ν…μ²˜

Alt text


πŸ’«CICD

ν¬νŒ… 메뉴얼


🎨 EC2 포트 정리

To Action From
22 ALLOW Anywhere
8989 ALLOW Anywhere
443 ALLOW Anywhere
8080/tcp ALLOW Anywhere
8081 ALLOW Anywhere
80 ALLOW Anywhere
9090 ALLOW Anywhere
5000 ALLOW Anywhere
50000 ALLOW Anywhere

πŸ’₯기술 특이점

πŸ’₯ 빅데이터

🍲 KNN μŒμ‹ λΆ„λ₯˜ν™”
Alt text
λΉ„μŠ·ν•œ μŒμ‹λΌλ¦¬ 같은 μŒμ‹μœΌλ‘œ λΆ„λ₯˜ν•˜μ—¬ 동넀에 Aλ₯Ό μ„ ν˜Έν•˜λŠ” μ†ŒλΉ„μžμ—κ²Œ A와 μœ μ‚¬ν•œ A,B,Cλ₯Ό νŒλ§€ν•˜λŠ” μ μ£Όμ—κ²Œ ν•΄λ‹Ή 지역에 λŒ€ν•œ μΆ”μ²œ κ°€μ‚°κ°’ λΆ€μ—¬

πŸ“Š μ‹œκ³„μ—΄ 뢄석을 ν™œμš©ν•œ λ‹€μŒλ‚  인ꡬ μœ λ™ 예츑
Alt text 2024.01~2024.03 λŒ€κ΅¬ λŒ€μ€‘κ΅ν†΅ μŠΉν•˜μ°¨ 정보λ₯Ό λ°”νƒ•μœΌλ‘œ λ‹€μŒ λ‚  인ꡬ 수 예츑

🧩 μ•™μƒλΈ”μ˜ νŠΉμ„± 이용
Alt text
μ„œλ‘œ μƒμ΄ν•œ λͺ¨ν˜•λ“€μ˜ 예츑, λΆ„λ₯˜ κ²°κ³Όλ₯Ό μ’…ν•©ν•˜μ—¬ μ΅œμ’…μ μΈ μ˜μ‚¬κ²°μ • 진행

πŸ’₯ λ³΄μ•ˆμ„±


πŸ”’ CBC μ•”ν˜Έν™”
Alt text
같은 값이라도 λ‹€λ₯΄κ²Œ μ €μž₯ν•˜λ©° μ–‘λ°©ν–₯의 νŠΉμ„±μœΌλ‘œ μœ μ €μ—κ²Œ λ³΅ν˜Έν™” ν›„ ν”„λ‘ νŠΈμ— 전달

πŸ—οΈ yml μ•”ν˜Έν™”
Alt text
jasyptλ₯Ό ν™œμš©ν•˜μ—¬ yml을 λ³΄μ•ˆ μ‘°μΉ˜ν•˜μ˜€κ³ , ν™˜κ²½λ³€μˆ˜λŠ” Docker-Compose, ymlνŒŒμΌμ€ jenkins Credential에 μ €μž₯

πŸ” SonaQube 정적 μ½”λ“œ 뢄석
Alt text
정적 μ½”λ“œ 뢄석을 톡해 λ³΄μ•ˆ μœ„ν˜‘, codeSmell, 기술 뢀채 등을 ν™•μΈν•˜κ³  신속 쑰치


πŸ‘¨β€πŸ‘©β€πŸ‘§ ν˜‘μ—…νˆ΄

  • Git
  • Jira
  • Notion
  • Mattermost

πŸ“ μš”κ΅¬μ‚¬ν•­ μ •μ˜μ„œ

μš”κ΅¬ 사항 μ •μ˜μ„œ


🎨 ERD

alt text


⚑️ Git μ»¨λ²€μ…˜

⚑️제λͺ©

  • Feat : μƒˆλ‘œμš΄ κΈ°λŠ₯을 μΆ”κ°€ν•˜λŠ” 경우
  • Fix : 버그λ₯Ό κ³ μΉ˜λŠ” 경우
  • Docs : λ¬Έμ„œλ₯Ό μˆ˜μ •ν•œ 경우
  • Style : μ½”λ“œ 포맷 λ³€κ²½, μ„Έλ―Έμ½œλ‘  λˆ„λ½, μ½”λ“œ μˆ˜μ •μ΄ μ—†λŠ” 경우
  • Refactor : μ½”λ“œ λ¦¬νŽ™ν† λ§
  • Test : ν…ŒμŠ€νŠΈ μ½”λ“œ. λ¦¬νŒ©ν† λ§ ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μΆ”κ°€ν–ˆμ„ λ•Œ
  • Chore : λΉŒλ“œ 업무 μˆ˜μ •, νŒ¨ν‚€μ§€ λ§€λ‹ˆμ € μˆ˜μ •
  • Design : CSS λ“± μ‚¬μš©μžκ°€ UI λ””μžμΈμ„ λ³€κ²½ν–ˆμ„ λ•Œ
  • Rename : 파일λͺ…(or 폴더λͺ…)을 μˆ˜μ •ν•œ 경우
  • Remove : μ½”λ“œμ˜ μ‚­μ œκ°€ μžˆμ„λ•Œ

⚑️commit message μ˜ˆμ‹œ

Feat : "μΆ”κ°€ 둜그인 ν•¨μˆ˜"

⚑️ Git Flow

  • Git flow μ‚¬μš©ν•œ 브랜치
    • master
    • develop be/ad : 배포
    • sprint{N} : μŠ€ν”„λ¦°νŠΈ 주차별 브랜치
    • feature : μ„ΈλΆ€ μž‘μ—… 브랜치

  • git flow κΈ°νšν•œ 이유
    • 개발 μ‹œ, 맑은 κΈ°λŠ₯ λ³„λ‘œ develop ν•˜μœ„μ— feature 브랜치 생성
    • 개발 μ™„λ£Œ μ‹œ, ν•΄λ‹Ή feature 브랜치λ₯Ό develop에 mergeν•œλ‹€.
    • 개발 ν…ŒμŠ€νŠΈ μ‹œ, develop에 νŒŒμ΄ν”„λΌμΈ μ—°κ²°ν•˜μ—¬ 배포 및 ν…ŒμŠ€νŠΈ μž‘μ—… 진행
    • 개발 μ™„λ£Œ 및 ν…ŒμŠ€νŠΈ μ™„λ£Œ μ‹œ, master 브랜치둜 배포 진행

  • Git 브랜치 이름 μ»¨λ²€μ…˜
    // Back-end
    feature/도메인/μ„ΈλΆ€κΈ°λŠ₯
    
    // Front-end
    ....
    

πŸ› μ½”λ“œ μ»¨λ²€μ…˜

πŸ› ν”„λ‘ νŠΈ μ½”λ“œ μ»¨λ°΄μ…˜
...


πŸ› λ°±μ•€λ“œ μ½”λ“œ μ»¨λ°΄μ…˜

  • JPQL vs QueryDSL
// File ꡬ쑰

Domain
    Entity
    Repository
    RepositoryCustom
    RepositoryImpl
    Controller
    Service
    ServiceImpl
    RequestDto
    ResponseDto

πŸ‘¨β€πŸ‘©β€πŸ‘§ Jira

ν˜‘μ—… 및 일정, 업무 관리λ₯Ό μœ„ν•΄ Jiraλ₯Ό μ΄μš©ν•˜μ˜€μŠ΅λ‹ˆλ‹€. 맀주 μ›”μš”μΌ μ˜€μ „ 회의λ₯Ό 톡해 ν•œ μ£Ό λ™μ•ˆ 진행할 μŠ€ν”„λ¦°νŠΈλ₯Ό κ³„νšν•˜κ³ , 진행할 μŠ€ν† λ¦¬μ™€ ν…ŒμŠ€νŠΈλ₯Ό ν•΄λ‹Ή μŠ€ν”„λ¦°νŠΈμ— μƒμ„±ν•˜μ—¬ λ“±λ‘ν•˜μ˜€μŠ΅λ‹ˆλ‹€. λ˜ν•œ 맀주 κΈˆμš”μΌ μ˜€ν›„μ— 회의λ₯Ό μ§„ν–‰ν•˜μ—¬ ν•΄λ‹Ή μŠ€ν”„λ¦°νŠΈμ— λŒ€ν•œ 회고λ₯Ό μ§„ν–‰ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

  • Epic : 큰 λ„λ©”μΈμœΌλ‘œ λΆ„λ₯˜
  • Stroy : μ‚¬μš©μž κ΄€μ μ—μ„œ κΈ°λŠ₯을 μ‚¬μš©ν•˜λŠ” 상황을 기술
  • subtask : μ‚¬μš©μžκ°€ μ‚¬μš©ν•  κΈ°λŠ₯을 κ°œλ°œν• λ•Œ ν•„μš”ν•œ λͺ©λ‘μœΌλ‘œ λ””ν…ŒμΌν•˜κ²Œ 기술, μ†Œμš”λœ μ‹œκ°„ 및 μŠ€ν† λ¦¬ν¬μΈνŠΈ ν• λ‹Ή

πŸ‘¨β€πŸ‘©β€πŸ‘§ Notion

개발 ν™˜κ²½ ꡬ좕에 ν•„μš”ν•œ 정보, 라이브러리 및 기술 κ΄€λ ¨ 링크, 회의둝 μž‘μ„± 및 ν”„λ‘œμ νŠΈ 진행에 κ΄€λ ¨λœ μ‚°μΆœλ¬Όμ„ κΈ°λ‘ν•˜κ³  κ³΅μœ ν•˜λŠ” μš©λ„λ‘œ μ‚¬μš©ν•˜μ˜€μŠ΅λ‹ˆλ‹€. μ»¨λ²€μ…˜ 및 브랜치 μ „λž΅ λ“± λ˜ν•œ λ…Έμ…˜μ— κΈ°λ‘ν•¨μœΌλ‘œμ¨, λͺ¨λ‘κ°€ ν•­μ‹œ 확인할 수 μžˆλ„λ‘ κ΄€λ¦¬ν•˜μ˜€μŠ΅λ‹ˆλ‹€.


πŸ‘¨β€πŸ‘©β€πŸ‘§ Scrum

맀일 μ•„μΉ¨ 9μ‹œμ— 슀크럼 회의λ₯Ό 10λΆ„ λ™μ•ˆ μ§„ν–‰ν•˜λ©°, μ–΄μ œ ν–ˆλ˜ 일과 였늘 진행할 업무, λ°œμƒν•œ 이슈λ₯Ό κ³΅μœ ν•˜λŠ” μ‹œκ°„μ„ κ°€μ‘ŒμŠ΅λ‹ˆλ‹€. μŠ€ν¬λŸΌμ„ 톡해 νŒ€μ›λ“€μ˜ ν˜„μž¬ 상황을 νŒŒμ•…ν•  수 있고, ν”„λ‘œμ νŠΈμ— λŒ€ν•΄ κΎΈμ€€νžˆ λͺ¨λ‹ˆν„°λ§ν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.


πŸ‘¨β€πŸ‘©β€πŸ‘§ νŒ€μ› μ—­ν• 

πŸ˜ƒμ •μ² μ£Ό

πŸ˜ŠκΉ€κ±΄μš°

πŸ˜˜λ°•μ •ν™˜

  • Jenkins 와 Docker ν™œμš©ν•œ AWS EC2 μ„œλ²„ ν”„λ‘œμ νŠΈ CI/CD ꡬ성
  • NGINX λ₯Ό ν†΅ν•œ 무쀑단배포
  • ERD & DB
  • Spring Boot, Jpa, queryDSL 을 ν™œμš©ν•œ λ°±μ—”λ“œ API μž‘μ—…
  • 빅데이터 / DB / λ°±μ—”λ“œ μ„œλ²„κ°„ μ—°κ²° 및 μžλ™μ—…λ°μ΄νŠΈ
  • Spring Security, Jwt λ₯Ό ν™œμš©ν•œ 인증 / 인가 적용

πŸ˜μ΄μ§€μ—°

  • ERD 섀계 및 DB ꡬ좕
  • queryDSL μ‚¬μš©ν•˜μ—¬ rest API μž‘μ—…
  • 빅데이터 데이터 μˆ˜μ§‘ 및 μ „μ²˜λ¦¬ μž‘μ—…
  • κ·Έμ™Έ λ°œν‘œμžλ£Œ μž‘μ„±, 지라 관리, λ“± ν•„μš”ν•œ 업무 지원

πŸ˜›κΉ€μΈν˜Έ

  • 빅데이터 기술 KNN, μ‹œκ³„μ—΄, 앙상블 기법 적용
  • CBC μ•”ν˜Έν™” 기법을 μ΄μš©ν•œ 민감정보 μ•”ν˜Έν™”
  • λ³΄μ•ˆ ν‚€ μ„œλ²„μ— λΆ„ν•  μ €μž₯ν•˜μ—¬ λ³΄μ•ˆ λΆ„μ‚°ν™”
  • μ†Œλ‚˜νλΈŒλ₯Ό ν™œμš©ν•˜μ—¬ 정적 뢄석 ν›„ ν”Όλ“œλ°± 제곡
  • 도메인 ssl 인증연결
  • Spring Boot, Jpaλ₯Ό μ΄μš©ν•œ API κΈ°λŠ₯ 개발

πŸ˜€μ‘°μˆ˜ν˜„

  • ERD λ°”νƒ•μœΌλ‘œ DB 섀계
  • 빅데이터 데이터 μˆ˜μ§‘ 및 μ „μ²˜λ¦¬ μž‘μ—…
  • API λͺ…μ„Έμ„œ λ°”νƒ•μœΌλ‘œ API ꡬ좕
  • UCC μ˜μƒ 기획, 촬영, νŽΈμ§‘

πŸ‘¨β€πŸ‘©β€πŸ‘§ ν”„λ‘œμ νŠΈ μ†Œκ°

πŸ˜ƒμ •μ² μ£Ό

πŸ˜ŠκΉ€κ±΄μš°

πŸ˜˜λ°•μ •ν™˜

πŸ˜μ΄μ§€μ—°

πŸ˜›κΉ€μΈν˜Έ

πŸ˜€μ‘°μˆ˜ν˜„