일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스프링 폼
- querydsl
- 지연로딩
- 낙관적락
- 이진탐색
- 연결리스트
- 힙
- 스토어드 프로시저
- 백트래킹
- shared lock
- 일대다
- CHECK OPTION
- 비관적락
- BOJ
- 동적sql
- 다대다
- execute
- fetch
- SQL프로그래밍
- 유니크제약조건
- dfs
- FetchType
- 데코레이터
- 즉시로딩
- PS
- 다대일
- JPQL
- 연관관계
- exclusive lock
- eager
- Today
- Total
목록전체 글 (555)
흰 스타렉스에서 내가 내리지
#변수 // 불변 변수 val a = 10 // 가변 변수 var a = 10 var a: Int = 10 #문자열 import java.util.Date fun main(){ val name = readLine() println("Hello, $name! Today is ${Date()}") } #배열 val a = emptyArray() val b = arrayOf("hello", "world") val c = arrayOf(1, 4, 9) val operations = charArrayOf('+', '-', '*', '/', '%') """ 중괄호 안에 들어있는 언어 요소를 람다라고 부른다. 인덱스를 표현하는 볍ㄴ수로 자동으로 선언되는 it를 사용한다. it 이외의 변수를 사용할 경우 컴파일 에러 ..

서버 - 컴퓨팅(CPU / RAM), 하드디스크, 랜카드 EC2 - 인스턴스(컴퓨팅), EBS(하드디스크), ✅ Amazon Elatstic Block Store(EBS) "EBS는 AWS 클라우드의 Amazon EC2 인스턴스에 사용할 영구 블록 스토리지 볼륨을 제공합니다. 각 Amazon EBS 볼륨은 가용 영역 내에 자동으로 복제되어 구성요소 장애로부터 보호해주고, 고가용성 및 내구성을 제공합니다. Amazon EBS 볼륨은 워크로드 실행에 필요한 지연시간이 짧고 일관된 성능을 제공합니다. Amazon EBS를 사용하면 단 몇 분 내에 사용량을 많게 또는 적게 확장할 수 있으며, 프로비저닝한 부분에 대해서만 저렴한 비용을 지불합니다." - 가상 하드드라이브 - EC2 인스턴스가 종료되어도 계속 유지..

✅ NAT Gateway 정의 : NAT Gateway는 VPC의 프라이빗 서브넷에 있는 인스턴스에서 인터넷에 쉽게 연결할 수 있도록 지원하는 가용성이 높은 AWS 관리형 서비스이다. - private 인스턴스가 외부의 인터넷과 통신하기 위한 통로 - NAT Instance는 단일 EC2 인스턴스 / NAT Gateway는 AWS에서 제공하는 서비스 - NAT Gateway / Instance 는 모두 서브넷 단위 - Public Subnet에 있어야 함 가용영역 B (Private Subnet)의 EC2 를 보자. 이 EC2은 IGW와 연결이 되어있지 않아 외부와 연결할 수 없다. 하지만 외부에 연결할 필요가 있을 때는 어떡할까? 그 때 사용하는 것이 NAT Gateway 혹은 NAT Instance ..

✅ 보안 그룹 :: Security Group - NACL :: Network Access Control List 와 함께 방화벽의 역할을 하는 서비스 - Port 허용 - 기본적으로 모든 포트는 비활성화 - 선택적으로 트래픽이 지나갈 수 있는 Port와 Source를 설정 가능 - Deny는 불가능 → NACL로 가능함 - 인스턴스 단위 - 하나의 인스턴스에 하나의 SG 설정 가능 - NACL의 경우 서브넷 단위 - 설정된 인스턴스는 설정한 모든 SG의 룰을 적용 받음 - 기본 5개, 최대 16개 ✅ 보안 그룹의 Stateful - 보안 그룹은 Stateful - Inbound로 들어온 트래픽이 별 다른 Outbound 설정 없이 나갈 수 있음 - NACL은 Stateless - Outbound가 no..

VPC는 원칙적으로 퍼블릭 인터넷에서 접근이 불가능하다. 다른 AWS 서비스들은 모두 퍼블릭으로 엔드포인트가 있어서 퍼블릭 인터넷에서 접근할 수 있는데, VPC 만큼은 외부에서 접근할 수 없다. AWS 내부도 마찬가지다. VPC내 EC2에서 S3 퍼블릭 엔드포인트에 직접적으로 접근할 수 없다. Internet Gateway를 통해 퍼블릭 인터넷으로 나간 다음에 다시 S3로 들어와야 한다. ✅ VPC :: Virtual Private Cloud - 정의 : 사용자의 AWS 계정 전용 가상 네트워크이다. VPC는 AWS 클라우드에서 다른 가상 네트워크와 논리적으로 분리되어 있다. EC2 인스턴스와 같은 AWS 리소스를 VPC에서 실행할 수 있다. IP 주소 범위와 VPC 범위를 설정하고 서브넷을 추가하고 보..

