2024. 1. 30. 17:23ㆍ· BACK-END/└ Spring Boot
스프링(Spring)이란?
- 자바 기반의 오픈 소스 프레임워크로, 엔터프라이즈급 애플리케이션을 개발하기 위한 다양한 기능과 기술을 제공한다
- 웹 개발을 위해 필요한 파일들을 세팅하는 공간
[주요 특징 및 기능]
① 의존성 주입(DI, Dependency Injection)
- 프로그래밍에서 구성요소 간의 의존 관계를 외부의 설정파일을 통해 정의 하는 방식.
- 스프링은 의존성 주입을 통해 객체 간의 결합도를 낮추고 코드의 유지보수성을 향상 시킴.
② 관점 지향 프로그래밍 (AOP, Aspect-Oriented Programming)
- 여러 모듈에서 공통적으로 사용하는 기능을 분리하여 관리할 수 있음
- 재사용성을 높여주는 프로그래밍 기법
③ 제어반전 (IoC, Inversion of Control)
- 인스턴스의 생성부터 소멸까지 객체 생명주기 관리를 스프링(컨테이너)가 대신 해주는 것
- 제어권이 IoC에게 있음. 개발자는 코드를 호출하여 그 코드로 생명주기를 제어함.
④ POJO(Plain Old Java Object) 방식
- 순수 Java만을 통해서 생성한 객체로, Java 및 Java의 스펙에 정의된 기술만 사용한다는 의미
- Getter/Setter를 가진 단순한 자바 오브젝트
- JavaEE 사용의 단점을 보완하기 위해 나온 방식, 코드가 가벼워지고 단순해짐
관련해서 참고 추천 링크 : https://www.codestates.com/blog/content/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8
설치할 프로그램 : SpringToolSuite4.exe
프로젝트 생성을 위해 아래 경로로 들어간다.
[File] → [New] → [Spring Starter Project]
프로젝트 기본 정보 설정을 아래와 같이 진행하였다.
이름 | 설명 | 비고 |
Service URL | 지원하는 정보 URL | |
Name | 프로젝트 이름 | spring01로 설정 |
Type | 프로젝트 관리 프레임워크 설정 (Maven/Gradle-Kotlin/Gradle-Groovy) |
Maven으로 설정 |
Packaging | 배포형태(jar/war) | War로 설정 |
Java Version | 사용할 자바 버전 | 17로 설정 |
Language | 사용할 언어(Java/Kotlin/Groovy) | Java로 설정 |
Group | 식별을 위한 그룹 정보 | com.example로 설정 |
Artifact | 식별을 위한 애플리케이션 정보 | |
Version | 애플리케이션 버전 정보 | |
Package | 스프링에서 관리할 패키지 시작점(Root) | com.example.spring01로 설정 |
- 외부 라이브러리는 Web만 추가해주었다.
기본 정보 설정을 한 후 Finish 버튼을 누르면, 아래와 같이 프로그램이 알아서 프로젝트를 생성해준다.
프로그램이 잘 돌아가나 실행을 한 번 해보자
[spring01 프로젝트] - [com.example.spring01 패키지] - [Spring01Application.java 실행]
실행을 하려고 하면 어떻게 실행할 것인지에 대해 묻는 창이 뜬다.
· Java Application : 자바에서 실행
· Java Application in Container : 자바이고, 가상환경에서 실행
· Spring Boot App : 스프링 부트에서 실행
나는 Spring Boot App에서 실행되게 끔하였다.
그런데, 오류 발생;
이미 사용하고 있는 포트이기 때문에 오류가 발생하였다.
포트 번호를 바꿔주기 위해 DBeaver에서 아래 명령어를 활용하여 설정해주었다. (cmd에서 처리해도 무관)
(주의) 관리자 권한으로 실행하여야 함.
(주의) 명령 실행을 아래와 같이 진행하여야 함.
[실행] - [Execute SQL Script natively]
-- 포트 확인
SELECT dbms_xdb.gethttpport() FROM dual;
-- 포트 변경
EXEC dbms_xdb.sethttpport(9090);
다시 재실행 해보면 정상적으로 작동하는 걸 확인할 수 있다.
개인 공부 기록용입니다:)
Chat GPT 및 여러 블로그,티스토리 참고하였습니다.
'· BACK-END > └ Spring Boot' 카테고리의 다른 글
[ Spring ] @Controller와 @RestController의 차이 (0) | 2024.02.12 |
---|---|
[ Spring ] @Repository / @Service / @Controller (0) | 2024.02.11 |
[ Database / Spring ] 데이터베이스 연동하기 및 파라미터를 통해 데이터 삽입해보기 (0) | 2024.02.09 |
[ Spring Boot ] 프로젝트 실행 오류 : java.lang.ClassNotFoundException: (0) | 2024.02.08 |
[ Spring / Java ] 변수 값을 파라미터로 입력 받아 출력하기 (2) | 2024.02.01 |