728x90
반응형

spring

1. Spring 이란?


Spring은 프로그래밍 언어 Java 기반의 프레임워크이다. 처음 접하는 사람에게는 부족한 설명이다. 그렇다면 프레임워크란 무엇인가?

프레임워크(Framework)는 간단히 말하면, Java 기반으로 애플리케이션을 쉽게 개발할 수 있도록 도와주는 환경(?)이라고 보면 될 것 같다. Spring에서 제공하는 몇 가지 기능을 활용한다면, 개발을 원활하게 진행할 수 있고 보다 효율적인 애플리케이션을 개발하는 데 도움이 된다.

2. Spring Boot


Spring Boot는 초심자가 Spring에 쉽게 접근할 수 있도록 도와주는 Spring의 서브 프로젝트이다.
Spring Boot 환경에서 개발을 한다면 빌드/배포 등과 같이 부수적인 요소에 신경쓰지 않고 비즈니스 로직을 구현하는 데만 집중하여 개발할 수 있다.
아래 링크에서 누구나 쉽게 Spring Boot 프로젝트를 생성할 수 있다.
https://start.spring.io/

하지만... 초심자였던 나는 프로젝트 생성마저도 쉽지 않았다. 차근차근 하나씩 살펴보자.

A. Spring Boot 프로젝트 생성


<사진 1. start.spring.io 초기 화면>

  1. Project : Gradle - Groovy, Gradle - Kotlin, Maven 세 개중 어떤 빌드 툴을 사용할지 정하면 된다.
    빌드란? java 소스코드를 컴퓨터가 실행시킬 수 있는 파일 형태로 변환하는 과정이고, 이를 도와주는 툴이 빌드툴이다.
  2. Language : 말그대로 본인이 활용할 언어를 선택하면 된다.
  3. Spring Boot : Spring Boot의 버전을 활용하면 된다. (SNAPSHOT)이 붙은 버전은 현재 개발이 진행중이라는 의미인 것 같다.
  4. Project Metadata : 프로젝트 이름, 패키징방식, Java 버전을 정하면 된다.
    패키징이란? 빌드 과정중 하나인데, 컴퓨터가 읽을 수 있는 두 가지 파일 형식(Jar, War) 중 하나를 선택하면 된다.
  5. Dependencies : 생성한 프로젝트에서 활용할 라이브러리를 입력하면 된다.

    위 과정을 잘 따라가서 GENERATE 버튼을 누르게 되면 하나의 Spring Boot 프로젝트가 생성되고, 본인이 사용하고 싶은 IDE(Eclipse나 InteliJ)로 불러와 개발을 시작하면 된다.

B. Spring Boot 구성