NAT :: Network Address Translation - 사설 IP가 공용IP로 통신할 수 있도록 주소를 변환해 주는 방법 3가지 종류 1. Dynamic NAT - 1개의 사설 IP를 가용 가능한 공인 IP로 연결 - 공인 IP 그룹에서 현재 사용가능한 IP를 가져와서 연결 2. Static NAT - 하나의 사설 IP를 고정된 하나의 공인 IP로 연결 - AWS Internet Gateway가 사용하는 방식 3. PAT :: Port Address Translation - 많은 사설 IP를 하나의 공인 IP로 연결 - NAT Gateway / NAT Instance가 사용하는 방식 CIDR :: Classless Inter Domain Routing - IP는 주소의 영역을 여러 네트워크 영..
객체를 생성하기 위해서는 1. 생성자 패턴 2. 정적 메소드 패턴 3. 수정자 패턴 4. 빌더 패턴 등을 사용할 수 있다. 빌더 패턴의 장점 1. 필요한 데이터만 설정할 수 있다. 2. 유연성을 확보할 수 있다. 3. 가독성을 높일 수 있다. 4. 변경 가능성을 최소화할 수 있다. 1. 필요한 데이터만 설정할 수 있다. 객체의 한 파라미터가 필요없는 상황이라면, 생성자나 정적 메소드를 사용하는 상황이라면 dummy 값을 넣어주어야 한다. , 빌더를 이용하면 동적으로 이를 처리할 수 있다. 2. 유연성을 확보할 수 있음. 클래스에 새로운 변수를 추가한다면, 생성자의 코드를 수정해야 하는 상황에 놓인다. 하지만 빌더 패턴을 이용하면 새로운 변수락 추가되는 등의 상황이 생겨도 기존의 코드에 영향을 주지 않을 ..
Data Transfer Object 프로세스 사이에서 데이터를 전송하는 객체이다. DTO를 사용하며 중요한 정보를 노출시키지 않고 서버 간 통신을 원활하게 촉진할 수 있다. DTO는 필요한 데이터만 전송할 수 있다. 계층 간 데이터 전송을 위해 도메인 모델 대신 사용되는 객체이다. DTO는 어떠한 비즈니스 로직을 가져서는 안되며, 저장, 검색, 직렬화, 역직렬화 로직만을 가져야 한다. 도메인 대신 DTO을 사용하면 좋은 이유 DTO 대신 도메인 모델을 계층간 전달에 사용하면, UI 계층에서 도메인 모델의 메소드를 호출하거나 상태를 변경시킬 수 있다. 또한 UI화면마다 사용하는 도메인 모댈의 정보는 상이하다. 하지만 도메인 모델은 UI에 필요하지 않은 정보까지 가지고 있다. 이런 모든 도메인 모델 속성이..

컨테이너가 각곽을 받게 된 것은 빠르게 변하는 시장에서 예측할 수 없는 고객의 요구사항에 기인한다. 이런 환경에서 우리는 더욱 빠르고, 안정적이며 효율적인 시스템 구축이 필요했다. 이러한 환경에서 비즈니스의 목표를 달성하기 위해서는 신뢰할수 있는 인프라 환경에서 애플리케이션 개발에만 집중할 수 있어야 하며, 고객의 트래픽에 따라 유연하게 대응할 수 있어야 한다. 그리고 무엇보다 보안에 안전해야 한다. 이러한 목표를 이루기 위해서 컨테이너 기술이 등장하게 되었다. 우리가 애플리케이션을 개발할 때 생각해보면, 우리는 우선 비즈니스 로직을 코드로 구현해야 한다. 그리고 데이터를 저장하고 사용하기 위해 데이터베이스를 활용하며 이를 연결하기 위한 환경변수들은 설정 파일로 분리한다. 또한 코드 개발을 위해 여러가지..
List responseDto = new ArrayList(); for(Folder folder : folders){ responseDto.add(FolderSimpleInfoDto.of(folder)); } return responseDto; 다음의 코드는 stream()과 람다식을 통해 한줄로 줄일 수 있다. return folders.stream() .map(FolderSimpleInfoDto::of) .collect(Collectors.toList()); folders.stream()으로 List를 스트림으로 변환하고, map(FolderSimpleInfodto::of) 로 각 Folder 객체를 FolderSimpleInfoDto로 변환한다. 마지막으로, collect(Collectors.toL..