Dev37 Internet Gateway와 NAT Gateway의 차이점은 무엇인가? AWS에서 VPC를 구성할 때 Internet Gateway와 NAT Gateway를 각각 생성하게 된다. Internet Gateway와 NAT Gateway는 공통적으로 VPC(Virtual Private Cloud) 내 리소스와 인터넷 간 통신을 가능하게 해 준다. 그러나 그 사용 목적과 적용되는 서브넷에 따라 차이가 있다. Internet Gateway Internet Gateway는 VPC와 인터넷 사이에서 양방향 통신을 가능하게 하는 장치다. VPC에 Internet Gateway를 연결하면 퍼블릭 서브넷에 있는 인스턴스들이 퍼블릭 IP를 통해 인터넷에 직접 접근할 수 있다. 이를 통해 VPC 내 리소스가 인터넷과 자유롭게 통신할 수 있다. Internet Gateway를 사용하여 외.. 2024. 11. 1. MyBatis 문법 MyBatis 문법 SQL 매핑 파일 (XML)MyBatis는 SQL 매핑 파일을 사용하여 SQL 쿼리와 자바 메서드를 매핑한다.이 파일은 요소로 시작하고,, , , 등의 요소를 사용하여 각각의 SQL 쿼리를 정의한다. #{}MyBatis에서는 SQL 쿼리에 매개 변수를 바인딩하여 동적인 쿼리를 생성할 수 있다.#{} 형식을 사용하여 매개 변수를 바인딩할 수 있다.예를 들어, WHERE id = #{userId}와 같은 형식으로 매개 변수를 사용할 수 있다. resultMapSQL 쿼리의 결과를 자바 객체에 매핑할 수 있다. 요소를 사용하여 결과 매핑을 정의하고, resultType 속성을 사용하여 자바 객체의 클래스를 지정할 수 있다. 요소를 사용하여 각 열을 자바 객체의 속성에 매핑한다. .. 2024. 11. 1. MyBatis 내부 구조 MyBatis Java 객체와 SQL문 사이의 자동 매핑 기능을 지원하는 Persistence Framework다. SQL을 별도의 파일로 분리해서 관리하며, 객체와 SQL 간의 파라미터 매핑 작업을 자동으로 처리한다. ✅ Persistence Framework 데이터의 저장, 조회, 변경, 삭제를 다루는 클래스 및 설정 파일들의 집합이다. MyBatis 특징간단하고 직관적인 Persistence Framework다. SQL을 그대로 사용할 수 있다. Spring MyBatis Core ComponentDataBase Access Architecture 위 이미지는 MyBatis와 MyBatis-Spring을 사용하여 데이터베이스에 접근하는 구조를 보여준다.각 계층의 역할은 다음과 같다. 계층.. 2024. 11. 1. Wrapper Class는 무엇인가? Wrapper ClassWrapper Class는 Primitive Type의 객체 버전이다. Primitive Type은 다음과 같은 한계가 있다.객체가 아니다. Primitive Type은 객체가 아니므로 메서드를 제공할 수 없다.null 값을 가질 수 없다. Primitive Type은 null 값을 가질 수 없다.때로는 데이터가 `없음`이라는 상태를 나타내야 할 필요도 있다. Wrapper Class 종류Primitive TypeWrapper ClassbyteBytecharCharacterintIntegerfloatFloatdoubleDoublebooleanBooleanlongLongshortShort Wrapper Class는 java.lang 패키지에 포함되어 있으며 Primitive Ty.. 2024. 10. 31. 객체의 불변성(Immutability)이란 무엇인가? 객체의 불변성(Immutability)이란?객체가 불변(immutable)하다는 것은 생성 후 객체의 상태가 변경되지 않는다는 뜻이다. 즉, 객체를 처음 만들었을 때의 상태를 끝까지 유지한다는 말이다. 불변성의 중요성불변 객체는 여러 장점이 있다. 가장 큰 장점은 동기화 문제를 피할 수 있다는 것이다. 객체 상태가 바뀌지 않으므로 여러 스레드에서 동시에 접근해도 Thread-safe 하다. 또한, Side Effect가 없어 설계가 용이하며 캐싱에도 유리하다. Java에서 불변 객체를 만드는 방법setter 메서드 제공 ❌ 객체의 상태값을 변경하는 setter 메서드를 아예 만들지 않는 방법이다. 상태 값을 변경할 필요가 없는 클래스에 setter 메서드를 추가하는 건 불필요하다. final cl.. 2024. 10. 30. 다형성 (Polymorphism) 다형성 (Polymorphism) 다형성이란 하나의 객체에 여러 가지 타입을 대입할 수 있다는 것을 의미한다.자바에서는 다형성으로 인해 객체 지향 프로그래밍의 이점을 극대화할 수 있다. 하나씩 알아보자. 오버로딩오버로딩은 같은 이름의 메서드를 매개변수의 개수나 타입에 따라 여러 형태로 정의하는 방식이다. 오버라이딩오버라이딩은 상속받은 부모 클래스의 메서드를 자식 클래스에서 재정의하는 방식이다. 추상 클래스추상 클래스는 부모 클래스는 제공하지만, 실제 생성되면 안 되는 클래스를 추상 클래스라 한다. 추상 클래스는 이름 그대로 추상적인 개념을 제공하는 클래스다. 따라서 실체인 인스턴스가 존재하지 않는다. 대신에 상속을 목적으로 사용되고 부모 클래스 역할을 담당한다. 인터페이스 인터페이스를 구현하.. 2024. 10. 30. 이전 1 2 3 4 5 ··· 7 다음