(출처 : https://wikidocs.net/160947)


위 캡처본은 따로 프로젝트를 생성하진 않아서... 직접 캡처한 파일이 아닌 다른 블로그 글에서 퍼왔다.


처음 프로젝트를 생성하게 되면, 위 사진의 구성과 같이 프로젝트가 생성될 것이다. 하나씩 핵심만 살펴보자.

  1. src/main/java : 직접 작성한 코드가 있는 Java 파일들을 생성할 곳이다. 본인이 구현할 비즈니스 로직을 해당 부분에 Java 코드로 작성하면 된다.
    그리고 프로젝트 실행 시, (프로젝트명)Application.java 파일을 기점으로 프로젝트가 실행된다. (해당 파일 안에 main함수가 있음)
  2. src/main/resource : 프로젝트에 활용되는 파일 중, Java 코드를 제외한 모든 파일들이 저장되는 곳이다. (ex. HTML, CSS, JS, XML 등)
    그 중, application.yml이나 application.properties와 같은 파일은 프로젝트에 활용되는 환경변수 값들이 입력되는 파일로 활용된다.
  3. src/test/java : 프로젝트와 별도로 테스트 용도의 java 코드들이 저장되는 곳이다.
  4. build.gradle (pom.xml) : gradle 빌드툴 활용 시, build.gradle 파일이 생성된다. (maven 빌드툴 활용 시, pom.xml 파일이 생성된다.)
    해당 파일에서 프로젝트에 활용된 외부 라이브러리들을 정의한다. 그리고 빌드 툴은 해당 파일을 읽어서 외부로부터 해당하는 라이브러리들을 가져온다.

3. 이어서

위 과정을 모두 거치게 되면, Spring Boot를 활용하여 개발할 준비가 끝났다고 볼 수 있다.
이제는 Spring을 활용하여 효율적으로 개발하기 위해 알아야하는 몇 가지 개념들(Spring의 원리, IOC/DI/AOP, POJO 등)을 짚어야할 때다.
다음 글에서 다뤄볼 것이다. To Be Continued...

반응형
728x90
반응형

spring

1. Spring 개발에 본격 입문하게된 Woong

22년 12월 어느 날, 팀에서 추진하는 SI 프로젝트에 참여하게 되었다.
주제는 비대면 고객케어 솔루션..!
단말 고장 관련 민원이 들어올 때마다 현장으로의 수리기사 출동을 줄이기 위한 솔루션이라고 한다.
수리기사의 출동이 곧 kt의 지출이니, 지출을 줄이기 위한 일환으로 필요한 솔루션이다.

이를 위해 고객민원을 1선에서 대응하는 매니저분들이 활용할 포털사이트가 필요하다.
그리고 내가 처음 담당한 업무는 해당 포털사이트의 '로그인 연동 개발'이다.

여느 포털사이트에서처럼 인증, OTP, 토큰발행 등과 같은 기능을 개발하기 위해
사내 인증시스템인 LDAP이라는 시스템과 연동되어야 하고, OTP기능이 구현되어 있는 모듈과도 연동되어야 한다.
말이 로그인이지... 사실상 연동개발이다.

그리고 개발에 활용되는 언어는 Java이고, 프레임워크는 Spring Boot이다.
Java활용은 익숙하지만, Spring 프레임워크는 생소했다.
오히려 좋아...! 쉽진 않겠지만, 개발과 공부를 병행하기로 했다.
공부만 하는 것보다 기억에 오래남을 것이고, 실전 활용능력도 기를 수 있어 좋은 기회라고 생각한다.
그리고 후에 리마인드를 위해 블로그 글로 남기려고 한다. 꾸준히 남기자 대웅아..!

2. 앞으로 학습이 필요한 부분

A. Spring 프레임워크의 컨셉과 원리

Spring을 활용한 개발을 진행하기에 앞서, 어떻게 돌아가고 어떤 컨셉을 가지고 개발이 진행되는지를 사전에 파악해야 빠르고 효율적으로 개발할 수 있다.

Spring 프레임워크가 정의와 원리가 뭔지?, POJO의 개념, IOC/DI/AOP 등을 알아볼 것이다.
다양한 패턴(싱글톤, 프록시, 파사드 등)에 대한 학습도 필요하지만, 시간관계상 여유가 생길 때 알아볼 것이다.

B. REST API

구현이 필요한 포털은 VueJS 프레임워크로 구현되고, Axios로 요청을 받을 것이기 때문에 로그인인증 모듈을 REST API로 구현하고자 한다.
이를 위해 REST API의 정의부터 Spring 프레임워크에서는 REST API가 어떻게 구현되는지, 어떤 어노테이션이 활용되는지 등을 알아볼 것이다.

C. Jasypt

Jasypt는 암복호화 모듈이다. application.yml 파일에 입력해놓은 환경변수들을 복호화하여 가져올 때 활용된다.
Spring 프레임워크에서 환경변수를 어떤 원리로 가져오는지? 활용하는 오픈소스에서 복호화는 어떤식으로 이루어지는지 알아볼 것이다.

D. SOAP

다룰내용이 가장 많은 부분이 될 것이다. 실제로 제일 어려웠다 ㅜ OTP인증을 위해 타모듈과의 연동이 필요한데,
연동이 필요한 모듈은 레거시 모듈이기때문에 SOAP로 연동이 이루어진다.
SOAP가 뭔지? WSDL, SOAP연동을 위해 필요한 개발방법 등을 알아볼 것이다.


애기화이팅

반응형

+ Recent posts