프로젝트 제작에 필요한 도구들 다운로드
프로젝트 제작이 필요한 도구들의 다운로드와 설치 방법을 링크하였습니다.
반드시 설치 방법을 참고하셔서 다운 및 설치를 진행하기를 권장합니다.
JDK : jdk-11.0.13
다운 링크 : https://www.oracle.com/java/technologies/downloads/
설치방법 : https://crazykim2.tistory.com/478
톰캣 컨테이너 : Apache tomcat 9.0.56
다운 링크 : https://tomcat.apache.org/download-90.cgi
설치방법 : https://shinysblog.tistory.com/5
이클립스 IDE : Eclipse IDE for Java Developers-2021-12
다운 링크 : https://www.eclipse.org/downloads/
설치방법 : https://parkjye.tistory.com/33
Oracle DBMS 설치하기 : Oracle Database 19c (19.3)
다운 링크 : https://www.oracle.com/database/technologies/oracle-database-software-downloads.html
설치방법 : https://goddaehee.tistory.com/281
SQL Developer : SQL Developer 21.4.3
다운 링크 : https://www.oracle.com/tools/downloads/sqldev-downloads.html
MyBatis Framework
다운 링크 : https://blog.mybatis.org/
스프링 프레임워크란?
우선 프레임워크가 무엇인지부터 알아야합니다.
프레임워크는 소프트웨어적인 의미로 기능을 미리 클래스나 인터페이스 등으로 만들어 제공하는 반제품입니다.
프레임워크는 건물의 뼈대와 비슷하다고 생각하면 이해가 쉬울 것 같습니다.
애플리케이션 개발 시 자주 사용하는 기능을 클래스나 인터페이스 등으로 미리 어느 정도 만들어서 제공하게되면
개발자가 자신의 상황에 맞춰 변형, 추가해 이를 사용하는 것입니다.
스프링 프레임워크는 이런 프레임워크 중에서 현재 가장 많이 사용되고 있는 프레임워크입니다.
스프링 프레임워크는 자바 웹 애플리케이션 개발을 위한 오프 소스 프레임워크입니다.
스프링은 애플리케이션에서 사용되는 여러 가지 클래스 객체(빈)을
개발자가 아니라 스프링이 권한을 가지고 직접 관리하게 됩니다.
스프링의 특징으로는 다음과 같은 것들이 있습니다.
1. 가볍고 배우기 쉽고, 경량 컨테이너의 기능을 수행합니다.
2. 제어 역행 기술을 이용해 애플리케이션 간의 느슨한 결합을 제어합니다.
(*제어 역행 : 서블릿이나 빈 등을 개발자가 코드에서 생성하지 않고 프레임워크가 직접 수행하는 방법 )
3. 의존성 주입 기능을 지원합니다.
(*의존성 주입 : 클래스 객체를 개발자가 코드에서 생성하지 않고 프레임워크가 생성하여 사용하는 방법 )
4. 관점 지향 기능을 이용해 자원을 관리합니다.
(*관점 지향 : 핵심 기능 외 부수 기능들을 분리 구현함으로써 모듈성을 증가시키는 방법 )
5. 영속성과 관련된 다양한 서비스 지원, 수많은 라이브러리 연동 기능 지원
위 그림은 스프링 프레임워크의 주요 기능입니다.
Spring Core 기능은 스프링의 다른 기능을 수행하는데 필요한 기반 기능을 제공하고
Spring MVC 기능을 이용해 애플리케이션을 MVC로 쉽게 개발할 수 있습니다.
Core : 다른 기능과 설정을 분리하기 위한 loC 기능을 제공합니다.
Context : 스프링 기본 기능으로서 애플리케이션의 각 기능을 하는 빈에 대한 접근 방법을 제공합니다.
DAO : JDBC 기능을 좀 더 편리하게 사용할 수 있도록 합니다.
ORM : 하이버네이트나 마이바티스 같은 영속성 관련 프레임워크와 연동된 기능을 제공합니다.
AOP : 관점 지향 기능을 제공합니다.
Web : 웹 애플리케이션 개발에 필요한 기능을 제공합니다.
WebMVC : 스프링에서 MVC 구현에 관련된 기능을 제공합니다.
스프링 프레임워크 설정하기
스프링이 나온 초기에는 스프링 기능에 필요한 라이브러리를 다운 받아서 사용했습니다.
다음과 같이 스프링 프레임워크를 사용하기 위해서 스프링 라이브러리를 다운 받아서
받은 파일들을 프로젝트의 /WEB-INF/lib 폴더에 넣어서 스프링을 사용했었습니다.
제가 직접 라이브러리를 수동으로 파일에 넣어 찍은 스크린샷입니다.
메이븐에 대해 & 메이븐 설치하기
그런데 위의 방식으로 라이브러리를 수동으로 받아서 사용하게 되면
스프링 버전이 자주 업데이트됨에 따라서 여러 불편함이 발생할 수 있습니다.
따라서 현재는 메이븐과 같은 도구를 이용해서 자동으로 스프링의 라이브러리 기능을 관리하며
프로그램을 개발하게 됩니다.
저 역시 메이븐을 이용해 프로젝트 환경을 구축하도록 하겠습니다.
우선 메이븐을 설치합니다.
https://maven.apache.org/download.cgi
제가 표시해놓은 곳을 클릭해 파일을 다운로드 합니다.
다운받은 압축파일을 풀면 bin으로 끝나는 폴더명 안에 apache-maven-3.8.5 폴더가 있는데 이 폴더를 복사해
C:\spring 폴더에 붙여 넣습니다.
이제 메이븐 환경 변수를 설정해야 합니다.
마지막으로 위와 같이 명령 프롬프트에서 mvn을 입력할 때 메이븐 관련 메세지가 표시되면 제대로 설치된 것입니다.
STS에 대해 & STS 설치하기
STS는 이클립스 기반으로 만들어진 스프링 기반 애플리케이션 개발용 도구입니다.
보통 개발 환경이 편리한 STS에서 프로젝트를 만들어 메이븐을 사용합니다.
STS를 설치해보겠습니다.
sts는 이클립스 내 MarketPlace에서 간편하게 설치할 수 있습니다.
모두 체크하고 설치 및 동의하면 됩니다.
설치 완료 후 재실행을 묻는 창이 뜨면 Restart Now 버튼을 누르면 성공적으로 설치가 완료됩니다.
앞서 말했지만 메이븐을 사용하기 전까지의 초기의 스프링은
라이브러리 관련 jar 파일을 내려 받아 프로젝트에 추가할 경우
이와 연관된 종속 라이브러리까지 다 찾아서 추가해 주어야 했습니다.
그러나 방금 설치한 메이븐을 사용할 경우 이런 의존 관계를 자동으로 관리할 수 있습니다.
위 그림이 메이븐 기반 웹 프로젝트 기본 디렉터리 구조입니다.
pom.xml : 프로젝트 정보가 표시되며 스프링에서 사용되는 여러 가지 라이브러리를 설정해 다운로드할 수 있습니다.
src/main/java : 자바 소스 파일이 위치합니다.
src/main/resources : 프로퍼티 파일이나 XML 파일 등 리소스 파일이 위치합니다.
src/main/webapp : WEB_INF 등 웹 애플리케이션 리소스가 위치합니다.
src/test/java : JUnit 등 테스트 파일이 위치합니다.
src/test/resources : 테스트 시에 필요한 resource 파일이 위치합니다.
STS와 메이븐을 이용한 스프링 프로젝트 동작 확인
무난하게 설치가 되나 싶었지만..
이렇게 오류가 발생해서 안 넘어가집니다.
검색해보니 스프링 버전과 자바 버전의 호환 문제 때문이라고 합니다.
이클립스를 사용하면서 많이 겪었던 문제입니다.
현재 저의 자바가 10.0.2 버전인데 jdk11 이상 버전으로 설치하면 오류가 해결된다고 합니다.
우선 제어판 - 프로그램 삭제에서 자바 10.0.2 버전을 삭제해줍니다.
보면 2개가 있는데 둘 다 삭제해주면 됩니다.
그리고 위와 같이 환경변수에서 JAVA_HOME을 편집합니다.
없다면 JAVA_HOME을 만들고 저처럼 링크를 기입하면 됩니다.
그러면 cmd에서 성공적으로 자바가 설치된 것을 확인할 수 있습니다.
하지만 아직 끝난 것이 아닙니다!
경험상 이대로 다시 스프링 프로젝트를 생성하려고 해도 다시 오류가 뜰 예정입니다.
자바 버전을 이것저것 깔면서 하도 오류가 나다보니 깨우친 팁입니다.
자바 버전이 달라지면 이클립스가 있는 파일에 들어가서 eclipse.ini에서 새로 설치한 jdk경로를 적어야합니다.
이제 다시 스프링 프로젝트를 생성해봅시다.
드디어 넘어가졌다! 자바11이 성공적으로 설치되고 적용됐습니다.
이것도 팁인데, 프로젝트를 새로 생성할 경우 해당 프로젝트를 우클릭해서 properties에 들어가
Project Facets에서 자바 버전을 확인하고 제대로 적용시켜주는 것이 좋습니다.
이걸로 성공적으로 STS와 메이븐을 이용해 스프링 프로젝트를 생성해보았습니다.
아 그리고 중요한 문제가 있습니다. 또 추가적으로 설정해줘야 할 것이 있습니다.
톰캣을 다시 적용시켜줘야합니다.
해당 작업을 수행하지 않으면 이후 톰캣 서버 오류가 발생할 수 있습니다.
톰캣 서버 역시 성공적으로 동작하는 것을 확인할 수 있습니다.
여기까지 스프링 프레임워크와 메이븐, STS에 대해서 설명하고
메이븐과 STS를 설치하고 제대로 동작하는지 확인해보았습니다.
다음 글에선 마이바티스에 대해서 알아보고 메이븐과 연동하는 방법을 알아보겠습니다.
참고자료 : 자바 웹을 다루는 기술
http://www.yes24.com/Product/Goods/68371015
'자바 스프링 > 스프링 게시판 프로젝트' 카테고리의 다른 글
#4 계정(시큐리티 적용)과 게시판 CRUD 구현 (0) | 2022.05.28 |
---|---|
#3 로그인 구현, ajax 이용해 실시간 아이디 중복검사 구현 (0) | 2022.04.12 |
#2 jQuery와 Bootstrap 디자인 구현, ui를 이용한 애니메이션 구현 (0) | 2022.04.08 |
#1 마이바티스 & 회원가입 데이터베이스 연동 확인 (0) | 2022.03.30 |
자바 스프링을 이용한 게시판 + 채팅창 (0) | 2022.03.28 |