[우아한테크코스] 3월 11일 TIL
1 minute read
오늘 배운 것
- 블랙잭 상태 패턴 재적용
- 테코톡
- 모던 자바 인 액션 9장
테코톡
- Web 요청과 응답과정
- 인터넷: 컴퓨터 네트워크들을 연결시켜주는 범지구적 네트워크
- LAN: 근거리 통신망, 가까운 지역을 묶는 네트워크
- 웹: 인터넷 중에서 동작하는 서비스 중 하나로, 정보의 공유를 위해 존재, 수많은 요청과 응답 사이클의 연속으로 이루어짐
- 서버: 정보 제공
- 클라이언트: 정보 사용
- HTTP: 클라이언트와 서버 사이의 약속(비연결성)
- GET
- POST
- PUT
- DELETE
- HEAD
- PATCH
- OPTIONS
-
- Uniform Resource locator: 네트워크상 자원의 위치
- Uniform Resource Identifier: 정보 리소스를 고유하게 식별하고 위치를 지정
- Uniform Resource Name: 리소스 위치에 무관한 유일한 이름
- 요청을 서버로 전송(HTTP Request)
- 서버가 클라이언트로부터 요청 받고 처리
- 서버가 클라이이언트에게 응답
- 클라이언트가 응답 받고 필요한 리소스 추가 요청, 응답 받기
- 렌더링을 통해 화면에 뿌려줌
- 사용자 확인
빌드와 배포
- 컴파일
소스 코드를 바이너리 코드로 변경하는 과정 Java의 경우 class까지
JVM: java byte code를 os에 맞게 실행하는 것
- 빌드
컴파일 -> 링크 -> 패키징 -> 테스트를 거쳐 jar와 war로 산출
jar:
war:
- 빌드 도구
ant: xml 형식, 자유도 높음, 절차적, 스크립트 직접 명시
maven: pox.xml, 전체 프로젝트 관리, 표준화된 빌드 스크립트, 속도 빠름, 읜존성 추가 편리
gradle: ant+maven, groovy 기반 작성, 자바 문법과 유사, 재사용이 용이
- settings.gradle:
- build.gradle: 프로젝트 빌드 정보 및 구성 표현
- .gradlew, .gradle.bt: gradle이 설치되어 있지 않아도 빌드 가능
- 배포
jar, war로 사용자가 사용할 수 있도록 소프트웨어를 제공하는 것
- CI
마지막 프로젝트 합치면 integration hell, 중간 합치면 지속적으로 시간 소모
CI: 지속적 통합, 변경사항마다 자동으로 빌드, 테스트하고 보고까지하는 것
충돌 수정이 쉽고, 최신 상태로 유지, 테스트 원활하게 수행
- Travis: 깃헙 연계 굿, 클라우드 기반
- Jenkins: 다양한 IDE, 커스터마이징, 서버 운영 비용 발생
- CD
배포까지 자동으로 하는 것, 파이프 라인을 통해 프로덕션에서 자동 배포하는 것
빠르고 쉬운 배포, 빠른 출시, 생산성 향상
Continuous Delivery -> Continuous Deployment
DevOps: 개발과 운영을 합쳐..