목록java (6)
땃쥐네
이펙티브 자바의 아이템 1 생성자 대신 정적 팩터리 메서드를 고려하라 부분을 학습하고 정리한 내역을 포스팅해보겠습니다. 책에서는 p.8 ~ p.13 의 내용에 해당합니다. 1. 생성자의 한계, 그리고 정적 팩터리 메서드 Member member = new Member(); 클래스의 인스턴스를 얻는 1차적인 방법은 생성자가 있습니다. 하지만 반드시 생성자를 호출하지 않고도 정적 팩터리 메서드를 이용해 객체 인스턴스를 얻어올 수 있습니다. 2. 정적 팩터리 메서드의 장점 1 : 이름을 가질 수 있다 2.1 생성자 public class Member { private final String name; private final int age; private final Role role; public Member..
스터디 개요 주제 : 이펙티브 자바 일정 : 2023.08.03 시작 예정, 매주 목요일 21시 방식 : 각자 책을 읽어오고, 학습하면서 느낀 점/경험/공유하고 싶은 지식 등을 공유하는 시간 갖기 참가자 2명 땃쥐 : https://github.com/ttasjwi Hwi: https://github.com/hwicode 일정 1주차(2023.08.03) : 1장, 2장(~ Item 09) 2주차(2023.08.10) : 3장 (~ Item 14) 3주차(2023.08.17) : 4장 (~ Item 25) 4주차(2023.08.24) : 5장 (~ Item 33) 5주차(2023.08.31) : 6장 (~ Item 41) 6주차(2023.09.07) : 7장 (~ Item 48) 7주차(2023.09.1..
이전 글들에서 커넥션이란 무엇이고 커넥션을 어떻게 획득하는 지(datasource), 트랜잭션이란 무엇이고 왜 필요한 지 등을 한번씩 살펴봤습니다. - [Spring DB] 커넥션과 DataSource - [Spring DB] 순수 JDBC 기술로 CRUD - [Spring DB] 커넥션 풀을 통한 커넥션 획득 - [DataBase] 트랜잭션 및 트랜잭션의 4대 특성(ACID) 이전 글까지는 WAS 측에서의 커넥션을 살펴봤다면 이제 반대쪽 DB 입장에서의 커넥션을 살펴보고, 커넥션과 트랜잭션의 관계를 확인해봅시다. 커넥션, DB 세션, 트랜잭션 WAS와 DB가 커넥션을 맺으면 DB측에서는 '데이터베이스 세션'이란 것을 생성하게 됩니다. 이제 모든 커넥션을 통한 데이터베이스 조작 요청, 조회 요청, 트랜잭..
커넥션과 DataSource 해당 내용은 [Spring DB] 커넥션과 DataSource 에서 다뤘습니다. 간단하게 다시 정리해보겠습니다. 커넥션(Connection) 커넥션의 FQCN(Fully Qualified Class Name, 패키지를 포함하여 타입의 전체 이름)은 java.sql.connection 인터페이스로서, DBMS와의 물리적 연결을 추상화한 계층입니다. 데이터베이스 Driver를 통해 DB와 연결 후 그 연결정보를 담아 생성되는데 이 커넥션을 통해 우리는 DB에 SQL을 전달해 질의할 수 있습니다. DataSource(DataSource) java는 커넥션을 획득하는 방법을 DataSource 인터페이스로 표준화했습니다. 커넥션을 매번 획득하는 방식(DriveManager, Driv..
이전 글 - [Spring DB] 커넥션과 DataSource 이 글은 위의 글에서 이어집니다. 프로젝트 설정 ```groovy dependencies { implementation 'org.springframework.boot:spring-boot-starter-jdbc' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' // test에서 Lombok 사용 testCompileOnly 'org.projectlombok:..
1. gradle로 프로젝트 생성 - 빌드툴을 사용해서 프로젝트를 생성한다. - 빌드툴을 사용하는데는 여러가지 목적이 있는데 각종 라이브러리를 떙겨오기 편하도록 하기 위함. - 빌드툴을 통해 실행환경에서 외부 라이브러리를 어디서 무엇을 끌어올지 지정해 줄 수 있고, 자동으로 끌어올 수 있을 것. - 코드를 기반으로 라이브러리 의존성을 편리하게 관리할 수 있게 되고 github과 같은 원격 리포지토리를 통해 소스 파일을 clone 한 개발환경에서 별도의 외부 라이브러리를 끌어쓰지 않아도, 동일환경에서 실행할 수 있기 때문에 많이들 이를 사용하는 것 같다. 2. build.gradle 에서 assertJ 라이브러리 의존성 추가 testImplementation("org.assertj:assertj-core:..