엘리스 클라우드 트랙 1기 76

엘리스 클라우드 트랙 1기를 마치며

4주동안의 마지막 프로젝트를 마무리한지 3주 정도가 지난 것 같다.클라우드 트랙은 공식적으로 수료했지만 3주동안 프로젝트 리팩토링도 하고 다른 레이서 분들과 만나 공부계획 취업 계획도 세우다 보니 끝나도 끝난것 같지가 않다.6달 동안 내가 배운 것을 되돌아보고 분명 다시 찾아볼 일이 있을 것 같아 마무리 느낌으로 후기를 작성해볼려고 한다.6달 간의 길면서 짧았던 시간첫 팀 프로젝트첫 팀 프로젝트는 간단한 사이트 클론코딩 과제였다.백엔드 과정이었지만 프론트엔드와 접점이 많은 만큼 HTML, CSS, JavaScript와 친숙해지고 직접 사용해봄으로써 동작 원리에 대해 이해하고 넘어가는데 중요한 과정이었다고 생각된다.팀 프로젝트에서 처음 팀장을 맡았지만 생각보다 팀장의 역할이 많이 요구되지 않는 과제였다.이..

엘리스 최종 프로젝트 - 2주차 (04/28)

작업내역 - 깃랩 커밋 기록, 깃랩 커밋 기록2프론트엔트 팀의 요구사항에 따라 배포 작업을 먼저 진행했다.AWS EC2에 도커를 사용하여 배포를 진행했다. 로컬에서 다른 백엔드 팀원들의 작업내역을 통합하여 이미지를 빌드하고 이를 도커헙에 올렸다.생성한 EC2 인스턴스에서 도커를 설치, push한 이미지를 pull 받아 포트번호를 설정하고 실행 프론트엔드 테스트 결과 swagger는 정상적으로 동작하는 API에 개인의 localhost에서 서버에 요청을 보낼경우 CORS 에러가 발생함을 확인했다.이를 해결하기 위해 securityconfig에 추가 조치를 취했으나 해결이 안되었다.다음 스크럼 시간까지 백엔드 팀의 API 변경사항을 적용하여 이미지를 다시 빌드하고 security config에 추가적인 수정..

엘리스 최종 프로젝트 - 2주차 (04/24)

작업내역JWT 토큰 인증, 인가 작업 진행 중 토큰의 인증과 인가 구현에 상당히 많은 시간을 사용했다. security filter의 동작 방식에 익숙하지 못해 구글링을 통해 다른 사람들이 작업한 방식과 유튜브 강의를 들으면서 작업을 진행했다.앱의 권한이 사용자 밖에 없는 상태로 관리자, 회원가입을 하지 않은 일반 사용자에 대한 권한 등 여러 권한이 추가될 경우 어떻게 구현해야할지 더 고민이 필요할 것 같다.  토큰 자체의 구현은 굉장히 간단해서 놀랐다.기본적으로 구현 메서드는 spring boot에서 제공되어 있었고 틀에 맞추어 토큰에 넣고 싶은 정보를 맞추어 넣기만 하면 됐다.그런데 토큰은 한 번 사용자에게 발급하면 추가적인 수정, 제한 등이 불가능한 것이 고민거리가 되었다.사용자가 로그아웃해도 만료..

엘리스 최종 프로젝트 - 1주차, 04/19까지

Readme 작성 ERD, 사용 기술, 와이어프레임에 대한 내용을 작성 프로젝트 초안에 대한 내용을 미리 작성해두어 이후 참고가 가능하도록 팀 스크럼 시간 결정 및 코어타임 조율 매일 오후 1시 작업 진행 상황과 각 팀의 요청사항을 공유 및 기능 조율 각 팀 별로 오피스아워를 진행하면서 새롭게 배운 내용, 개선점에 대해서도 공유 이후 1시부터 8시까지 코어타임으로 가능한 게더에 접속한 상태로 작업 언제든지 작업 중 의문점, 필요한 사안에 대해 의견을 공유할 수 있도록 API 작업 시작 맡은 User의 CRUD 작업과 시큐리티 코드 작성 완료 - Swagger를 통해 API 명세 확인 추가적으로 전역 예외처리를 추가 Enum을 사용해 다른 팀원들도 필요한 사용자정의 예외를 추가할 수 있도록 설정 스프링 시..

AWS

AWS 개념 클라우드 서비스를 통해 직접적인 서버 구성없이 안정적, 비용 효율적인 컴퓨팅 서비스 사용가능 AWS는 여러 클라우드 서비스 제공 업체 중 하나로 독보적으로 사용자가 많으며 300개 이상의 온디맨드 서비스를 제공 웹 애플리케이션의 기본구성 - 3tier 아키텍쳐 web server 정적인 컨텐츠 (HTML, CSS, Javascript) 미리 서버에 저장하고 응답 API server 동적 컨텐츠 관리 (사용자에 따라 달라짐) DB와 상호작용 DB 일반적인 서버에서 구현가능한 대부분의 서비스가 AWS 상에서도 구현이 가능 AWS 글로벌 인프라 245개의 국가에서 서비스를 운영 리전 물리적인 데이터센터 클러스터 단위 - 서비스를 제공하는 단위, 지역적으로 분리 리전 단위로 AWS 서비스를 제공 -..

