본문 바로가기

컴퓨터학원(복습)(수료)

자바(JAVA)기반 안드로이드 웹&앱 개발 68일차 (JAVA SPRING 시작)

오늘은 환경구성하고 뭐 하느라 진도는 많이 안나간것 같네요.

[환경구축하기]

1. JDK 1.8 환경변수 설정

내 컴퓨터 속성 > 고급시스템설정 > 환경변수 > 시스템 변수에 변수, 값 추가

C:\Program Files\Java\jdk1.8.0_271 (제 컴퓨터에 설치된 경로입니다.)

설정해 준 변수를 Path 에 넣습니다.

2. STS 설치하기

저는 STS 로 하였습니다.

1) 해당 사이트에서 STS 4.16을 다운받습니다.

https://github.com/spring-projects/toolsuite-distribution/wiki/Spring-Tool-Suite-3

spring-projects/toolsuite-distribution

the distribution build for the Spring Tool Suite and the Groovy/Grails Tool Suite - spring-projects/toolsuite-distribution

github.com

왜 꼭 4.16인지는 모르겠습니다. 교안에는 4.16이 JDK 8을 지원하는 환경이고 그보다 높은 버젼을 사용하려면 JDK8(JDK11)여야 한다고 합니다. 톰캣은 JSP 할 때 다운받았어므로 생략합니다.(9.0 을 사용합니다.)

2) 해당 파일은 '반디집'으로 압축을 풉니다. 알집은 오류가 나더군요. (광고 아닙니다..)

반디집 - 반디집 설치파일 다운로드 (bandisoft.com)

3) 압축 푼 파일에서 sts-3.9.15.RELEASE 파일을 톰캣이 설치되었던 파일위치로 옮깁니다.

압축해제 한 파일에서 sts-3.9.15 RELEASE 파일만 잘라내서 옮긴 모습

4) sts-3.9.15 RELEASE 파일로 들어가서 STS.init 파일을 우클릭하여 편집으로 엽니다.

우클릭 후 편집클릭

5) 편집 창을 열면 메모장이 나오는데 사용하는 자바(1.8.0_291)경로에 javaw.exe 파일을 입력해줍니다.

-vm C:\Program Files\Java\jre1.8.0_291\bin\javaw.exe (저는 여기에 있습니다.)

-vm C:\Program Files\Java\jre1.8.0_291\bin\javaw.exe 입력

6) 해당 주소에서 lombok 을 다운받습니다.

(getter/setter, 생성자, toString() 등을 자동으로 생성해주는 프레임워크라고 합니다.)

https://projectlombok.org/download

 

Download

Download 1.18.20 changelog older versions Feeling adventurous? Download the latest snapshot release.

projectlombok.org

해당 주소에서 다운

7) 다운받음 lombok.zip을 여기에 풀기로 다운로드에 풉니다.

그 후 cmd를 실행하고 lombok 이 있는 다운로드 경로로 이동합니다.

cd C:\Users\404-03\Downloads (CMD에 입력, 404-03 부분이 사용자의 컴퓨터마다 달라집니다.)

그 후 java -jar lombok.jar 를 입력하면 해당 창이 나옵니다.

cmd 한 후 java -jar lombok.jar 입력 시 나오느 ㄴ창

8) specify locations 버튼을 클릭합니다. ( STS를 사용할 것이므로 이클립스 체크박스들은 해제합니다.)

아까 JSP 파일에 같이 풀었던 sts-3.9.15RELEASE 에서 STS.exe 를 선택합니다.

그 후 Install/Update 를 누른 후 Quit installer 를 합니다.

specify location 클릭 > 아까 JSP 파일에 분 sts 파일에서 STS.exe 선택

선택하였을 때 나타나는 STS.exe

9) 이제 STS.exe 를 실행합니다.(압축 푼 곳) 그리고 workspace를 본인이 원하는 위치를 선택하면 끝!

