이번주에 활동했던 개인적인 내용을 작성했다.
요금제와 할인 정책을 어디까지 작성할 것인가 의논
https://www.lguplus.com/benefit-uplus/price-discount
대표적인 것을 넣고자 하였지만 할인 방식이 많아 가장 많이 사용하는 약정과 복지 할인만 선택하여 넣었다.
https://www.lguplus.com/mobile/plan/mplan/plan-all
요금제의 경우, 57가지로 너무 많아 인기 카테고리가 있는 7가지 요금제만 사용하기로 하였다.
Spring Web (API 서버 구축)
Spring Batch (대용량 정산 처리)
Spring Data JPA (DB 조회/저장 편하게)
MySQL Driver (DB 연결)
Lombok (Getter/Setter 노가다 제거)
Spring for Apache Kafka (메시지 큐 연동)
Spring Data Redis (중복 발송 방지/캐시)
Spring Boot DevTools (개발 속도 향상)
Validation (입력값 검증)
Spring Boot Actuator (모니터링/지표 제공)
H2 Database(로컬 테스트용-개발하다가 MySQL 띄우기 귀찮거나, 단위 테스트 돌릴 때)
swagger(api 확인용)
eclipse-temurin:17-jdk-alpine 로 사용; openjdk:17.0.1-jdk-slim
spring 3.5.9 버전, 자바 17 버전으로 사용
mysql, redis
vite말고 기본 리액트
docker-compose up -d --build를 해서 설치를 해준다. 시간이 조금 걸림.
그랬는데 redis랑 zookeeper만 실행이 되어
docker ps -a 로 죽은 컨테이너까지 도커 상태 확인
=>
docker logs mysql컨테이너명으로 sql 상태 확인
을 했는데 아무것도 안떠써 docker start -a mysql컨테이너명 실행
로컬에서 mysql 포트를 사용하고 있어서 끄고 다시 실행하려고 하였지만, 다른 사람들도 똑같은 문제를 겪을 것 같아 포트 번호 수정
그렇게 docker-compose down, docker-compose up -d 다시 실행해서 해결
kafka는 버전 문제 발생
최신 버전은 zookeeper가 필요가 없음
(관련 정리된 내용 https://junuuu.tistory.com/812)
그 전에 주피커를 사용한 이유 - https://everenew.tistory.com/487
그러면서 그래도 주피커가 있는 버전을 사용해서 에러가 났을때 해결이 좋지 않을까 생각을 했지만 일단 컨테이너가 하나 덜 들어가서 좀 더 가벼워서 주피커를 안 사용해보는 버전으로 진행을 했다.
대신 초기에 kafka에 대해 확인할 수 있는 ui 컨테이너를 추가하였다.
해결 도움을 받은 곳
https://adjh54.tistory.com/637
https://ghehf.tistory.com/31#google_vignette
위와 같이 하고 docker-compose down -v로 삭제 후 다시 docker-compose up -d을 진행하였다.
점검을 하며 backend에 redis를 못 찾아
SPRING_DATA_REDIS_HOST와 SPRING_DATA_REDIS_PORT로 수정
docker-compose up -d backend 로 바뀐 것만 composeup 진행
docker exec -it MySQL컨테이너명 mysql -u root -p
비밀번호 입력: (docker-compose에서 설정한 것)
성공 기준:
mysql> 프롬프트가
SHOW DATABASES; 쳤을 때 설정한 DB명이 보이면 성공!
exit로 나오기
혹은 mysql에서 확인을 원한다면

test connection을 눌러서 확인

다음과 같이 뜨면 성공
그리고 ok를 누르면 ui까지 사용가능
docker exec -it Redis컨테이너명 redis-cli ping
성공 기준:
화면에 PONG 이라고 딱 한 단어 나오면 성공
docker exec -it kafka컨테이너명 /bin/bash
내부 쉘이 뜨면, kafka-topics --create --topic test-topic --bootstrap-server kafka:9092 --partitions 1 --replication-factor 1
UI 사용시, 해당 포트로 가면

topic에 새롭게 뜬다
kafka-console-producer --topic test-topic --bootstrap-server kafka:9092 입력하면 아래와 같은 화면이 나온다

hello와 같은 문구를 입력
새로운 터미널 창에서 동일하게 docker exec -it kafka컨테이너명 /bin/bash 한 후,
kafka-console-consumer --topic test-topic --bootstrap-server kafka:9092 --from-beginning 실행

다음과 같이 입력한 문구가 불러와지는 것을 확인할 수 있다.


새롭게 입력해도 바로 되는 것을 확인하면 성공
나가고 싶다면, crtl+c 후 exit 입력하면 된다.
1차 확인 (로그):
docker logs -f backend컨테이너명
만약 막 줄줄이 에러가 올라온다면 99% 확률로 DB나 Kafka 연결 실패
2차 확인 (브라우저):
(Actuator 추가했을 경우)
인터넷 창을 켜고 http://localhost:8080/actuator/health 접속 -> {"status":"UP"} 이라고 나오면 완벽

(스웨거 설정했을 경우)
http://localhost:8080/swagger-ui/index.html로 들어가서 뜨면 성공

http://localhost:3000 접속해서 화면 뜨면 성공
만약 "사이트에 연결할 수 없음"이 뜨면 docker logs ureca-frontend를 확인해보기
메인 기능이나 책임은 한명이 해도 개발은 같이 하는 것을 추천. 구멍이 생기거나 에러가 나도 대응할 수 있도록
더미 데이터 생성을 하루보다 좀 더 여유롭게 가져라
대부분 타임리프로 프론트 구현함
ncloud로 배포하면서 flyway로 데이터베이스 스키마 형상관리하는 팀도 있음
핵심 기능 개발 일주도 좀 짧아 보임. 멘토링을 통해 많이 변할 수도 있기 때문
복합 인덱스에 대한 성능향상이 실제로 되는지
테스트 코드, 샘플 코드를 많이 작성해보기
프론트에 너무 시간쓰지 않기
멘토링하기 전에 질문 준비 잘할 것 - github에 readme 잘 정리해두기
제어판 -> 사용자 계정 -> 자격 증명 관리자 -> windows 자격증명 에서 github 관련된 일반 자격 증명을 다 삭제하라고 해서 삭제 했는데도 안되었음.
초대는 되었지만 권한이 안되어서 push가 안되었음