Docker
Docker에 데이터베이스 이미지 띄우기
이번 팀 프로젝트에서 PostgreSQL을 사용하게 됐는데 이전에는 mysql을 활용했었기 때문에 해당 데이터베이스를 설치해야 되는 상황이 됐다
데이터베이스를 설치하기 귀찮기도 하고 도커를 한번도 사용해 본 적이 없어서 이번 기회에 데이터베이스를 도커에 올려보기로 결정
유튜브 강의를 보면서 도커란 무엇인지 간단하게 학습하고 (일단 미니 컴퓨터라고 생각하기로 했다..) 여러 명령어를 통해 조작해봤다 (명령어는 따로 정리)
Docker volume
Docker 컨테이너의 문제점
도커는 특정 이미지를 통해 하나의 가상 환경을(컨테이너) 구축할 수 있는 툴인데 해당 컨테이너에서 작업한 데이터 또한 컨테이너에 저장이 된다
이미지에서 변경된 파일 시스템이
Container Layer
에 저장→ 이로 인해 컨테이너를 삭제하게 되면 해당 컨테이너 내부의 데이터도 모두 삭제되는 경우가 발생한다 (DB라고 가정하면 DB의 데이터 같이 삭제됨)
→ 즉 Docker Container는 휘발성
해당 문제점을 해결하기 위해서는 volume 옵션을 활용한다
docker volume이란 ?
도커 컨테이너에서 데이터를 영속적으로 저장하기 위한 방법
volume은 컨테이너 내부 저장 공간을 사용하지 않고 호스트 자체의 저장 공간을 공유해서 사용하는 형태
컨테이너 내부의 데이터를 호스트가 지정한 공간과 링크를 걸어주는 기능이라고 한다
▪ docker run -v [호스트의 디렉토리 절대경로]:[컨테이너의 디렉토리 절대경로] [이미지명]
프로젝트 기록
value() 어노테이션
cannot find symbol method value()
ai api 호출에 필요한 api key값을 yml 파일에 작성해뒀는데 읽어오지 못하는 이슈 발생
annotation.Value를 임포트 했어야 했는데 lombok.Value를 임포트해서 생긴 이슈였음ㅎ
생각이 필요한 것들
Ai를 하나의 도메인으로 봐야 하는가?
Ai가 하나의 서비스처럼 느껴지긴 하지만 메뉴 내에서만 사용이 되고 있다.. 확장성을 고려하더라도 배달 플랫폼에서 Ai가 얼마나 확장이 되려나
현재는 메뉴 도메인에 포함시키되 로직만 분리하는 방향으로 갈 것 같다
Ai api 호출 방식
동기 / 비동기에 대해 오늘 제대로 이해하게 된 것 같은데 우선 내일 더 알아보고 이점을 따져서 선택하기 (비동기가 좋을 것 같다는 생각인데 동기를 사용해서 얻을 수 있는 이점이 무엇인지 찾아보기)