일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 1차원 DP
- 2차원 dp
- 99클럽
- @BeforeAll
- @BeforeEach
- @Builder
- @Entity
- @GeneratedValue
- @GenericGenerator
- @NoargsConstructor
- @Query
- @Table
- @Transactional
- Actions
- Amazon EFS
- amazon fsx
- Android Studio
- ANSI SQL
- api gateway 설계
- api gateway 필터
- ApplicationEvent
- argocd
- assertThat
- async/await
- AVG
- AWS
- aws autoscaling
- aws eks
- aws iam role
- AWS KMS
- Today
- Total
목록제대로 이해하기 (9)
기록

1. Socket이란 무엇인가?Socket은 운영체제가 제공하는 네트워크 통신 인터페이스로, TCP 또는 UDP 기반의 데이터 전송을 가능하게 해준다. 이는 클라이언트와 서버 간 바이트 스트림 단위로 데이터를 주고받는 저수준 통신 수단이다.핵심 특징전송 계층(TCP/UDP) 기반의 통신바이트 기반 데이터 송수신통신 규약은 직접 설계 필요실시간성, 성능 중심 애플리케이션에 적합코드 예시: 자바 TCP 소켓 통신서버 측ServerSocket serverSocket = new ServerSocket(12345);Socket clientSocket = serverSocket.accept();BufferedReader in = new BufferedReader(new InputStreamReader(clientS..
1. HTTP란 무엇인가?HTTP(HyperText Transfer Protocol)는 웹에서 클라이언트와 서버 간의 요청 및 응답을 주고받기 위한 통신 규약이다. 클라이언트는 주로 웹 브라우저이며, 서버는 웹 서버 혹은 웹 애플리케이션 서버(WAS)이다.HTTP 요청 메시지 예시GET /login HTTP/1.1Host: www.example.comUser-Agent: Mozilla/5.0HTTP 응답 메시지 예시HTTP/1.1 200 OKContent-Type: text/html; charset=UTF-8Content-Length: 20Hello이러한 요청/응답 메시지는 문자열 기반이며, 정해진 형식에 따라 해석되어야 한다. 서버는 요청 메시지를 파싱하고, 요청된 리소스나 서비스를 처리한 후, 결과를..
개발 도중 실수로 커밋을 해버렸는데, 아직 git push는 하지 않은 상태에서 "커밋을 취소하고 싶다"고 느낀 적이 있을 것이다. 이 글은 원격에 반영되지 않은 로컬 커밋을 취소하는 다양한 방법에 대해 정리한 내용이다.1. 상황 정리: 푸시하지 않은 커밋을 되돌리고 싶을 때다음과 같은 상황을 가정해보자.git commit -m "불필요한 임시 로그를 커밋해버림"# 하지만 아직 git push는 하지 않은 상태이때 가장 먼저 고민해야 할 것은 다음 질문이다:커밋은 취소하고, 변경된 코드 내용은 유지할 것인가?커밋도 취소하고, 코드 변경 내용도 함께 버릴 것인가?여러 개의 커밋 중 특정 커밋만 골라 없애고 싶은가?이 질문에 따라 선택할 수 있는 방법이 달라진다.2. git reset으로 최근 커밋 취소하기..
시작하면서로컬에서 git push 명령을 실행했을 때 아래와 같은 오류 메시지를 마주한 경험이 있다.! [rejected] develop -> develop (fetch first)error: failed to push some refshint: Updates were rejected because the remote contains work that you do not have locally. 이 메시지는 단순히 "원격에 변경 사항이 있으니 먼저 가져오라"는 뜻이 아니다. 내부적으로는 로컬 브랜치와 원격 브랜치의 히스토리가 서로 다른 방향으로 분기되었기 때문에, fast-forward push가 거부된 상태를 의미한다.1. 내부 동작 관점에서 원인 분석Git은 push 명령 시 다음 조건을..
Java에서 enum은 단순한 상수 집합이 아니라, 내부적으로 클래스로 구현된 객체이다. 따라서 enum을 사용하는 문맥에 따라 그 처리 방식과 제약 사항이 달라질 수 있다. 본 글에서는 특히 switch문과 함께 사용할 때의 제약, 내부 동작 방식, 그리고 실무에서 enum을 안전하게 다루는 방법을 중심으로 설명한다.1. switch 문에서 enum 사용할 때의 문법적 제약Java에서는 switch문의 분기 대상이 enum 타입인 경우, case 절에서는 열거형 이름을 생략하고 상수명만 사용할 것을 요구한다.예를 들어 아래와 같이 enum이 정의되어 있다면,enum ActionType { INSTALL, UPDATE, DELETE, GET}다음과 같은 방식으로 switch문을 구성해야 한다.swi..
시작하면서Git을 사용하다 보면 이런 상황이 자주 생긴다."원격에는 develop 브랜치가 있는데, 로컬에는 없다. 그래서 로컬 브랜치를 만들고 원격 브랜치랑 연결하고 싶다." 이번 글에서는 이럴 때 사용할 수 있는 명령어를 정리해두자.원격 저장소에는 origin/develop 브랜치가 이미 존재함.하지만 로컬에는 develop 브랜치가 없음.로컬에서 develop 브랜치를 생성하고, 원격 브랜치와 연결(tracking) 해야 함.방법 1. checkout으로 로컬 브랜치 만들면서 연결하기git checkout -b develop origin/develop설명:-b develop: 로컬에 develop 브랜치를 새로 만든다.origin/develop: 원격 브랜치를 기준으로 브랜치를 만든다.이 명령어는 ..
레이블된 루프(Labeled Loop)자바(Java)에서는 반복문 앞에 레이블을 지정하여 사용할 수 있다.예제:public static void main(String[] args) { Loop1: // 레이블 Loop1 지정 for (int i = 1; i 출력 결과:첫 번째 for문위 코드에서는 'Loop1'이라는 레이블을 상위 for문에 지정하였다. 일반적으로 break문은 단일 반복문만 종료시키지만, 'Loop1' 레이블을 사용함으로써 break Loop1은 상위 for문까지 종료시킬 수 있다. 결과적으로 '두 번째 for문'은 출력되지 않는다. 레이블은 for문 뿐만 아니라 while이나 do-while 반복문에도 지정할 수 있다.예제:public class Test { publi..

1. 개요 해당 포스팅에서는 초기화의 방법과 초기화가 이루어지는 시점에 대해서 정리하고자 한다. 자바에서는 필드를 초기화 하기 위해 아래와 같은 방법들을 활용할 수 있다. (1) 명시적 초기화 (2) 생성자를 이용한 초기화 (3) 초기화 블록을 이용한 초기화 2. 명시적 초기화 class JavaModel{ private int num = 10; } 3. 생성자를 이용한 초기화 class JavaModel{ private int num; public JavaModel(int num) { this.num = num; } } 4. 초기화 블록을 이용한 초기화 (1) 인스턴스 초기화 블록 인스턴스가 생성될때마다 실행된다. class JavaModel{ private int num; { num = 100; } ..