Spring 32

Spring의 정의

스프링이란? 자바 엔터프라이즈 어플리케이션 개발에 사용되는 JAVA 기반의 프레임워크로서 여러 모듈로 구성되어 있는데, 이중 웹 어플리케이션을 만들고자 등장한게 SpringMVC 모듈이다 (SpringFramework는 웹 프레임워크가 아니다. ) 스프링이 제공하는 세가지 핵심 프로그래밍 모델 1. IoC / DI 오브젝트의 생명주기와 의존관계에 대한 프로그래밍 모델. 객체지향 설계 원칙과 디자인 패턴의 핵심 원리를 담고 있으며 프레임 워크의 근간으로 삼고 있다. 스프링이 직접 제공하는 모든 기술과 API, 심지어 컨테이너도 IoC/DI 방식으로 작성되어 있다. 2. 서비스 추상화 이식성이 뛰어나다.(서버, 특정 기술에 종속 되지 않는다.) 3. AOP 애플리케이션 코드에 산재해서 나타나는 부가적인 기능..

Spring 2020.03.17

Spring Legacy Project 생성,시작하기(MVC모델)

여기서 다룰 부분은 Spring Legacy Project의 MVC모델 템플릿을 가져다 사용하는 것이다. Legacy System 이란?? 낡은, 유산이란 사전적인 의미가 있지만, Legacy system이라는 것은 현장에서는 낡아서 버릴게 아니라 이미 이전부터 사용된 손 델 필요가 없거나 손데기 싫은 주 시스템 (core, bases)를 의미한다. STS4 버전 이후부터는 'Spring Boot'가 기본이고, 'Spring Legacy Project' STS3까지 지원 했기 때문에 Spring Legacy Project로 프로젝트를 생성하기 위해선 STS3 버전을 쓰던가 아님 STS4에서 Spring Legacy Project 탬플릿을 사용할 수 있게 해주는 Plug-in을 설치해야 한다. Plug-i..

Spring 2020.03.17

간단한 성적 처리 웹 페이지 생성하기3 (Service 구현)

github : https://github.com/leewoopyo/exam/tree/exam_v3 MVC 모델(해당 글에서는 이전 것에 추가해 Service를 구현할 것임) Service는 MVC모델에서 비지니스적 로직을 처리하는 영역이다. 복잡한 업무 처리 등을 행함 (해당 프로젝트에선 딱히 업무 처리는 없고 단순 CRUD만 있음) 성적 처리 페이지에서 Service 영역 구현 앞에서 만든 성적관리 웹 페이지에서 MVC모델에서 추가로 Service영역을 구현해 놓은 버전이다. (앞에서 만든 성적관리 웹 페이지 : https://woopi1087.tistory.com/23) ● Service영역 1. ServiceIO(DTO)(ExamSIO.java) 컨트롤러(controller)와 데이터 교환하기 위..

Spring 2020.03.16

간단한 성적 처리 웹 페이지 생성하기2 (Repository 구현)

github : https://github.com/leewoopyo/exam/tree/exam_v2 MVC 모델(해당 글에서는 Repository만 구현할 것임) Repository는 MVC모델에서 DB를 다루는 영역이다. DB에 직접 연결하여 CRUD하는 영역이라고 볼 수 있다. CRUD? : Create, Read, Update, Delete 성적 처리 페이지에서 Repository 영역 구현 앞에서 만든 성적관리 웹 페이지에서 MVC모델의 Repository 영역을 구현해 놓은 버전이다. (앞에서 만든 성적관리 웹 페이지 : https://woopi1087.tistory.com/22) ● Repository영역 1. ReporitoryIO(domain)(ExamRIO.java) 실제 DB에서 다루는..

Spring 2020.03.16

간단한 성적 처리 웹 페이지 생성하기1 (테이블 생성,삭제,데이터 조회)