최종 프로젝트 빌드업 미팅

구현하고 싶은 기능 OAuth - 구글, 네이버, 카카오 logging/ 에러 핸들링 육하원칙에 따라 문제를 단번에 파악할 수 있게, 전역적으로 한 곳에서 처리 가능하도록 AWS 이미지 추가, 조회, 삭제 java mail 서버 문제 시 이메일 발송 채팅 기능 구현 실시간 채팅, 더 나아가서 단체 채팅 구현 채팅 기록을 참여자 한정 txt 파일로 저장 데이터 기반 추천 서비스 구현 미디어 넷플릭스, 유튜브, 디즈니+, 왓챠 등 중고차 의약품 추천 - 민간인들끼리 정보 공유는 좋지 않아 보임 공공데이터포털 사용 의약품 폐기 위치 알림 동네 생활 편의 설명 가장 가까운 주면 쓰레기통 찾기 → 사진 찍어 업로드 및 공유, 없어진 경우 공지가능 동네 별 건전지, 의약품, 재활용품 폐기 날짜 및 변경 시 알림 동..

도커 발표 자료

도커와 도커 사용사례 https://www.notion.so/e51b543d11e7401ba0b128950dd3d963?pvs=4 도커의 가장 어려운점 문법에 대한 이해가 어려웠다. 작동 방식이 익숙하지 않아 문제가 자주 발생 도커의 가장 좋은점 미리 환경을 구축해두면 노트북에서도 동일하게 작업이 가능 로컬에서 mysql의 설치와 설정, spring boot 설정, nginx 설치 등의 과정을 cmd 라인 하나로 끝 팀 작업 시 각각 같은 환경을 공유해 일관성을 유지가 가능 클러스터링이란 무리를 짓다라는 사전적인 의미 두 대 이상의 서버들을 하나로 묶어서 큰 시스템을 구성 → 1개의 IP 주소 슈퍼 컴퓨터 보다 싸고 관리가 간편하며 유연성이 높다 클라우드를 통해 클러스터를 구축하여 오토 스켕일링 유연성 ..

docker compose

다수의 컨테이너 API 서버에 DB 추가 시 하나의 서버에 API 서버와 DB 서버를 실행 - X 별도의 컨테이너로 각각 실행 시키는 것이 좋다 다수의 컨테이너를 사용하는 이점 단일 컨테이너로 구성 시 ENTRYPOINT 작성이 까다로움 다수의 프로세스를 한 시점에 모두 다루는 것은 어렵다 별개의 컨테이너는 프로세스 실행 사이클이 독립적, 비교적 다루기 쉽다 API, DB 팀이 나누어져있을 경우 각자의 목표에 집중이 가능 - 효율적인 협업이 가능 단일 컨테이너라면 두 팀 간 협의할 사항이 많아지게 됨 API 서버의 부하 증가로 자원을 늘려야 할 때 API 서버의 자원만 늘려 효울적인 자원 할당이 가능 MSA: micro service architecture, 가장 현대적인 서비스 아키텍쳐와 밀접한 관계 ..

도커 2 - 2

환경변수 프로세스가 동작할 때 참조할 수 있는 변수 이미지를 빌드할 때 각 레이어에서 참조, 컨테이너가 실행되는 동안 참조 도커파일의 ENV 명령어를 통해 환경 변수 설정 가능 부모 이미지의 ENV는 자식 이미지에 상속 사용법 KEY, VALUE 쌍으로 사용 쌍따옴표는 무시되며 backslash로 여러줄 작성 가능 쌍따옴표를 넣고 싶을 경우 escape를 해줘야함 공백을 기준으로 여러 개의 환경변수 정의 ENV = ENV VAR_A="A" # ENV VAR_A=A ENV VAR_A="Hello \ World" ENV VAR_A="A" VAR_B="B" 다른 시점에서 EVN 값 정의 ARG 명령어와 -build-arg 옵션으로 이미지를 빌드하는 시점에 정의 가능 -e 옵션으로 컨테이너 실행 시점에 정의 -..

도커 2 - 1

이미지 작성 FROM, COPY, WORKDIR FROM 이미지에 대한 캔버스(베이스 이미지)를 정의 특별한 경우가 아니라면 Dockerfile에 가장 먼저 작성 독립적 범위(빌드 스테이지)를 초기화하는 기술적 역할 빌드 스테이지: 이미지 빌드를 위한 명령어가 실행되는 컨텍스트 단위 하나의 도커파일에 여러개 존재 가능 이미지는 플랫폼 별로 작성될 수 있으며 다중 플랫폼 이미지를 참조하는 경우 --platform 옵션으로 선택 가능 기본 값은 빌드를 수행하려고 하는 플랫폼이 사용 AS 구문을 통해 별칭 부여가능하며 Multi Stage 빌드 시 별칭을 통해 Stage 참조 가능 Multi Stage 빌드: 하나의 도커파일에 여러 개의 Stage를 빌드 가독성, 이미지 크기 감소 등의 효과 tag, dige..