전체 글

이것 저것 공부해보기 좋아하는 초보 개발자로, 제가 공부하는 내용들을 제가 이해하기 쉽게 작성합니다. 질문이나 지적은 언제나 환영합니다.
· Backend/JPA
클래스 Member의 구조 @Table(name = "member") @Entity @Setter @Getter @ToString(exclude = "certKey") @Builder @AllArgsConstructor @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Board { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "title", nullable = false) private String title; @Column(name = "content", nullable = false) private String content..
· AWS
내 경우는 웹 서버를 올릴 Public EC2, RDS가 존재하는 구조이다. 현재 RDS는 추후에 생성할 Private EC2랑만 연결되게끔 하기 위해 외부 접근이 불가능하게 설계되어 있어 RDS에 접근할 때마다 Public EC2에 접근해야했다. 그래서 PC에서 바로 RDS에 접근에 데이터를 보기 위해 터널링 하게 되었다. RDS 정보 설정하기 (내 경우에는 RDS가 MySQL이었다.) Connection 설정에서 RDS의 엔드포인트와 DB, username, password를 입력한다. SSH > Use SSH 터널 Public EC2가 하나일 경우(Public EC2 하나를 거쳐 RDS로 접근 가능한 경우) Use SSH 터널 설정을 활성화하고, Settings에 Public EC2 정보를 입력한다..
· Backend/Java
Java 소스 코드의 실행 과정요약자바 파일(.java)은 javac(=java compiler)에 의해 바이트 코드(.class)로 컴파일된다.JVM의 클래스 로더(Class Loader)가 필요한 클래스들을 로드 및 링크하여 JVM 메모리(Runtime Data Area)에 올린다.Java는 런타임(컴파일 타임 X)에 클래스를 처음 참조할 때에는 해당 클래스를 로드하고 링크하는 동적 로드를 한다. 이 동적 로드를 수행하는 부분이 JVM의 클래스 로더이다.클래스 로더의 특징계층 구조 : 부트스트랩 클래스 로더 > Extension 클래스 로더 > System 클래스 로더 순위임 모델 : 클래스 로더끼리 로드를 위임하는 구조로 동작한다. (이전에 로드 된 클래스인지 확인하기 위해 클래스 로더 캐시를 확인..
주요 SQL 문법 1. 다중 조건문 (CASE문) CASE WHEN [조건1] THEN [조건1가 참일 경우 반환 값] WHEN [조건2] THEN [조건2가 참일 경우 반환 값] ELSE [조건들이 모두 거짓일 경우 반환 값] END2. 특정 문자열 포함 여부 확인 예시에서 검사하는 컬럼은 VARCHAR2 타입으로 간주한다. LIKE를 사용하는 경우 : 특정 컬럼의 값에 주어진 문자열이 속한다면 참을, 그렇지 않다면 거짓을 반환한다. -- WHERE절의 조건문으로 사용 SELECT * FROM ITEMS WHERE ITEM_NAME LIKE '%문자열%'; -- CASE문의 조건문으로 사용 SELECT CASE WHEN ITEM_NAME LIKE '%문자열%' THEN &#..
1. Test Code 구조 AAA Pattern & GWT Pattern Arrange : 준비 Act : 실행 Assert : 단언/검증 💡 GWT Pattern : Given - When - Then 단계를 거치는 패턴으로, AAA의 각 단계와 대응된다. 2. Assertions Assertions.assertEquals(T expected, T actual) : 값 검증 Assertions.assertThrows(T expected, Executable e) : Exception 검증 // given Double num = 0.0; // when & then Assertions.assertThrows(RuntimeException.class, () -> { Double val = 1.0; val ..
· 개념
DNS Cf. L1 ~ L4 : Infrastructure 역할 수행 애플리케이션 수준에 존재하는 서비스 중에서도 Infrastructure에 해당하는 것들이 존재한다. 대표적인 것이 DNS(Domain Name Service) 체계이다. 분산 구조형 데이터베이스 데이터베이스 시스템(DNS 네임서버)의 분산 구성 데이터의 영역별 구분(Domain Zone) 및 분산관리 도메인의 네임서버 및 도메인 데이터는 해당 관리주체에 의해 독립적으로 관리된다. 트리(tree) 구조의 도메인 네임(Domain Name) 체계 Domain : 영역, 영토를 의미 도메인 네임의 자율적 생성 생성된 도메인 네임은 언제나 유일(Unique)하도록 네임 체계 구성 Domain 구조 www.naver.com 위의 URL주소에서 ..
· 개념
TCP와 UDP '연결' 이라는 개념 TCP에만 연결(Connection, Session, Circuit) 개념이 존재한다. 연결은 결과적으로 순서번호(Sequence Number)로 구현된다. 이는 1, 2, 3, … 과 같이 증가하는 것이 아니라, 차지하는 바이트(byte) 수만큼 증가한다. 예를 들어 첫번째 세그먼트(Segment)의 크기가 400byte라면 두번째 세그먼트는 401의 Sequence Number를 가지게 된다. 연결은 상태(전이) 개념을 동반한다. TCP 연결 과정(3-way handshaking) 연결 과정 중에는 헤더(Header)와 페이로드(Payload)로 나뉜 일반적인 형태의 세그먼트가 아닌 IP 주소, TCP 주소가 존재하는 헤더만 존재하는 형태의 세그먼트가 오간다. 연..
· 개념
TTL과 단편화 TTL(Time To Live) 세포의 텔로미어같은 역할을 수행한다. 라우터에서 다른 어떤 라우터를 지날 때 이 단위를 **홉(Hop)**이라고 하는데, 하나의 홉을 지날 때마다 TTL값이 1씩 낮아지다가 TTL값이 0에 이르도록 경로를 찾지 못하면 폐기된다. 단편화(Fragmentation) 단편화는 MTU 크기 차이로 발생한다. 수신하는 측의 MTU가 송신측보다 작을 때 (안그래도 작은) 패킷을 다시금 잘라서 전송하는 것을 의미한다. 이 때 패킷은 기존 패킷의 IP Header가 복제되고, 페이로드는 이등분되어 각 페이로드가 헤더가 붙는 형태로 쪼개지게 된다. 단편화는 다음 라우터의 MTU가 자신의 MTU 보다 작아 패킷이 쪼개져야할 때 수행된다. 쪼개져서 전달된 패킷은 통상적으로 수..
· 개념
Broadcast IP 주소 일반적으로 L2(Data-Link Layer)에서 MAC 주소를 가지고 통신함에 있어서 `FF-FF-FF-FF-FF-FF`은 브로드캐스팅을 위한 주소이다. L3(Network Layer)에서는 IP 주소의 호스트 부의 비트(bit)를 모두 1로 채우면 해당 네트워크에 방송(브로드캐스팅)하겠다는 것으로 인식된다. 예를 들어 192.168.0.255/24 (IP 주소가 192.168.0.255이고, 서브넷 마스크가 255.255.255.0인 경우)의 경우 호스트 부인 마지막 8bit가 모두 1인 것을 볼 수 있다. (255 -> `1111 1111`) 특수 목적의 IP 더불어서 네트워크에서 호스트에 할당할 수 없는 IP들은 아래와 같다. 호스트 부가 0인 경우 : 이는 곧 호스트..
· 개념
IP 주소 일반적으로 네트워크 계층 식별자인 IP 주소는 컴퓨터나 라우터에 고유한 주소로 할당되어 네트워크 통신시 상대를 특정 호스트로 지정할 수 있다. 전세계의 모든 호스트의 IP 주소는 유일해야 하기 때문에 IP 주소는 유한한 리소스이다. 현재 일반적으로는 IPv4를 사용하고 있다. 추후에 더 많은 IP 주소를 할당할 수 있게 되는 IPv6로 대체될 것이라고 예상되지만 아직은 일반적으로 IP 주소라고 하면 IPv4를 의미한다. IPv4를 기준으로 IP주소는 32bit로 구성된다. 때문에 0과 1를 이용해 아주 길게 표현할 수 있는데, 이는 너무 길고 복잡하기 때문에 1byte가 되는 8bit씩 4개의 옥텟으로 나누어 각 그룹을 십진수로 표현하고, 각 그룹을 `.`으로 구분하는 형식으로 표기한다. 서브..
devYH
모르는 것이 많습니다