github : https://github.com/leewoopyo/exam/tree/master github에 repository 생성 우선, github로 버전을 관리하기 위해서 github에 repository를 하나 생성할 것이다. 내 작업 폴더에 해당 repository를 생성 할 폴더 생성 후 SourceTree로 github에 생성한 해당 repository의 클론 생성 1. github에 생성한 repository 주소 복사 2. SourceTree 실행 후 Clone만들기에서 주고 붙여넣고 폴더 경로를 내가 생성한 폴더로 설정 3. 생성 확인 성적 관리 프로젝트 생성 1. File --> New --> Dynamic Web Project 클릭 2. 프로젝트 이름과 위에서 만든 경로로 설정..

Spring 2020.03.16

Spring 다운, 설치, 한글 설정(UTF-8)

스프링 다운 : https://spring.io/ Spring Tools 4 다운로드 (자신의 컴퓨터 환경에 맞게 다운) 다운 받으면 jar파일 하나를 다운 받게 되는데, (spring-tool-suite-4-4.5.1.RELEASE-e4.14.0-win32.win32.x86_64.self-extracting) 압축 해제하면, (sts-4.5.1.RELEASE)와 같은 폴더가 생성됨 실행 가능 작업 공간 생성 sts실행 시 작업환경 경로로 설정하고 실행 실행 실행 화면(나는 이미 몇개 진행한 폴더가 있어서 왼쪽 에 프로젝트 몇개가 있음 ) UTF-8 설정을 위해서 설정에 들어감 Window --> preferences (설정) 설정 화면 General --> Workspace --> Text file E..

Spring 2020.03.16

Spring FrameWork 에서 CSS파일 JS파일 가져오기가 안될 때

Dynamic Web Project에서는 상대경로로 그냥 js파일이나 css파일을 읽어 올 수 있었다. 그런데, Spring STS 를 사용해서 프로젝트를 만들었을 경우 (Spring Legacy Project --> Spring MVC Project) 상대경로로 읽을 시 경로를 계속 읽을 수 없다고 나왔다. 그래서 찾아보니 프로젝트 안에 있는 servlet-context.xml에서 해당 파일들을 불러오는 디렉토리를 미리 설정해 놓고 있었다. servlet-context의 역활 : web application내에 있는 모든 서블릿들을 관리하며 정보공유할 수 있게 도와 주는 역할을 담당한다. 쉽게 말하면 웹 애플리케이션의 등록정보 정도로 생각하면 좋을 듯. servlet이란?? : 클라이언트가 어떠한 요청..

Spring 2020.02.12

IOC container, DIP, DI Framework

Inversion of Control(IOC) IOC : Inversion of Control (제어의 역전): 프로그래머가 작성한 프로그램이 재사용 라이브러리의 흐름 제어를 받게 되는 소프트웨어 디자인 패턴을 말한다. 전통적인 프로그래밍에서 흐름은 프로그래머가 작성한 프로그램이 외부 라이브러리의 코드를 호출해 이용한다. 하지만 제어 반전이 적용된 구조에서는 외부 라이브러리의 코드가 프로그래머가 작성한 코드를 호출한다. 설계 목적상 제어 반전의 목적은 다음과 같다. 작업을 구현하는 방식과 작업 수행 자체를 분리한다. 모듈을 제작할 때, 모듈과 외부 프로그램의 결합에 대해 고민할 필요 없이 모듈의 목적에 집중할 수 있다. 다른 시스템이 어떻게 동작할지에 대해 고민할 필요 없이, 미리 정해진 협약대로만 동작..

Spring 2020.02.11

Bean VS POJO

1. Spring Bean이란? 자주 사용하는 객체를 singleton으로 만들어 놓고 어디서든 불러쓸 수 있도록 한 것. Repository, Service, Controllor 역활을 하는 java클래스를 Bean이라고 생각하면 될 것 같다. ******* 스프링에서의 POJO(Plain Old Java Object)를 Bean이라고 한다. 2. POJO란? POJO Plain Old Java Object, 간단히 POJO는 말 그대로 해석을 하면 오래된 방식의 간단한 자바 오브젝트라는 말로서 Java EE 등의 중량 프레임워크들을 사용하게 되면서 해당 프레임워크에 종속된 "무거운" 객체를 만들게 된 것에 반발해서 사용되게 된 용어이다. 2000년 9월에 마틴 파울러, 레베카 파슨, 조쉬 맥킨지 등이..

Spring 2020.02.11