Month in review: August 2024

Category
Published
August 31, 2024
Last updated
Last updated September 6, 2024

8월을 돌아보며

8월도 빠르게 지나갔다. 대부분 서비스 개발에 많은 시간을 투자했고, 데이터 관련 작업과 프론트엔드 개발, 그리고 약간의 스프링 개발을 경험한 것 같다.
뭔가 개발만 했다고 생각했는데, 돌아보니 운동도 꽤 하고 어학공부에도 시간을 많이 투자한 것 같다.
방학 시작에 계획했던걸 생각해보면 스프링도 공부하고, 면접도 보고, 책도 읽고, ICT 인턴십이 생각보다 시간이 들어간 것 같다.
Microsoft Student Ambassador도 하려 했는데, 원하던 트랙이 안열리고, 이제는 시간도 없어 못할 것 같다. 4학년때 기회가 되기를.

Week 31(0729-0804)

240801(Thu)

  • 솔리드커넥션 오류 해결
    • DB관련된 오류? RDS 재부팅하니 사라짐
  • 미식록 서버 개발
    • 데이터 파싱

240802(Fri)

  • 솔리드커넥션 웹 개발
    • 커뮤니티 글에서 이미지 클릭시 팝업 구현
      • 스크롤을 구현할까 시도해보았으나, PC에서 사용감이 썩 좋지 않고, 비슷한 서비스에서도 그냥 확대만 되게끔 구현된것을 보고 미구현으로 결정
    • svgr을 사용해 svg 리엑트 컴포넌트화
    • 스크롤에 따른 버튼 보이기/숨이기 구현
    • Sentry organization 전환, 이에 따른 수정과 환경변수 분리
  • 솔리드커넥션 개발 회의
    • 커뮤니티 API 구성 방법에 대한 회의
  • 미식록 서버 개발
    • cloudfront 적용

240803(Sat)

  • 솔리드커넥션 웹 개발
    • 비로그인시 인증 필요 화면 안보이게 로딩 추가
    • axios instance에서 로그인페이지로 리턴 하던것 개별적으로 적용 가능하게 삭제
    • 대학 세부페이지 CSR로 like 받아오기 기능 추가
    • 대학 페이지들 getStaticProps 적용으로 최적화
      • 리스트: 2.60초 → 0.69초
      • 세부 페이지: 0.88초 → 0.58초

240804(Sun)

  • 미식록 서버 개발

Week 32(0805-0811)

240807(Wed)

  • 솔리드 커넥션 데이터 처리 개발
    • 대학 영어명 포매팅 함수 추가
  • 미식록 서버 개발
    • 지역 목록 API 추가
    • ImportError: attempted relative import beyond top-level package 오류 수정

240808(Thu)

  • 장고 i18n 번역 권한 신청
  • Gmap Place API(신규) 분석

240809(Fri)

  • django-docs 한국어 번역 일부 수정
  • 미식록 서버 개발
    • 애플 로그인 구현
    • 코드 리팩토링: 로깅 추가, 카카오 로그인 코드 수정
    • 이미지 storage 재업로드시 파일 삭제, 리사이즈 파일 동시 삭제 처리

240810(Sat)

  • 미식록 서버 개발
    • 리사이즈 이미지 로드 ~_url로 통일
    • 모델 메타 정보 추가등 리팩토링
  • 솔리드 커넥션 서버 관련
    • 수정된 내용 배포
    • DB 변경 사항 마이그레이션
  • 솔리드 커넥션 웹 개발
    • 커뮤니티 화면 개발

240811(Sun)

Week 33(0812-0818)

240812(Mon)

  • solid-connect-data 추가
  • 미식록 서버 개발

240813(Tue)

  • 미식록 서버 개발

240815(Thu)

  • 솔리드 커넥션 서버 ssl 인증서 만료 갱신

240816(Fri)

  • 솔리드 커넥션 웹 개발
    • axiosInstance 오류 수정
  • 솔리드 커넥션 신규 국가, 대학 데이터 추가

240817(Sat)

  • 솔리드 커넥션 서버 개발
    • university의 레코드가 대학별로 고유하게 수정(universityInfoForApply에 koreanName 추가)
  • 솔리드 커넥션 웹 개발
    • 홈 화면 개발

240818(Sun)

  • 솔리드 커넥션 웹 개발
    • 홈 화면 개발

Week 34(0819-0824)

240819(Mon)

  • 솔리드 커넥션 서버 개발
    • 지원서 3차 지망 대학 추가
    • 서버 배포
      • Flyway에 대해 알게 됨
  • 솔리드 커넥션 웹 개발
    • 홈 화면 개발 마무리
    • 가입 화면 개발
  • 솔리드 커넥션 소식지 관리 개발

240820(Tue)

  • 솔리드 커넥션 웹 개발
    • 가입 화면 개발

240821(Wed)

  • 미식록 서버 개발
    • 버그 수정
    • 음식점 이미지 파싱 개발

240822(Thu)

  • 솔리드 커넥션 웹 개발
    • 커뮤니티 댓글, 좋아요 기능 추가
    • 배포
  • 프로메테우스, 그라파나 모니터링 서버 이전
    • 이전 겸 기존 서버들에 node exporter 자동 실행 설정 추가
  • 솔리드 커넥션 데이터 관련 개발
    • boto3로 대학 폴더 생성 개발

