느낀 점
다 적고 나니 중간쯤부터는 뭘 적었는지 기억이 안 난다. 종료된지 6시간도 안 되었는데 말이다.
당일 복습도 좋지만, 넘사벽으로 좋은 것은 1시간 내 복습, 더욱 좋은 것은 30분 내 복습, 가장 좋은 것은 직후 복습이다.
직후 복습을 생활화하자. 복습 시에는 수업 자료를 옆에 두고 개념을 구조화해서 학습하자. 수면도 학습의 일부이므로 수면 시간은 철저하게 계획해서 확보해야겠다. 거진 2년만에 접해보는 내용들이라 기억나는 내용이 간간이 있다. 복습 이후에는 반드시 채용 공고를 보며 목표를 더 현실적이고 전략적으로 파인튜닝해야겠다. 그리고 아래 규칙도 매일매일 점검하며 필요 시 수정을 거듭해야겠다.
규칙
- 복습은 항상 학습 직후에 한다 (25.11.13 신설)
- 복습 시에는 수업 자료를 준비한다 (25.11.13 신설)
- 복습 시간은 30분을 넘기지 않는다 (25.11.13 신설)
- 복습 직후에는 목표 직무 채용공고를 분석하여 진로 목표를 미세조정한다. (25.11.13 신설)
- 수면 시간은 11:30 - 06:30으로 정하며, 앞뒤로 1시간 이내 변경할 수 있다. 취침 전 1시간 이내에는 물만 섭취 가능하다. (25.11.13)
액션 플랜
부트캠프 관련 중요 링크 북마크- coursera 강의 수강
- 유튜브 '나중에 볼 동영상' 2개 시청
1. 부트캠프의 목표 : SPRING 프레임워크를 사용하여 웹 기반 어플리케이션 제작
*서버 구축 : 요청 & 응답
2. 개념 학습
- HTTP : 서버와 데이터를 주고 받는 방법. 클라이언트와 서버 간, 서버와 서버 간 통신 규약
특징 : 클라이언트와 서버 분리 (통신 주체의 분리), 무상태(stateless), 비연결(connectionless)
구조 :
- start line
- header
- empty line (반드시 있어야 함)
- message body
- 메서드 (CRUD)
Create (GET)
Read
Update (PUT, PATCH*일부수정)
Delete
-> 안전성, 멱등성, 캐시 가능성으로 구분함
*멱등성 : 호출 횟수에 무관하게 같은 결과가 조회되는지 (요청 실패 시 재시도 가능성과 관련)
- WEB : HTTP가 동작하는 기반
- TCP/IP : 인터넷 프로토콜
: WEB이라는 시스템 위에서 HTTP라는 형태를 통해 데이터가 교환되는데, 그 방식이 TCP/IP이다.
: IP 연결의 특성
*비연결성 - 수신 여부 확인이 어렵다
*손상/변경 가능성
: TCP 연결의 특성 : 3-WAY HANDSHAKE로 IP의 단점을 보완. PORT 보유
: 3-WAY HANDSHAKE - 3중 검증 장치. 패킷 전송 순서 보장. 단, 3중 검증으로 속도 저하의 원인이 됨
1) SYNC : 데이터 전송 가능 여부 확인 요청
2) SYNC & ACK : 데이터 전송 가능 회신
3) ACK : 전송 가능 확인
- UDP : 속도 우선 - 실시간성이 중요한 서비스에서 사용됨(스트리밍, 온라인 게임 등), PORT 존재, CHECKSUM을 통한 데이터 무결성 보장
- PORT : 동일 IP 내 각 프로세스에 할당된 주소
0~65535까지 존재, 일부는 시스템에 자동으로 할당되어 사용자가 임의 사용 불가
80 : HTTP
443 : HTTPS
- DNS
IP는 유동적이기에, DNS라는 서버를 활용.
- PACKET : 데이터의 전송 단위. SOURCE IP와 대상 IP 정보를 가지고 있다.
- URI : 자원을 나타내는 고유 식별자. URL과 URN이 있지만, DNS가 있어 URN은 거의 사용하지 않는다.
- URL의 주소 구분
: Scheme, user/pw, host[:port], query
- Fragment : 스크롤 내린 상태로 저장 가능
- Casing : 명명 규칙 *JAVA 개발 시 유의
- JSON : 범용 언어, CASE-FREE (내부에서 자동으로 변환됨)
- 서버의 성능 향상 : Scale-up & Scale-out
: Scale-up : 수직적 확장. 처리 속도가 빨라지는 것
: Scale Out : 수평적 확장. 동시에 처리할 수 있는 요청이 많아지는 것
- Stateful : 상태를 기억하는 특성 (반대 : stateless)
stateful을 유지하게 되면 서버 자원이 과소비되지만, stateless를 유지할 경우 로그인 상태 유지가 불가능하다.
이때 cookie, session, token이라는 기술을 사용한다.
- connection : 연결 유지 (반대 : connectionless)
: connectionless로 불필요한 연결을 끊고, 연결 요청이 발생할 때마다 3-way handshake 절차를 통해 데이터를 안정적으로 송수신한다.
HTTP 상태 코드
- 200 : OK
- 201 : Created
- 300번대 : 추가 Action Required
- 400번대 : 클라이언트 에러 (i.e. 404 Forbidden)
- 500번대 : 서버 에러
- WAS : 웹서버와 협력하는 관계 (웹서버는 정적 자원만, WAS는 로직만 담당)
특성
- Servlet Container : WAS의 요청을 전달받음
- Servlet이란 : JAVA에서 HTTP 기반 요청 처리를 위해 만든 서비스/템플릿
- HTTP 기반
- 웹서버 기능 포함
- 로직 -> DB와 상호작용 가능
- 멀티 스레드 지원
예시 : Apache Tomcat
- 싱글톤 : 변수와 생성된 인스턴스를 공유
- 스레드 : 호출해주는 것, 멀티스레드 요청 들어올 때마다 생성됨. 생성 비용이 높음
- 스레드 풀(THREAD POOL) : 준비된 스레드 여러 개를 배치
- 서버 사이드 렌더링
특징 :
초기 로딩이 빠른 대신, 부하 발생이 크다
SEO에 유리
'ETC > etc2' 카테고리의 다른 글
| [AI 활용법] 실험: Claude를 교수님처럼 활용해보기 (0) | 2025.11.27 |
|---|---|
| [공부 상황 점검] 11/20 Thu (1) | 2025.11.20 |
| [공부 상황 점검] 11/19 - 내일부턴 진짜 실전처럼! (0) | 2025.11.19 |
| [잡담] 현 공부 방식 점검 (0) | 2025.11.18 |