Java

Backend/Spring

[Spring] 의존관계 자동 주입

🤔 의존관계 주입 방법 ✔ 생성자 주입 생성자를 통해서 의존 관계를 주입 받는 방법입니다. 생성자 호출 시점에 1번만 호출되는것이 보장됩니다. 호출되는 시점에 값을 딱 1번 세팅하고 그 다음부터는 수정되지 못하도록 막을 수 있습니다. ('불변, 필수' 의존 관계에 사용) @Component public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy ..

Algorithm/자료구조

[자료구조] 큐(Queue)의 이해와 구현 with 자바

🤔 Queue? '대기열'이라고 생각하면 이해가 쉬울 것 입니다. 흔히 게임에서 '큐 돌린다', '큐 잡혔다' 같은 말을 들은적이 있을 것 입니다 이때 큐는 Queue를 의미합니다. 큐는 FIFO(First In First Out)선입선출 즉, 먼저 들어간것이 먼저 빠진다 라는 특징이 있습니다. 즉 대기열처럼 데이터를 시간 순서에 따라 순차적으로 처리할때 쓰일 수 있습니다. 한쪽 끝에서는 삽입, 반대쪽 끝에서는 삭제 작업이 이루어지는 자료구조 입니다. ✔ Queue 인터페이스 만들기 실제 자바의 큐 인터페이스 에는 더 많은 메소드들이 있지만 큐의 특징적인 메소드만 우선 만들어보고 추후에 큐의 기능을 확장한 덱(Deque) 자료구조도 만들어보기 위해 최소한의 메소드만 만들어 보겠습니다. 메소드 메소드명 리..

Backend/Spring

[Spring] 컴포넌트 스캔

🤔 컴포넌트 스캔 스프링 빈을 등록할 때는 자바 코드의 @Bean 어노테이션을 통해서 설정 정보(AppConfig.java)에 직접 등록할 스프링 빈을 나열했다. 이렇게 등록해야할 스프링 빈이 많아지면 하나하나 등록하기도 힘들고 설정정보도 커지면서 누락하는 문제도 발생할 수 있다. 그래서 스프링은 설정 정보가 없어도 자동으로 스프링 빈을 등록하는 컴포넌트 스캔 이라는 기능을 제공한다. ✔ @ComponentScan @ComponentScan은 @Component 가 붙은 모든 클래스를 스프링 빈으로 등록한다.(싱글톤) 🚨 문제 하지만 이렇게 어노테이션을 사용하여 해당하는 클래스에 자동으로 등록하게되면 의존관계를 주입할 수 있는 방법이 없다. 이전에는 설정 정보(AppConfig)에서 원하는 의존관계를 설..

Backend/JPA

[JPA] SQL 중심적 개발의 문제점과 JPA를 사용해야 하는 이유

🤔Why ? 국비학원 커리큘럼을 따라 공부하며 계속 드는 생각이 있었다. 💡 이거 너무 불편한데? 💡 더 편한 방법은 없을까? 📌 첫 프로젝트 JDBC api를 사용해서 query문을 정확하게 한땀한땀 입력하여 처리했다 📌 두번째 프로젝트 sql Mapper(MyBatis)를 사용하여 개발 코드는 줄었지만 query문에 집중되어있고, 생산성이 떨어진다는 점은 같았다. 프로젝트를 진행하며 많은부분을 맡게되어 다양한 기능을 구현하다보니 하나의 기능을 수행하기 위해 무언가 절차가 많다는 생각이 들었다. 우연히 JPA소개 강좌를 듣게되었고 이렇게 편하게? 이렇게 빨리? 개발을 할 수 있다는 설레임에 바로 강의를 수강하게되었다. 💻자바 ORM 표준 JPA 프로그래밍 - 기본편 (김영한님) ✔ SQL 중심적인 개발..

장용석
'Java' 태그의 글 목록 (2 Page)