240823(Fri)

  • 솔리드 커넥션 서버 오류 수정
    • Caused by: org.hibernate.exception.GenericJDBCException: Unable to acquire JDBC Connection [null, message from server: "Host '~' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'"] [n/a]
    • 위 오류가 최초 발생, 코드 문제로 에러 요청으로 블록당한것으로 파악 → flush-hosts로 초기화
    • 이후 히카리풀 오류 발생 com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
    • DB를 로컬에서 접근했을 때는 문제없이 가능하기에 서버 문제로 파악. IP 블록등의 문제인지 확인하기 위해 서버 컴퓨터에서 RDS 직접 접근 시도 → 이 때는 문제 없이 접근 가능했음
    • 스프링의 문제인지 파악하기 위해 로컬 컴퓨터에서 빌드후 연결 시도 → 실패
    • 스프링에서만 발생하는 문제로 파악. 그러나 아무 설정 변경도 없었는데 갑자기 문제가 생겼기에 RDS에서 로그 확인
    • RDS 경고로 CA 인증서 알림을 받음
    • https://aws.amazon.com/ko/blogs/korea/rotate-your-ssl-tls-certificates-now-amazon-rds-and-amazon-aurora-expire-in-2024/
    • 만료된 인증서 인증기관을 수정해 해결
  • 솔리드 커넥션 웹 오류 수정
    • 대학 목록 받아올 때 오류 발생시 revalidate 안하는 오류 수정
  • 솔리드 커넥션 DB 마이그레이션, 데이터 추가
  • ZoneDateTime과 관련한 학습
    • ZoneDateTime 사용 시 @CreatedDate, @LastModifiedDate 사용 못하는 문제 해결법
    • onPrePersist, onPreUpdate를 사용
    • DateTimeProvider 재정의
    • ZoneOffset.UTC, ZoneId.of("UTC")의 차이
    • 전자는 타임존만, 후자는 ZoneId까지 포함(즉 써머타임등을 계산할 수 있는) 개인적인 생각으로는 UTC에서는 대부분 전자가 적당할듯

240824(Sat)

  • 미식록 서버 재부팅되는 문제 해결
    • Azure의 가상 머신 업데이트 후 자동 리부팅 때문이었음
    • 가상 머신 업데이트 오케스트레이션 변경
  • 솔리드 커넥션 데이터 추가
    • csv → json 전환, json → DB 업로드 코드 작성
  • 솔리드 커넥션 웹 개발
    • 버그 수정, 디자인 수정
    • API 요청 과정 일괄 변경(비로그인 처리, 레거시 수정)
  • 솔리드 커넥션 서버 관련 리뷰
    • application에 term추가 관련 리뷰

Week 35(0825-0901)

240825(Sun)

  • 솔리드 커넥션 DB 필드 수정
  • 솔리드 커넥션 웹 개발
    • 작은 디자인 변경 사항 수정
    • 성적 공유 시트 3순위 개발
    • 내 정보 수정 개발

240826(Mon)

  • 솔리드 커넥션 웹 개발
    • 가입시 오류 핫픽스
      • ref가 로드 전 null이여서 발생하는 문제
      • 하필 ref가 개발환경에서만 로딩안되게 되어 개발 환경에서는 오류를 확인할 수 없었다
      • 테스트 서버를 만들어야할 필요성을 느낌
    • 가입시 이미지 업로드 오류 수정
    • 리팩토링

240827(Tue)

  • 솔리드 커넥션 웹 개발
    • 디자인 피드백 사항 수정
  • 미식록 웹 개발
    • 식당 세부 화면 편의기능 표기 추가
  • 미식록 서버 개발
    • 식당 사진 → 식당 썸네일 자동 설정 추가
    • 깃헙 버그 이슈 템플릿 추가
  • 솔리드 커넥션 서버 이슈 해결
    • Nginx 1MB body 제한으로 파일 업로드시 413오류 발생
    • 설정 수정으로 해결

240828(Wed)

  • 솔리드 커넥션 웹 개발
    • 깃헙 이슈 템플릿 추가
  • 미식록 서버 개발
    • 유저네임 → 이메일 전환, 기본 가입 API 개발

240829(Thu)

  • 미식록 서버 개발
    • 이메일 계정 인증 추가
    • django-ses, AWS SES 사용
    • SMTP에 대한 간단한 공부

240830(Fri)

  • 배포 시점에 급상승하는 API Latency 해결하기 — Django + Gunicorn 사례 글 읽기
    • Gunicorn은 pre-fork 방식으로 구현되어 있음. 마치 네트워크 처리시 사용하는 fork 방식.
    • 요청이 올때마다 fork하는 것이 아닌 미리(pre) fork를 해두는 것
    • Master process가 worker process를 만드는데 이것도 fork 방식으로 동일한 프로세스를 메모리까지 동일하게 복사하는 것
    • Django는 preload시에도 일부 view, model등은 미리 로드되지 않음. 그래서 urls.py를 기준으로 사전 로딩 한 후, master process를 worker process로 복사하면, 모두 로딩된 프로세스들이 복사된다.
  • 솔리드 커넥션 웹 개발
    • 성적 공유 지원 플로우 수정
    • 커뮤니티 글, 댓글 삭제 기능 추가
      • 드랍다운 컴포넌트 추가
    • 커뮤니티 글 줄바꿈 문제 해결
      • 의외로 white-space: pre-wrap;로 그냥 해결됨.
      • DB 조회시에도 줄바꿈과 띄어쓰기 구분이 안되는데, Form editor로 보면 구분 가능

240831(Sat)

  • 미식록 서버 개발
    • AWS SES 인증 완료
    • 이메일 계정 인증 확인절차 개발 완료
  • 솔리드 커넥션 웹 개발
    • 대댓글 기능 추가
    • 디자인 수정