728x90

전체 글 71

스프링부트3 백엔드 - 3. 스프링 부트 3 구조 이해하기

스프링 부트 3 구조 살펴보기 각 계층이 양 옆의 계층과 통신하는 구조. 계층 : 각자의 역할과 책임이 있는 어떤 소프트웨어의 구성 요소. 서로 소통할 수 는 있지만, 다른 계층에 직접 간섭하거나 영향을 미치지 않음. 네가지 계층 프레젠테이션 계층 : HTTP 요청을 받고 이를 비즈니스 계층으로 전송. 컨트롤러가 맡는 역할. 컨트롤러는 스프링부트 내 여거래가 있을 수 있음. 비즈니스 계층 : 모든 '비즈니스 로직'(서비스를 만들기 위한 로직)을 처리함. 서비스가 맡는 역할. 퍼시스턴스 계층 : 모든 DB 관련 로직을 처리함. DB에 접근하는 DAO객체( DB계층과 상호작용하기 위한 객체 )를 사용할 수도 있음. 리포지토리가 맡는 역할. 스프링부트 프로젝트 디렉터리 구조 main : 실제 코드를 작성하는 ..

Web/SrpingBoot 2023.10.08

스프링부트3 백엔드 - 2. 스프링 부트 3 시작하기(스프링과 스프링부트 차이, IoC, DI, AOP, PSA )

스프링과 스프링 부트 스프링의 등장 엔터프라이즈 애플리케이션 대규모의 복잡한 데이터를 관리하는 애플리케이션. 많은 사용자의 요청을 동시에 처리해야 하므로 서버 성능, 안정성 ,보안이 중요함. ▶ 기능 개발에만 집중할 수 있게끔 엔터프라이즈 애플리케이션을 위한 개발환경을 제공함. → 스프링 프레임워크 스프링을 더 쉽게 만들어주는 스프링 부트 Spring Boot 설정이 매우 복잡한 스프링 프레임워크를 더 쉽고 빠르게 이용할 수 있도록 만들어주는 도구. 스프링 프로젝트를 빠르게 설정할 수 있음. 스타터(의존성 세트) 사용하여 간편하게 의존성을 사용하거나 관리할 수 있음. 자바(객체 지향) 언어 기반의 프레임워크 객체 지향 언어가 가진 강력한 특징을 살려내는 프레임워크 좋은 객체 지향 애플리케이션을 개발할 수..

Web/SrpingBoot 2023.08.26

스프링부트3 백엔드 - 1. 자바 백엔드 개발자가 알아두면 좋은 지식

서버 & 클라이언트 클라이언트 서버에게 요청하는 프로그램 ex. 웹 브라우저 : 주소 입력 후 Enter 키를 눌러 정보를 요청함 ( 화면 확인 ) "서버에 요청한다" 서버 클라이언트의 요청을 받아 처리하는 주체 데이터베이스 데이터베이스 여러 사람이 데이터를 한 군데에 모아놓고 여러 사람이 사용할 목적으로 관리하는 데이터 저장소. ex. MySQL, 오라클, 포스트그레SQL ··· ▶ 데이터베이스가 아닌, 데이터베이스를 관리하기 위한 '시스템의 이름' 데이터베이스의 종류 NoSQL, NewSQL, RDB RDB ( Relational Database ) : 관계형 데이터베이스 데이버베이스를 행 · 열로 이루어진 테이블로 관리함. 기본키( primary key) 를 사용해 각 행을 식별 / 각 테이블 간 ..

Web/SrpingBoot 2023.08.17

Java 8, Java 11, Java 17 차이 비교

Java8 👉 오라클이 자바 인수 후 출시한 첫번째 LTS 버전 👉 32비트를 지원하는 마지막 공식 Java버전 👉 2개의 버전으로 나뉨: Oracle JDK, Open JDK 👉 Nashorn JavaScript 엔진 탑재 👉 새로운 날짜와 시간 API 👉 Unsigned Integer 계산 👉 Annotation on Java Types 👉 Static Link JNI Library 👉 Interface Default Method 👉 PermGen 영역 삭제 👉 Stream API Java11 👉 Oracle JDK와 Open JDK 통합 👉 Oracle JDK가 구독형 유료 모델로 전환 👉 람다 파라미터에 대한 지역 변수 문법 👉 엡실론 가비지 컬렉터 👉 서드파티 JDK로의 이전 필요 👉 HTTP ..

JAVA 2023.08.05

HTTP 상태 코드 정리

HTTP ( Hypertext Transfer Protocol ) 웹 서버와 웹 클라이언트 사이에서 데이터를 주고 받기 위해 사용하는 '통신 방식' TCP/IP 프로토콜 위에서 동작. ▶ 웹을 이용하려면, 웹 서버와 웹 클라이언트는 TCP/IP동작에 필수적인, IP주소를 가져야 함. 전송 가능한 데이터 : 컴퓨터에서 다룰 수 있는 데이터라면 무엇이든 전송 가능. ex. 하이퍼텍스트( HTML, XML··· ), 이미지, 음성, 동영상, JavaScript, 각종 문서 파일( PDF ) 등 응답 메시지 상태라인에 있는 상태 코드를 보고, 서버에서의 처리 결과를 파악할 수 있다. 상태 코드 : 세 자리 숫자. IANA라는 인터넷 할당 번호 관리 기관이 'HTTP 상태 코드 레지스트리'라는 이름으로 관리함. ..

