Skip to main content Link Search Menu Expand Document (external link) Copy Copied

CI/CD

코드 변경이 발생할 때마다 CI(빌드 및 테스트)를 수행하고 CD(특정 환경에 배포)까지 과정을 자동화한다.

장점

  • 피드백이 빠르다.
  • 자동화된 프로세스로 인적 오류 방지한다.
  • 모든 환경에서 일관된 결과 보증한다.

CI/CD 도구

GitHub Actions

  • YAML 파일로 워크플로우를 정의한다.
  • 무료로 사용 가능하다.
  • 커뮤니티와 Marketplace가 활성화 되어있다.

Jenkins

  • 다양한 플러그인을 지원한다.
  • 분산 빌드 및 다중 플랫폼 지원으로 대규모 프로젝트에 적합하다.

GitLab CI

  • 강력한 파이프라인 편집기 제공한다.
  • DevOps 수명 주기에 대한 자동화를 지원한다.
  • 클라우드와 온프레미스를 모두 지원한다.

AWS

ECS (Elastic Container Service)

Docker 애플리케이션을 쉽게 배포하고 운영할 수 있도록 지원하는 서비스이다.

장점

  • EC2보다 설정 시간이 짧다.
  • Serverless 구성 시 인스턴스 관리도 불필요하다.

ECS 구조

구성 요소 설명
ECR Docker 이미지 저장소.
ECS Cluster 여러 인스턴스로 구성되며 컨테이너 분산 실행. Serverless는 인스턴스 불필요.
ECS Server Docker 애플리케이션 실행 그룹.
ECS Task Server에서 실행되는 Docker 컨테이너.
  • 로드밸런싱, 모니터링, Auto Scaling 등을 자동으로 관리한다.

Task Definition

  • ECS의 최소 실행 단위는 Task이다.
  • Task가 두 개 이상 모이면 Service라고 부른다.

사전 OT

6주차 강의 세션 일정

주차 기간 내용
1주차 12.2 - 12.7 MSA 구성(임예지), FeignClient(우현웅)
2주차 12.9 - 12.13 QueryDSL(유광열), Swagger(유광열)
3주차 12.16 - 12.20 프로젝트 경험 공유 세션
4주차 12.23 - 12.27 기술 발표 짧게, 최소 3명 발표
5주차 12.30 - 01.03 Kafka in MSA(우현웅)
6주차 01.06 - 01.10 Redis: 캐싱, 분산락, Fail-over(임예지)

선배 개발자가 신입 개발자에게 기대하는 것

새로운 기술이나 엄청 잘하는 것 보다는 기본기가 제일 중요하다.

  • 이론적 지식기술적 숙련도
  • 원활한 소통 능력
  • 새로운 환경에 대한 적응력

문제 해결

  • 무엇를 명확히 파악하고 근거를 제시할 수 있어야 한다.
  • 중요한 핵심을 빠르게 인지해야 한다.
  • 업무 도메인에 대한 깊은 이해가 중요하다.

TIP: 기술 연마 기회를 긍정적으로 생각하고 적극적으로 임하기.


팀 프로젝트 간섭 줄이는 방법

전체 작업 플로우

  1. 기획
  2. 화면 설계 및 DTO 추출
  3. DB 설계 및 Entity 추출
  4. HTML 화면 제작
  5. 서버 설계 + HTML + JSP 통합
  6. 서버 제작 및 JSP 데이터 주입

초기 논의 필요

  • 공통 기능
  • 더미 데이터 활용

응용 프로그램 개발자의 핵심

  • 사용하는 언어, 라이브러리 함수, 프레임워크 구조, 비즈니스 지식에 잘 이해하고 있어야 한다.
  • 면접에서는 장황하게 대답하기보다는 핵심을 전달하는 것이 좋다.