전체 글 876

스프링 핵심 원리 기본편 강의 - Bean scope & Bean lifecycle

빈 스코프 스프링 빈은 스프링 컨테이너의 시작과 함께 생성 되어서 스프링 컨테이너가 종료될 때까지 유지 되는데, 이는 기본적으로 싱글톤 스코프로 생성 되기 때문이다. 다양한 스코프 지원 싱글톤 프로토 타입 스프링 컨테이너는 프로토 타입 빈의 생성과 의존관계 주입까지만 관여 하고 그 후는 관리 하지 않음. (매우 짧음) 웹 관련 스코프 request 웹 요청이 한번 들어왔다 나갈때까지 유지 session 웹 세션이 생성되고 종료될 때까지 유지 application 웹 서블릿 컨텍스트와 같은 범위로 유지 component scan 자동등록 @Scope("prototype") @Component public class HelloBean {} 수동 등록 @Scope("prototype") @Bean Protot..

스프링 핵심 원리 기본편 강의 - 스프링

스프링이란? Spring framework / Spring boot 필수 Spring batch, Spring Session, Spring Data 등등 스프링프레임워크 핵심기술 웹기술 데이터 접근 기술 기술 통합 테스트 언어 스프링 부트 최근에 기본으로 사용 Spring Application을 쉽게 생성 내장 톰캣 지원 손쉬운 빌드 구성을 위한 starter 종속성 제공 프로덕션 준비 기능 제공 간결한 설정 스프링 부트만 사용 할 수 없고, 실제는 스프링 프레임워크를 사용한다. 스프링이란 단어? 스프링 생태계 스프링 프레임워크 스프링 DI 컨테이너 기술 스프링 진짜 핵심 자바 언어 - 객체 지향 언어 스프링은 객체 지향 언어가 가진 강력한 특징으로 개발 할 수 있도록 돕는 프레임워크 다형성 / 객체 역..

스프링 핵심 원리 기본편 강의 - 싱글톤

우리가 만들었던 스프링 없는 순수한 DI 컨테이너인 AppConfig는 요청을 할 때 마다 객체를 새로 생성한다. 고객 트래픽이 초당 100이 나오면 초당 100개 객체가 생성되고 소멸된다! 메모리 낭비가 심하다. 해결방안은 해당 객체가 딱 1개만 생성되고, 공유하도록 설계하면 된다. 싱글톤 패턴 싱글톤 패턴: 클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴이다. 그래서 객체 인스턴스를 2개 이상 생성하지 못하도록 막아야 한다. 싱글톤 방식의 주의점 싱글톤 패턴이든, 스프링 같은 싱글톤 컨테이너를 사용하든, 객체 인스턴스를 하나만 생성해서 공유하는 싱글톤 방식은 여러 클라이언트가 하나의 같은 객체 인스턴스를 공유하기 때문에 싱글톤 객체는 상태를 유지(stateful)하게 설계하면 안된다..

스프링 핵심 원리 기본편 강의 - OOP와 스프링

https://www.inflearn.com/course/스프링-핵심-원리-기본편 [스프링 핵심 원리 - 기본편 강의 - 인프런 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., 스프링 핵심 원리를 이해하고, 성장하는 백엔드 개발자가 되어보세요! 📢 www.inflearn.com](https://www.inflearn.com/course/스프링-핵심-원리-기본편) 좋은 객체 지향 설계의 5가지 원칙의 적용 여기서 3가지 SRP, DIP, OCP 적용 SRP 단일 책임 원칙 한 클래스는 하나의 책임만 가져야 한다. 클라이언트 객체는 직접 구현 객체를 생성하고, 연결하고, 실행하는 다양한 책임을 가지고 있음 SRP 단일 책임 원칙을 따르면서 관심..

유용한 mac os app을 찾는 방법 (based on open source)

https://indiegoodies.com/awesome-open-source-mac-apps Open Source Mac Apps - Indie Goodies Awesome open source Mac apps indiegoodies.com 여러 가지 맥에서 사용 할 수 있는 오픈 소스 기반의 앱들이 잘 정리가 되어 있다. 그런데, 간혹 이미 업데이트가 진행 된지 오래 된 앱들도 있는데, 잘 확인 해보고 다운로드 받아서 사용하면 될 것 같은데, 내가 굉장히 많이 사용하는 앱들도 다 있어서, 편리해서 좋다.

MacOS 2024.03.17

ktlint lint 적용

ktlint 정상혁님이 써주신, kotlin lint를 위한 가이드 문서가 잘 소개되어 있습니다. https://blog.benelog.net/ktlint 해당 방식에서는 크게 보면 총 2가지의 방식을 설명하고 있습니다. gradle 빌드 설정 IntelliJ 설정 위와 같은 방식 중에서 review repo, point repo에 도입한 방식은 첫번째 방식인 gradle build 설정을 통한 kotlin lint를 도입하였습니다. https://kotlinlang.org/docs/coding-conventions.html kotlin 언어의 coding convention은 kotlin official로 정의를 하고 있는 특정한 규약들이 있습니다. (java의 경우, Google style guide..

SQL Join

매번, Join 데이터 구성이 어떻게 되더라.. 기억이 가물 가물 한데, 스택오버플로우에 좋은 그림이 있어서 가져왔다. 사실 left join, inner join 제외 하고 잘 안써본듯.. https://stackoverflow.com/questions/3308122/how-do-i-decide-when-to-use-right-joins-left-joins-or-inner-joins-or-how-to-dete How do I decide when to use right joins/left joins or inner joins Or how to determine which table is on which side? I know the usage of joins, but sometimes I come ac..

DB 2024.02.06

JPQL

JPQL Type Expression 문자 'Hello' 숫자 10L(Long) 10D(Double) 10F(Float) Boolean ENUM package path 포함 Entity TYPE(m) = 상속관계 select i from Item i where type(i) = Book 조건식 - CASE 식 기본 CASE 식 select case when m.age = 60 then '경로요금' else '일반요금' end from Member m 단순 CASE 식 select case t.name when '팀A' then '인센티브 110%' when '팀B' then '인센티브 120%' else ..

프로그래밍/JPA 2024.01.10

값 타입

기본값 타입 JPA의 데이터 타입 분류 엔티티 타입 @Entity로 정의 하는 객체 데이터가 변해도 식별자로 지속해서 추적 가능 값 타입 int, Integer, String처럼 단순한 값으로 사용하는 기본 타입이나 객체 식별자가 없고 값만 있어서 변경시 추적 불가 값 타입 분류 기본값 타입 primitive type wrapper class type String embedded type (복합 값타입) collection value type 기본 값 타입 생명주기를 엔티티의 의존 값 타입은 공유하면 안됨 임베디드 타입 새로운 값 타입을 직접 정의할 수 있음 JPA는 임베디드 타입이라고 함 주로 기본 값 타입을 모아서 만들어서 복합 값타입이라고 함 int, String과 같은 값 타입 @Embeddabl..

프로그래밍/JPA 2024.01.10

kotest 관련 @Transactional rollback 안되는 이슈

test 코드의 상위 패키지 레벨에 아래 설정을 넣어준다. object KotestConfig : AbstractProjectConfig() { // rollback 관련 동작 안해서 아래 설정 추가 override fun extensions() = listOf(SpringTestExtension(SpringTestLifecycleMode.Root)) } https://kotest.io/docs/framework/project-config.html Project Level Config | Kotest Kotest is flexible and has many ways to configure tests, such as configuring the order of tests inside a spec, or h..

반응형