일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 코드스테이츠 #
- 코드스테이츠 #회고록
- 공부방식
- Git #회고록
- 피드백
- JAVA기본
- WSL #Linux #ubuntu
- 글 foramt
- 네트워크 기초
- 시작 #꾸준히 #과하지않게
- 회고록
- String
- 회고
- 호스트주소 #Host주소
- 백엔드로드맵
- 롤중독
- 정리글 작성법
- 사용자계정 #WSL2
- git #intellij
- WSL2 #권한
- Java환경
- jvm
- 몰입학습 #몰입
- 코딩테스트
- mapstruct
- OOP
- 인터넷 #ISP
- 회고 #주간회고
- 에러해결
- 회고록_코드스테이츠
- Today
- Total
느리더라도 꾸준히
회고록(27) - 웹 애플리케이션 아키텍쳐와 Spring boot 본문
1. 데일리 일기
오늘 라디오에서는 여러 공감가는 주제들이 나왔다. 내가 평소에 느끼는 " 내가 잘하고 있는게 맞는건가?...", "개발로 취업 할 수 있을까?", "요즘 시장도 안좋아서.. 개발쪽 수요가 주는건 아닐까 " 등 과 같은 불안감들은 모두 안고 사는것 같다. 심리학적으로 인간은 불안을 정말 싫어하지만, 애석하게도 불안을 없애는 방법은 없다. 오히려 불안을 인정해야 불안이 주는 미지의 두려움에서 벗어 날 수 있다.
오늘의 나는 어제의 나보다 성장했다. 계속 부족한 부분들을 메꾸어 가다 보면 나도 모르게 좋은 결과에 도달 할 수 있을 것이다. 또한 실력있는 개발자는 언제나 부족하다. 위의 불안감을 인정하고 더 좋은 개발자가 되려고 노력해보자.
2. 오늘 배운 내용
웹 어플리케이션 아키텍처
아키텍처란?
일반적인 아키텍처란 건축물에서 요구사항에 맞는 건물, 구조물의 컨셉을 잡아놓은 설계도를 의미한다.
이를 어플리케이션에 비유해보자. 아키텍처란 애플리케이션에 필요한 구성요소와 동작원리 컨셉을 가지고 있는 청사진이라고 볼 수 있다.
시스템 아키텍처
하드웨어와 소프트웨어를 모두 포함하는 어떤 시스템의 전체적인 구성과 동작원리를 그림으로 표현한 것을 말한다.
소프트웨어 아키텍처
컴퓨터내의 모든 프로그램들(소프트웨어)의 구성을 그림으로 나타낸 것을 말한다.
웹 애플리케이션 아키텍처(애플리 케이션 아키텍처 중 하나)
애플리 케이션이란 응용 프로그램으로 스마트폰, PC내 하나의 프로그램을 지칭할 수도 있지만, 넓게는 클라이언트의 요청을 처리하는 서버 애플리케이션을 의미 할 수도 있습니다.
우리는 웹 개발자를 준비하고 있으므로, 후자의 의미로 애플리케이션을 자주 사용할 것입니다. 이러한 애플리케이션의 관점으로 웹 애플리케이션 아키텍처의 종류중 하나인 계층형 아키텍처를 살펴봅시다.
계층형 아키텍처(N티어)
해당 아키텍처는 3부분을 Layer를 나눌 수 있습니다.
- API 계층(API Layer), Presentation Layer
- 클라이언트의 요청을 받아들이는 계층입니다.
- 서비스 계층(Service Layer)
- API 계층에서 받은 요청을 업무 도메인(비즈니스 지식)의 요구사항에 맞게 비즈니스 적으로 처리하는 계층입니다.
- 데이터 액세스 계층(Data Access Layer)
- 서비스 계층에서 처리된 데이터를 데이터베이스 등의 데이터 저장소에 저장하기 위한 계층
Spring Boot
Spring Boot란?
개발자가 Spring을 더 손쉽게 사용하도록 도와주는 도구이다.
어떻게 도와주는데?
Spring Framework로만 작성한 코드는 코드작성은 쉬울지 몰라도 Spring에 필요한 설정을 지정하는데 복잡함이 존재했습니다.(XML 의 긴 설정파일, 호환이 되지 않는 모듈, Java버전등으로 인한 오류 발생일 막기 위한 시간)
Spring Boot는 이러한 설정의 복잡함을 매우 간편하게 해결해 줍니다. 아래는 Spring Boot가 제공하는 기능입니다.
XML 기반의 복잡한 설계 방식 지양
의존 라이브러리의 자동 관리
- 자동으로 의존된 라이브러리들을 가져와줌
애플리케이션 설정의 자동 구성
- 설정정보에 적은 내용을 바탕으로 자동 설정을 구성합니다.
- spring-boot-starter-web : 애플리케이션이 웹 애플리케이션이라고 추측한 뒤, web 애플리케이션을 띄울 서블릿 컨테이터 설정을 자동으로 구성한다.
- spring-boot-starter-jdbc : 애플리케이션에 DB 연결이 필요하다고 추축한 뒤 JDBC 설정을 자동으로 구성한다.
프로덕션급 애플리케이션의 손쉬운 빌드
내장된 WAS를 통한 손쉬운 배포
핵심 컨셉
Spring configuration은 Spring Boot를 통해 Spring에게 맡겨버리고, 개발자는 비즈니스 로직에만 집중하자 라는 컨셉을 가지고 있다.
혼자 공부로 새로 알게 된 내용
배포란?
- 빌드가 완성된 실행 가능한 파일을 사용자가 접근할 수 있는 환경에 배치시키는 일
- 그러므로 우리는 배포 이후, 서버에서 제공하는 웹페이지에 접근이 가능해진다.
Build란?
- 컴파일된 코드를 실제 실행할 수 있는 상태로 만드는 일
- 즉 소스 코드 파일을 컴퓨터에서 실행할 수 있는 독립적인 형태로 변환하는 과정과 그 결과를 말합니다.
프로덕션 단계
- 프로그램을 만들고, [사용자에게 배포하기 전]까지 유지 보수하는 모든 과정을 말한다.
'(CodeStates)Daily memoir' 카테고리의 다른 글
회고록(29)-AOP (0) | 2022.12.14 |
---|---|
회고록(28)-스프링 컨테이너와 DI (0) | 2022.12.11 |
회고록(26) - Spring Framework의 특징 (0) | 2022.12.07 |
회고록(25) - 스키마 (0) | 2022.12.02 |
회고록(24)- SQL (0) | 2022.12.01 |