[스프링 프레임워크의 간략한 역사]

1. 경량 프레임워크 ( Light Weight Framework)

2. 차별성

1) 복잡함에 반기를 들어서 만들어진 프레임워크

2) 프로젝트의 전체 구조를 설계할 때 유용한 프레임 워크

3) 다른 프레임워크의 포용

4) 개발 생산성과 개발 도구의 지원

3. 버전 별 차이점

1) Spring 2.5 : 어노테이션을 활용하는 설정을 도입하면서 편리한 설정과 개발이 가능하도록 지원

2) Spring 3.0 : 별도의 설정 없이도 Java 클래스만으로 설정 파일을 대신

3) Spring 4.0 : 모바일/웹 환경에서 많이 사용하는 REST 방식의 컨트롤러 지원

4) Spring 5.0 : Reactor를 이용한 Reactive 스타일의 개발환경 지원 (잘 사용 안한다고 합니다.)

[스프링의 주요 특징] - IT 개념에서 해당 개념들에 대해서 정리해봐야겠네요.. 교안에 저렇게만 적혀있어요 ㅠ

1. POJO (Plain Old Java Object ) 기반의 구성

https://limmmee.tistory.com/8

2. 의존성 주입(DI)을 통한 객체 간의 관계 구성

https://devlog-wjdrbs96.tistory.com/165

 

[Spring] 스프링 의존성 주입(DI) 이란?

Spring 삼각형 스프링의 기반이 되는 설계 개념을 표현한 것 스프링이란 IoC와 AOP를 지원하는 경량의 컨테이너 프레임워크이다. 1. DI(Dependency Injection)이란? Inversion of Control 이라고도 하는 의존 관..

devlog-wjdrbs96.tistory.com

https://velog.io/@damiano1027/Spring-%EC%9D%98%EC%A1%B4%EC%84%B1-%EC%A3%BC%EC%9E%85-%EC%A0%9C%EC%96%B4%EC%9D%98-%EC%97%AD%EC%A0%84

 

[Spring] 의존성 주입, 제어의 역전

공부하며 작성한 내용이기 때문에 오류 사항이 있을 수 있습니다. 잘못된 부분은 피드백 부탁드립니다.Spring에서의 의존성 주입과 제어의 역전에 대해 알아본다. Spring에서의 의존성 주입이란 다음과 같다.어떤 객체에 스프링 컨테이너가 또 다른 객체와 의존성을 맺어주

velog.io

3. AOP (Aspect Oriented Programming) 지원

1) 시스템 전반에 필요한 기능들을 모듈화 시키고, 비지니스 로직을 가지는 객체와 결합하는 방식

2) cross-concern : 횡단 관심사로 번역

(1) 보안이나 로깅과 같이 시스템 여기저기서 필요한 공통적인 기능

3) AOP는 횡단 관심사를 분리하고, 이를 결합하는 기능이 필요한데 스프링은 이러한 기능을 프레임워크에서 지원

4) Spring AOP 는 Proxy 객체를 생성

(구글링해보니, Proxy 객체는 기본적인 동작(속성 접근, 할당, 순회, 열거, 함수 호출 등)의 새로운 행동을

정의할 때 사용한다고 합니다.)

https://engkimbs.tistory.com/746

 

[Spring] 스프링 AOP (Spring AOP) 총정리 : 개념, 프록시 기반 AOP, @AOP

| 스프링 AOP ( Aspect Oriented Programming ) AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 관점 지향은 쉽게 말해 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으..

engkimbs.tistory.com

4. 편리한 MVC 구조 (스프링이 ControllerUsingURI 기능 제공)

5. WAS에 종속적이지 않은 개발 환경

6. 트랜잭션의 지원

[의존성 주입 (Dependency Injection)]

1. 코드의 내부에서 객체 간의 연결을 이루지 않고, 외부에서 설정을 통해서 객체 간을 연결하는 패턴

