[INTRO] 프로젝트 개요

김주언·2022년 6월 9일
0

TODO LIST

목록 보기
1/18
post-thumbnail

TODO 리스트 개요

기능

기본적인 기능만 있는 간단한 애플리케이션 구현할거임

  • TODO 생성
  • TODO 리스트
  • TODO 수정
  • TODO 삭제
  • 회원가입
  • 로그인
  • 로그아웃

증맬 간단할것이다

아키텍처

프론트와 백엔드 서버 분리된 아키텍처로 설계. 브라우저는 백엔드의 REST API를 이용하여 HTTP 요청 보낸다.
로드 밸런서, 오토스케일링 그룹, 도메인 등록, HTTPS 설정

사용 도구

  • HTML / CSS / React.js
    프론트엔드 애플리케이션 개발에 사용한다.
    프론트엔드 애플리케이션은 프론트엔드 클라이언트를 반환하는 서버가 있으며, 해당 서버는 React 앱을 반환하는 역할을 수행한다. 이러한 방식으로 프론트와 백을 분리한다.

  • 스프링 부트
    백엔드 애플리케이션 개발에 사용한다.
    스프링부트로 REST API를 구현하며, API는 프론트엔드 측에서 사용한다. REST API를 구현하고 프론트와 백엔드를 분리하면 추후에 서비스를 확장하는데 용이하다.

  • AWS
    프로덕션 환경 구축에 사용


환경설정

스프링부트, 그래들, 롬복, 포스트맨 등 백엔드 환경설정

스프링부트

Spring initializer

Generate하고, 압축 푼 다음에 인텔리제이 프로젝트 오픈 > build.gradle 파일 선택 > Open as a Project > Trust

초기 프로젝트 구조는 아래와 같다

.
├── HELP.md
├── build.gradle
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── settings.gradle
└── src
    ├── main
    │   ├── java
    │   │   └── com
    │   │       └── example
    │   │           └── demo
    │   │               └── DemoApplication.java
    │   └── resources
    │       ├── application.properties
    │       ├── static
    │       └── templates
    └── test
        └── java
            └── com
                └── example
                    └── demo
                        └── DemoApplicationTests.java

스프링부트 동작 순서

  1. 스프링 부트 어플리케이션 시작
  2. @ComponentScan 어노테이션이 있는 경우 베이스 패키지와 하위 패키지에서 @Component 가 달린 클래스를 찾는다
  3. 필요 시 @Component 가 달린 클래스의 오브젝트 생성한다. 이 때, 해당 오브젝트가 다른 오브젝트에 의존한다면 @Autowire 어노테이션을 통해 자동 의존 주입이 가능하다.
    a. @Autowire에 연결된 변수의 클래스가 @Component가 달린 클래스라면 스프링이 오브젝트를 생성해서 전달한다.
    b. @Bean 어노테이션으로 생성하는 오브젝트라면 @Bean 메서드를 호출하여 생성 후 전달

Gradle 설정

Gradle은 빌드 자동화 툴이다.
빌드 자동화 툴 사용하면 컴파일, 라이브러리 다운로드, 패키징, 테스팅 등 자동화 가능
일일히 라이브러리를 다운받고 설정할 필요없이 코드로 사용할 내용을 적으면 빌드 자동화 툴이 코드를 해석하여 프로젝트 빌드를 위한 작업을 수행한다.

Lombok 라이브러리 설정

롬복은 어노테이션을 추가하면 컴파일 시 그에 상응하는 코드를 생성해준다.
getter, setter, builder 등 반복 작성할 필요가 없음
롬복 코드 작성을 위해서 annotationProcessor가 필요하다.

dependencies {
	annotationProcessor 'org.projectlombok:lombok'
	// https://mvnrepository.com/artifact/org.projectlombok/lombok
	compileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.22'
}

인텔리제이 환경설정 > 컴파일 > Annotation Processer에서 Enable 체크

구글 구아바 추가

build.gradle 디펜던시에 추가

// https://mvnrepository.com/artifact/com.google.guava/guava
	implementation group: 'com.google.guava', name: 'guava', version: '31.0.1-jre'

포스트맨 사용

REST API 테스트를 위한 도구

profile
학생 점심을 좀 차리시길 바랍니다

0개의 댓글