Spring 기초

·코딩딩/Spring
IoC(Inversion of Control)컨테이너의 사용 어노테이션을 이용한 객체주입컨테이너가 어노테이션 기호를 보고 객체를 생성해서 자동으로 연결시켜준다.스프링컨테이너가 생성될때 설정파일에 등록된 패키지를 스캐닝해서 어노테이션 기호가 추가된 객체들을 생성하고 관계를 설정한다.컨테이너가 생성될때 특정 패키지를 읽어서 작업해야 하므로 태그를 이용해서 생성하고 싶은 객체가 있는 패키지를 등록해야 한다.생성자, 필드, setter메소드를 통해서 주입받을 수 있다. 빈생성스프링 컨테이너가 관리할 수 있도록 하려면@component : 기본빈으로 정의하고 등록할때@Service : 서비스 역할을 하는 빈을 등록@Repository : db연동을 위한 빈을 등록@Controller : 스프링웨 MVC에서 사용하..
·코딩딩/Spring
프레임워크 완성된 소프트웨어가 아니라 어떤 문제를 해결하기 위해서 만들어진 미완의 모듈로 모든 자바 개발자들이 공통으로 사용하는 기능을 미리 만들어서 제공하는 프로그램(해결해야 하는 문제 - 내가 개발해야 하는 시스템⇒ 교육시스템, 예약시스템, 인터넷뱅킹, 쇼핑몰…)재사용이 가능한 모듈, 일반적으로 프레임워크를 이용해서 개발하는 시스템들의 공통모듈들은 프레임워크에서 제공하는 기능을 이용해서 개발공통모듈 - DB연동, 트랜젝션처리, 뷰관리, 로그기록, 보안, 다국어처리, 메시징…검즘받은 프로그램으로 신뢰성 높은 시스템을 개발할 수 있다.프레임워크를 사용하면 개발자들간의 의사소통이 가능대부분 개발자들이 직접 개발하고 처리하던 작업을 프레임워크가 제공해주기 때문에 유지보수나 시스템 개발을 위해 필요한 시간을 ..
·코딩딩/Spring
JDBC Java DataBase Connectivity⇒ 자바가 DBMS와 연동하기 위한 기술 오라클에 접속하여 JDBC를 사용하기 전에 해야할일 오라클 드라이버를 다운로드모든 DBMS의 제조사 홈페이지에서 다운로드오라클이 설치되어 있는 경우 (XE)C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib의 ojdbc.jar파일ojdbc.jar파일 : 오라클 드라이버JVM이 인식할 수 있는 위치로 오라클 드라이버를 복사⇒ 코드를 실행하기 위해서 JVM이 찾을 수 있는 위치⇒ Build path에서 라이브러리 등록(Appllication 이므로, 웹인경우 lib에 복사) 자바로 DBMS 연동 oracle 드라이버 로딩클래스 로더를 이용해서 드라이버의 핵심 클래스를 ..
·코딩딩/Spring
실행 방법에 따른 자바 클래스의 구분서블릿서블릿 작성 규칙실행 방법에 따른 자바 클래스의 구분 Application : mian 메소드를 만들어서 실행java 클래스명 ———- |______________java 인터프리터가 public static void main(String[] args) 스펙의 메소드를 찾아서 실행Applet : html 태그로 삽입(지금은 안쓴다. 무겁다)servlet 서블릿 클라이언트의 요청을 처리하기 위한 자바기술서버에서 클라이언트의 요청을 처리하고 응답할 수 있도록 만들어진 객체클라이언트가 요청하면 서버에서 실행되면서 DB에 대한 처리, 서버의 리소스를 이용해서 만들어진 결과를 클라이언트에 응답클라이언트가 요청하면 서버가 요청한 서블릿을 찾아서 실행하므로 서버가 찾을 수 있..
·코딩딩/Spring
싱글톤 컨테이너 웹 애플리케이션과 싱글톤 스프링 없는 순수 DI 컨테이너 싱글톤 패턴 싱글톤 패턴의 문제점 싱글톤 컨테이너 싱글톤 컨테이너 스프링 컨테이너를 사용하는 테스터 코드 싱글톤 방식의 주의점 상태를 유지할 경우 발생하는 문제점 예시 @Configuration과 싱글톤 테스트 코드 @Configuration과 바이트코드 조작 AppConfig@CGLIB 예상코드 싱글톤 컨테이너 웹 애플리케이션과 싱글톤 스프링은 태생이 기업용 온라인 서비스 기술을 지원하기 위해 탄생했다. 대부분의 스프링 어플리케이션은 웹 어플리케이션이다. 물론 웹이 아닌 어플리케이션 개발도 얼마든지 개발할 수 있다. 웹 애플리케이션은 보통 여러 고객이 동시에 요청을 한다. 스프링이 없는 순수한 DI 컨테이너인 AppConfig는 ..
·코딩딩/Spring
Tomcat web server나 web application server프로그램을 설치한 컴퓨터는 웹에서 서비스를 제공할 수 있는 웹서버가 된다. web application 파일은 웹에서 실행되는 프로그램을 의미 ⇒ html, jsp, php, js, css was(wab application server)에서 인식 기본위치에서 index로 시작하는 파일을 찾아서 실행 : 어떤 was를 쓰냐에 따라 기본으로 인식하는 위치는 달라진다. was 종류에는 JEUS, JBOSS, Weblogic, websphere, tomcat 등 tomcat이 인식하는 기본 위치는 C:\Program Files (x86)\Apache Software Foundation\Tomcat 9.0\webapps 기본을 인식하는 폴..
·코딩딩/Spring
객체 지향 원리 적용새로운 할인 정책 개발새로운 할인 정책을 확장해보자새로운 할인 정책 적용과 문제점테스트가 끝난 새로운 할인 정책을 적용해보자.AppConfigAppConfig 리펙터링SpringAppConfig에 Spring 적용하기객체 지향 원리 적용 새로운 할인 정책 개발 새로운 할인 정책을 확장해보자 참고: 애자일 소프트웨어 개발 선언 https://agilemanifesto.org/iso/ko/manifesto.html기획자의 요구사항 변동으로 인해 FixDiscountPolicy를 RateDiscountPolicy로 변경할것이다.RateDiscountPolicy 추가 회원의 등급을 조회하고 VIP일때 할인 금액이였던 1000원을 return했던 FixdiscountPolicy와 다르게 pri..
·코딩딩/Spring
SOLID SRP OCP ★ LSP ISP DIP 스프링 SOLID 클린코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리 SRP 단일 책임 원칙 (single responsibility principle) 한 클래스는 하나의 책임만 가져야 한다. 하나의 책임이라는 것은 모호하다. 클 수도 있고, 작을 수도 있다. 문맥과 상황에 따라 다르다. 중요한 기준은 변경이다. 변경이 있을 때 파급효과가 적으면 단일 책임 원칙을 잘 따른 것 ex) UI의 변경, 객체의 생성과 사용을 분리 OCP ★ 개방 - 폐쇠 원칙 (Open/closed principle) 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다. 확장을 하려면 당연히 기존 코드를 변경해야 하지만 이는 다형성으로 극..
·코딩딩/Spring
예제 만들기 비즈니스 요구사항과 설계 회원 회원을 가입하고 조회할 수 있다. 회원은 일반과 VIP 두 가지 등급이 있다. 회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다. (미확정) 주문과 할인 정책 회원은 상품을 주문할 수 있다. 회원 등급에 따라 할인 정책을 적용할 수 있다. 할인 정책은 모든 VIP는 1000원을 할인해주는 고정 금액 할인을 적용해달라. (나중에 변경 될 수 있다.) 할인 정책은 변경 가능성이 높다. 회사의 기본 할인 정책을 아직 정하지 못했고, 오픈 직전까지 고민을미루고 싶다. 최악의 경우 할인을 적용하지 않을 수 도 있다. (미확정) 요구 사항을 보면 회원 데이터와 할인정책같이 수정될 수 있는 부분은 객체 지향 설계 방법으로 대비할 수 있다. 우선 스프..
·코딩딩/Spring
AppConfig라는 클래스를 구상영역으로 설정해주어 사용영역과 분리해줌으로써 DIP를 완성해주었다. package hello.core; import hello.core.member.Grade; import hello.core.member.Member; import hello.core.member.MemberService; import hello.core.order.Order; import hello.core.order.OrderService; public class OrderApp { public static void main(String[] args) { MemberService memberService; OrderService orderService; AppConfig appConfig = new ..
전낙타
'Spring 기초' 태그의 글 목록