2. 컴파일 시가 아닌 실행 시에 의존 관계가 완성되는 방식

우측이 의존성 주입입니다.

3. 스프링의 경우 의존성 주입을 쉽게 적용할 수 있는 프레임워크

1) ApplicationContext : 필요한 객체들을 생성하고, 필요한 객체들을 주입하는 역할 수행

2) 종류 : 생성자 주입, Setter 주입

3) 스프링

(1) 객체와 객체를 분리해서 생성

(2) Wiring : 이러한 객체들을 엮음

4) 빈과 빈 사이의 의존관계를 처리하는 방식

(1) XML 설정

(2) 어노테이션 설정

(3) 자바 설정

[의존성 주입 테스트를 하기 전에 프로젝트 생성 및 서버 구축]

1. 먼저 처음이므로 Spring Legacy Project 를 클리갛여 새 프로젝트를 생성합니다. Project name을 입력하고 Spring MVC Project를 클릭합니다.

2. next 를 누르면 패키지 이름을 클릭하라고 나오는데, 저는 org.zerock.controller 를 입력하였습니다. 그후 finish를 하면 패키지가 생성됩니다.

Spring Legacy Project 를 눌렀을 때 화면

3. 왼쪽 하단의 Server를 눌러 Server를 생성합니다. Apache 폴더를 눌러 톰캣9.0을 선택한 후 Next 를 누릅니다. 그 후 창에서 사용하는 JRE로 바꿔줍니다. 이때 톰캣 서버경로는 아래 사진처럼 bin 폴더가 보이는 화면까지의 경로입니다. 제 컴퓨터 기준으로는 D:\eclipse JSP\apache-tomcat-9.0.46-windows-x64\apache-tomcat-9.0.46 입니다.

Tomcat v9.0 Server 선택

톰캣 디렉토리와 JRE 선택

Tomcat 서버 경로

4. 3 번후 next를 누른후 ADD로 해당 프로젝트를 오른쪽으로 옮긴 후 Finish를 하면 서버구축이 완성됩니다.

첨부파일

tomxml.txt

 파일 다운로드

5. 이 때 서버를 구축하고나서 프로젝트 우클릭후 properties 에서 Dynamic Web Module 이 4.0 인지, Java 가 1.8인지, Apache Tomcat v9.0이 체크되어 있는지, Java Build Path JRE가 1.8 이상인지 체크합니다.

여기까지 하셨다고 바로 서버가 정상적으로 구동되진 않습니다!

6. 프로젝트에서 pom.xml 에서 해당 내용들을 삭제,입력,수정 합니다.

빨간 줄로 해당 버젼을 바꾸세요.(수정)

빨간 줄로 해당 버젼을 바꾸세요.(수정)

빨간색은 수정, 주황색 네모박스 부분은 추가(입력)해주세요.

<!-- Test -->

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.12</version>

<scope>test</scope>

</dependency>

<!-- 소스코드를 시험하는 기능 -->

<dependency>

<groupId>org.springframework</groupId><!-- 회사/기관 -->

<artifactId>spring-test</artifactId><!-- 특정 기능의 라이브러리 -->

<version>${org.springframework-version}</version>

</dependency>

<!-- lombok 라이브러리 : Getter/Setter, 생성자, toString을 자동생성 -->

<dependency>

<groupId>org.projectlombok</groupId>

<artifactId>lombok</artifactId>

<version>1.18.20</version>

<scope>provided</scope>

</dependency>

</dependencies>

(윗 사진 부분입니다.)

드래그 되어 있는부분은 삭제해주세요.

위 과정이 되어도 오류가 나시는 분들은 pom.xml을 전문을 메모장으로 첨부하겠습니다.

7. 서버를 더블클릭하여 Modules 를 열고 컨텍스트를 '/' 로만 하여 서버를 수정한 후 서버를 실행하여 크롬 주소창에 localhost:8080/ 을 입력하여 해당 화면이 나오면 성공입니다.