y1551463

Docker

TIL
a month ago
·
4 min read

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 호출 방식

  • 동기 / 비동기에 대해 오늘 제대로 이해하게 된 것 같은데 우선 내일 더 알아보고 이점을 따져서 선택하기 (비동기가 좋을 것 같다는 생각인데 동기를 사용해서 얻을 수 있는 이점이 무엇인지 찾아보기)


- 컬렉션 아티클