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: 기술 연마 기회를 긍정적으로 생각하고 적극적으로 임하기.
팀 프로젝트 간섭 줄이는 방법
전체 작업 플로우
- 기획
- 화면 설계 및 DTO 추출
- DB 설계 및 Entity 추출
- HTML 화면 제작
- 서버 설계 + HTML + JSP 통합
- 서버 제작 및 JSP 데이터 주입
초기 논의 필요
- 공통 기능
- 더미 데이터 활용
응용 프로그램 개발자의 핵심
- 사용하는 언어, 라이브러리 함수, 프레임워크 구조, 비즈니스 지식에 잘 이해하고 있어야 한다.
- 면접에서는 장황하게 대답하기보다는 핵심을 전달하는 것이 좋다.