Web 2023.08.05

Get 과 Post 의 차이

Get Post 실패 시 될 때까지 반복 실패 시 반복하지 않음 캐시 가능 캐시 불가능 히스토리에 남음 히스토리에 남지 않음 북마크 될 수 있음 북마크 될 수 없음 파라미터 노출 됨 파라미터 노출 안됨 인터넷 연결이 되지 않은 상태에서는 웹페이지 접속을 시도해도 접속이 되지 않는다. 그러다 인터넷 연결이 다시 된 경우, 페이지가 자동으로 새로고침 되는 경우가 있지 않은가? 이런 경우 Get이 쓰였다고 생각하면 편하겠다. Get 클라이언트가 어떠한 리소스로부터 정보를 서버에 요청하기 위해 사용되는 메서드. Get은 오직 데이터를 read할 때만 사용되고 수정할 때는 사용되지 않는다. ▶ 데이터 변형의 위험 없이, 안전하게 사용할 수 있다. 파라미터가 노출되므로, 민감한 데이터를 다루면 안된다. Post 리..

Web 2023.08.05

HTTP의 특징 및 쿠키, 세션, 캐시 비교

HTTP 특징 1. Stateless : 무상태성 클라이언트 상태정보를 갖지 않는 서버 처리 방식. 클라이언트와 첫 번째 통신에서 데이터를 주고받았어도, 다음 통신에서 이전 통신한 데이터들을 유지하지는 않음. 2. Connectionless : 비연결성 클라이언트가 서버에 요청 → 그에 맞는 응답 보냄 → 연결 끊음. ( + HTTP 1.1 버전에서 keep - alive값으로 변경 가능 ) keep - alive : 연결 유지하고 재활용하는 기능이 Default. 상태 유지 ( Stateful ) HTTP의 Stateless 특징을 보완하는 방법. 쿠키 ( Cookie ) 웹사이트 접속 시 '사용자의 브라우저'에 저장되는 작은 텍스트 파일 ▶ 서버와 통신 시 HTTP 헤더에 포함됨. '키 + 값'으로 ..

Web 2023.08.05

[Spring] MVC 패턴과 MVC1, MVC2 및 Spring Framework에서의 MVC2 정리

MVC 패턴 소프트웨어 디자인 패턴 중 하나. M : Model : 어플리케이션 정보·데이터·DB 등 V : View : 사용자에게 보여지는 화면( UI ), 모델로부터 정보를 얻고 표시함. C : Controller : 데이터와 비즈니스 로직 사이의 상호 동작을 관리함 (▶ 모델과 뷰 통제 : MVC패턴에서 View와 Model이 직접적인 상호 소통하지 않도록 관리함) MVC 1 View와 Controller 모두 JSP가 담당 ▶ JSP 하나로 유저 요청 받고 응답(구현 쉬움) JSP 하나에서 MVC가 모두 이뤄지다보니 재사용성이 매우 떨어져 유지·보수 문제가 발생하며, 가독성이 나쁨. MVC 2 표준으로 사용됨. 요청을 하나의 컨트롤러(Servlet)가 먼저 받음 → View와 Controller의..

Web/SrpingBoot 2023.08.05

Maven 과 Gradle 이란?

빌드 관리 도구 빌드 : 소스코드 파일을 컴퓨터에서 실행할 수 있는 독립적인 형태로 변환하는 과정·결과 소스코드, 프로젝트에 쓰인 각각의 파일·자원을 JVM이나 톰캣 같은 WAS가 인식할 수 있도록 패키징하는 과정 & 결과물 소스코드 컴파일하여 .clss로 변환, resource를 .class가 참조할 수 있는 적절한 위치로 이동, META-INF와 MANIFEST.MF들을 하나로 압축하는 과정. 소스코드에서 애플리케이션 생성하면서 여러 외부 라이브러리 사용하는데, 빌드관리도구는 사용자가 라이브러리를 관리할 필요없게 필요한 라이브러리들을 자동으로 관리함. 작업 1. 전처리 - 종속성 다운로드. 2. 컴파일 - 소스코드를 바이너리 코드로 컴파일. 3. 패키징 - 바이너리코드를 패키징함. 4. 테스트 5. ..

Web/SrpingBoot 2023.08.02

JAR 와 WAR 란?

JAR ( Java Archive) & WAR ( Web Application Archive) JAVA의 jar 툴을 이용하여 생성된 아카이브(압축) 파일. 어플리케이션을 쉽게 배퐇하고 동작시킬 수 있도록 관련 파일(리소스, 속성파일 등)들을 패키징해준다. JAR 자바 프로젝트 압축 파일 .jar 확장자 파일에는 Class와 같은 Java 리소스·속성파일·라이브러리·액세서리 파일이 포함되어 있다. JAR 파일은 플랫폼에 귀속되는 점을 제외하면 WIN ZIP 파일과 동일한 구조이다. 원하는 구조로 구성 가능. JDK의 JRE만으로도 실행 가능. WAR .war 확장자 파일은 servlet / jsp 컨테이너에 배치할 수 있는 웹 어플리케이션 압축 파일 포맷이다. 웹 응용 프로그램을 위한 포맷 → 웹 관련 ..

Web/SrpingBoot 2023.08.01
728x90