회고제로베이스를 처음 시작할 때 퇴근 후 강의 수강을 무리 없이 할 수 있을 거란 생각을 했던 지난날을 회상하며 어떤 방향으로 강의를 들어야지 기간 안에 최대한 다양한 지식을 쌓을 수 있을지에 대한 방향성을 잡는 고민에 빠졌고 그로 인한 슬럼프는 아직도 지속되는 중이다. 하지만, 계속해서 고민만 하고 있다면 이는 부트캠프를 하는 이유가 없다고 생각이 되어 천천히 뒤처진 진도를 쫓아가면서 방향성을 잡는 것이 현재로서는 최선이라는 결론을 내렸고, 주중에는 무리하지 않는 선에서 강의를 듣고, 주말에 많은 시간을 할애하여 강의를 수강하는 것이 어떻게 보면 방안이 되지 않을지 싶다. 이번 주 실습 과제로는 계좌 관리 시스템의 Back-End Programing을 진행하였으며, Spring Boot과 JPA 기반으..
임베디드 레디스 (Embedded Redis)- Redis의 임베디드 버전이다.- 어플리케이션 내에 직접 통합하여 사용할 수 있는 형태이다.- 어플리케이션과 함께 배포 및 실행할 수 있어, 외부 서버에 의존하지 않고도 빠르게 데이터 저장 및 조회기능을 사용할 수 있다.- 테스트 환경을 구성하거나, 작으 규모의 프로젝트에서 Redis를 간편하게 할 수 있도록 해준다.- 실제 운영 환경에서의 경우, 별도의 서버에 Redis 서버를 구축하여 사용하는 것이 대중적이다.사용 목적- SpinLock을 활용하여 동시성 제어를 수행할 수 있다.* SpinLock (스핀락) : 임계 구역(critical section)에 진입이 불가능할 때 진입이 가능할 때까지 루프를 돌면서 재시도하는 방식으로 구현된 락- 동시성 제..
트랜잭션(Transaction)- 데이터 베이스에서 수행되는 작업의 단위이다.- 여러 연산을 하나의 단위로 묶어 처리하는 것을 의미한다.- 데이터의 일관성과 무결성을 보장하는 데 중요한 역할을 한다.트랜잭션의 ACID 속성Atomicity (원자성)- All or Noting, 모든 작업이 실행되거나 혹은 모두 실행되지 않아야 한다.예시) A 계좌에서 B계좌로 송금할 때 "A 계좌 잔액 줄이기" 작업과 "B 계좌 잔액 늘리기" 작업은 함께 성공하거나 함께 실패하여야 한다.Consostency (일관성)- 모든 트랜잭션이 종료된 후에는 DB의 제약조건을 모두 지키고 있는 상태가 되어야 한다.예시) 잔액은 0원 이상이다. 이를 위반하는 트랜잭션은 모두 종단된다.Isolation ..
H2 Database란?자바 기반의 경량형 관계형 데이터베이스이다.H2 Database의 특징경량성H2 Database는 매우 가볍고 빠르다.메모리 내에서 실행할 수 있어 테스트 및 개발 환경에 적합하다.내장형 DBJava 애플리케이션에 쉽게 통합할 수 있는 내장형 데이터베이스입니다.별도의 서버 설치가 필요 없습니다.SQL 호환성표준 SQL을 지원하며, 다양한 데이터베이스와 유사한 문법을 사용한다.메모리 모드데이터를 메모리에 저장하여 빠른 성능을 제공하며, 테스트 용도로 자주 사용된다.웹 콘솔H2 Database는 웹 기반의 관리 콘솔을 제공하여 데이터베이스를 쉽게 관리할 수 있습니다.예제import java.sql.Connection;import java.sql.DriverManager;import j..
Lombok이란?- 자바 프로그래밍 언어에서 반복되는 코드의 양을 줄이고 생산성을 높이기 위해 사용되는 라이브러리이다.Lombok의 기능ㆍ@Setter, @Getter : Java Bean 규약에 있는 setter, getter를 자동으로 생성해준다.ㆍ@ToString : Object에 기본 구현된 ToString 대신 객체의 데이터를 보여주는 ToString을 자동으로 생성해준다.ㆍ@NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor : 객체 생성자를 자동으로 생성해준다.ㆍ@Data : Getter, Setter, ToString, Equals, hashCode 등 다양한 기능을 모두 제공해준다.ㆍ@Builder : 빌더 패턴을 자동 생성..
SOLID 원칙- 객체 지향 프로그래밍에서 좋은 설계와 유지보수 가능한 소프트웨어를 만들기 위한 다섯 가지 핵심 원칙을 제공한다.- 소프트웨어 개발 과정에서 코드의 유연성, 재사용성, 유지보수성을 높이는 데 중요한 역할을 한다.- SOLID는 각 원칙의 첫 글자를 따서 명명된 약어이다.ISP (Interface Segregation Principle, 인터페이스 분리 원칙)정의- 클라이언트는 자신이 사용하지 않는 인터페이스에 의존하지 말아야한다는 원칙이다.목표- 클라이언트가 자신이 필요로 하는 인터페이스만을 사용하도록 하여, 불필요한 의존성을 줄인다.예시public interface Workable { void work();}public interface Eatable { void eat();..