분류 전체보기
Java String Pool (String Constant Pool) + String.intern()
String pool (String Constant Pool) + String intern() StringBuilder와 StringBuffer의 차이점에 대해 알기전에, Java가 String을 어떻게 관리하는지 먼저 알아보자. Java에서는 String을 저장하는데 2곳 의 메모리를 사용할 수 있다. ConstantPool Heap String의 생성 방법에 따라 다르게 두 영역에 다르게 저장된다. String을 생성하기 위해서 2가지 방법을 이용할 수 있다. String Literal(리터럴)을 이용하는 방법 new 연산자를 통해 String 객체의 생성자로 문자열 value 주입 String literal = "string!"; // 리터럴로 String 객체 생성 String newStr = n..
Spring properties, yml 암호화, 복호화 - jasypt 암복호화
Spring properties, yml 암호화 - Jasypt를 이용한 암호화 예제 코드는 깃허브에 있습니다 . - https://github.com/devYSK/Jasypt-example/tree/main Jasypt : Java Simplified Encryption 공식 홈페이지 : http://www.jasypt.org/ GitHub : https://github.com/ulisesbocchio/jasypt-spring-boot Jasypt is a java library which allows the developer to add basic encryption capabilities to his/her projects with minimum effort, and without the need ..
8주차 인터페이스
목표 자바의 인터페이스에 대해 학습하세요. 학습할 것 (필수) 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터페이스의 기본 메소드 (Default Method), 자바 8 인터페이스의 static 메소드, 자바 8 인터페이스의 private 메소드, 자바 9 인터페이스와 추상클래스의 차이점 추상(abstract) 클래스와 인터페이스(interface) 공통점과 차이점 추상(abstract) : ->사물이 지니고 있는 여러 가지 측면 가운데서 특정한 측면만을 가려내어 포착하는 것 객체의 개념을 이용하여 객체들을 여러 그룹으로 분류함으로써 얻는 장점이 무엇이 있을까? 객체 간의 차이점은 무시하고 객체들 간의 공통점을 파악하기 쉬움 객체..
7주차 패키지
목표 자바의 패키지에 대해 학습하세요. 학습할 것 (필수) package 키워드 import 키워드 클래스패스 CLASSPATH 환경변수 -classpath 옵션 접근지시자 package 키워드 패키지 (package) 패키지란 많은 클래스들을 체계적으로 관리하기 위해 존재한다. 패키지의 물리적인 형태는 "파일 시스템의 폴더" 이다. 또한, 파일 시스템의 폴더 기능만이 아니라 클래스의 일부분이다. 소스에 가장 첫 줄에 있어야하고, 패키지 선언은 소스 하나에 하나만 있어야한다. 패키지 이름과 위치한 폴더의 이름이 같아야한다. 패키지이름을 java 로 시작하면 안된다. 패키지는 폴더 또는 디렉토리로서, 우리는 기능이나 특징이 비슷한 클래스를 한대모아 하나의 패키지 않에 넣는다. 서로 관련된 있는 것을 묶어놓..
JPA 프로그래밍 스터디 13장 정리
웹 애플리케이션과 영속성관리 스프링이나 J2EE 컨테이너 환경에서 JPA를 사용하면 컨테이너가 트랜잭션과 영속성 컨텍스트를 관리해준다. J2EE: Java 2 Enterprise Edition 자바 기술로 기업환경의 어플리케이션을 만드는데 필요한 스펙들을 모아둔 스펙 집합 J2EE 애플리케이션 서버는 웹컨테이너와 EJB 컨테이너 둘다 있어야 한다. 톰캣은 웹 컨테이너일 뿐이다. 보통 애플리케이션 서버에는 웹 컨테이너, EJB 컨테이너가 있다. EJB 컨테이너 : Enterprise Bean(EJB 구성 요소)은 비즈니스 논리를 포함하는 Java 프로그래밍 언어 서버 구성 요소 Enterprise Bean에는 Session Bean, Entity Bean 및 Message-Driven Bean 등 세 가지..
JPA 프로그래밍 스터디 10장 정리
10장 객체지향 쿼리 언어 10.1 객체지향 쿼리 소개 다음은 가장 단순한 검색방법이다. 식별자로 조회 : EntityManager.find() 객체 그래프 탐색 L (예:a.getB().getC()) ORM을 사용하면, 테이블 대상이 아닌 엔티티 개체를 대상으로 쿼리하는 방법이 필요하다. 엔티티 대상으로 쿼리하는 것을 JPQL(객체지향 SQL, 쿼리) 이라고 한다. 테이블이 아닌 객체를 대상으로 검색하는 객체지향 쿼리 SQL을 추상화해서 특정 데이터베이스 SQL에 의존하지 않는다. SQL : 데이터베이스 테이블을 대상으로 하는 쿼리 JPQL : 엔티티 객체를 대상으로 하는 객체지향 쿼리 JPQL을 사용하면 JPA는 이 JPQL을 분석한 다음 적절한 SQL을 만들어 데이터베이스를 조회한다. JPA는 JP..
JPA 프로그래밍 스터디 11장 정리
소스코드는 다음 깃허브에 있습니다 https://github.com/devYSK/study_repo/tree/main/%EC%9E%90%EB%B0%94ORM%20JPA%20%EC%8A%A4%ED%84%B0%EB%94%94/11%EC%9E%A5 [GitHub - devYSK/study_repo: 개인 공부 레포 개인 공부 레포. Contribute to devYSK/study_repo development by creating an account on GitHub. github.com](https://github.com/devYSK/study_repo/tree/main/%EC%9E%90%EB%B0%94ORM%20JPA%20%EC%8A%A4%ED%84%B0%EB%94%94/11%EC%9E%A5) JPA 프로..
JPA 프로그래밍 스터디 9장 정리
9장 값 타입 JPA에서 데이터 타입은 엔티티(Entity) 타입과 값(value) 타입으로 분류할 수 있다. 엔티티 타입 @Entity 어노테이션으로 정의 영속성 컨텍스트 내에서 식별자를 통해 지속적으로 추적가능한 객체 생명 주기가 있음 - 생성, 영속화, 소멸하는 생명 주기 존재 값 타입 int, Integer, String 처럼 단순히 값으로 사용하는 자바 기본 타입 또는 객체 식별자가 없음 생명 주기를 엔티티에 의존 값 타입은 3가지로 나눌 수 있다. 기본값 타입 (basic value type) 자바 기본 타입(int, double, ...) 래퍼 클래스(Integer, ...) String 임베디드 타입 - JPA에서 사용자가 직접 정의한 값 타입 컬렉션 값 타입 - 하나 이상의 값 타입 저장..
JPA 프로그래밍 스터디 8장 정리
8장 프록시와 연관관계 관리 프록시와 즉시로딩, 지연로딩 프록시를 사용하면 연관된 객체를 처음부터 데이터베이스에서 조회하는것이 아니라, 실제 사용하는 시점에 데이터베이스에서 조회할 수 있다. 하지만 자주 함께 사용하는 객체들은 조인을 사용해서 함께 조회하는 것이 효과적이다. JPA는 즉시 로딩과 지연 로딩이라는 방법으로 둘을 모두 지원한다. 영속성 전이와 고아 객체 JPA는 연관된 객체를 함께 저장하거나 함께 삭제할 수 있는 영속성 전이와 고아 객체 제거라는 편리한 기능을 제공한다. ✅ 8.1 프록시 회원과 팀의 단방향 연관관계 @Entity @Data public class Member { private String username; @ManyToOne private Team team; } @Entit..
JPA 프로그래밍 스터디 7장 정리
7장 고급 매핑 ✅ 7.1 상속 관계 매핑 관계형 데이터베이스에는 객체지향 언어에서 다루는 상속이라는 개념이 없다. 대신 슈퍼타입 서브타입 관계(Super-Type Sub-Type Relationship)라는 모델링 기법이 객체의 상속 개념과 가장 유사하다. 슈퍼타입, 서브타입 관련 포스팅 슈퍼타입 서브타입 논리 모델을 실제 물리 모델인 테이블로 구현할 때는 3가지 방법을 선택할 수 있다. (조인 전략) : 각각의 테이블로 변환 - 모두 테이블로 만들고 조회할 때 조인을 사용 단일 테이블 전략 : 통합 테이블로 변환 - 테이블을 하나만 사용해서 통합 구현 클래스마다의 테이블 전략 : 서브타입 테이블로 변환 - 서브 타입마다 하나의 테이블을 추가한다. 🔸 7.1.1 조인 전략 (JOINED) 조인 전략은 ..