728x90

Web/SrpingBoot 12

[Swagger & SpringBoot 3.x] 스프링부트 3.x 스웨거UI 적용- SpringDocs

Trouble스프링부트 2.x대에서 사용하던 Springfox 라이브러리가 메인테이너되지 않는 이슈... 진짜 별의별 레퍼런스를 찾아봐도 내 기존 Springfox콜랍 코드를 낫게해줄 처방전은 없었다ㅠ Solution스프링부트 3.x에서 Swagger를 적용하기 위해서는 SpringDocs 라이브러리를 활용해야함. 과정이 궁금한 사람들도 있을테지만, 이 블로그는 나의 동의보감 이니까 결론적인것만 담아보겠다.ㅎ Result(결론적인 해결과정)Step 1 : build.gradle많고 많은 의존성들이 있지만,내 개발 환경과, Swagger를 위한 의존성만 남겨보자면,plugins { id 'java' id 'org.springframework.boot' version '3.2.3' id 'i..

Web/SrpingBoot 2025.04.09

스프링과 객체 지향 프로그래밍 - SOLID(객체 지향 설계의 5가지 원칙) 관점

SOLIDSRP : 단일 책임 원칙Single Responsibility Principle한 클래스는 하나의 책임만 가져야 한다. 큰 책임이든, 작은 책임이든, 변경이 있을 때 파급 효과가 적어야한다. 변경이 있어도 다른 곳에는 영향을 끼치지 않게계층을 잘 나누는 것은 단일 책임 원칙을 지키기 위함이다.   OCP : 개방-폐쇄 원칙Open/Closed Principle소프트웨어 요소는 확장에는 열려있으나, 변경에는 닫혀있어야 한다. java에서의 다형성을 활용하여 OCP를 지킬 수 있다. 역할과 구현의 분리를 생각해보자.인터페이스(역할)를 구현한 새로운 클래스를 하나 만들어서 새로운 기능을 구현할 수 있다. 확장에는 열려있다 : 인터페이스를 구현한 새로운 클래스는 얼마든 만들 수 있다.변경에는 닫혀있다..

Web/SrpingBoot 2024.05.05

스프링과 객체 지향 프로그래밍 - 다형성 관점

객체 지향 프로그래밍 프로그램을 유연하고 변경이 용이하게 만들음. → 대규모 소프트웨어 개발에 많이 사용. 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나, 여러개의 독립된 단위, 즉 "객체들의 모임"으로 파악하고자 하는 것. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있음. 역할과 구현의 분리 세상을, 역할 & 구현으로 구분해보자. → 세상이 단순해지고, 유연해지며, 변경도 편리해진다! 클라이언트에게는 다음의 장점이 있다. 대상의 역할(인터페이스)만 알면 된다. (이거 자동차?ㅇㅇ 그럼 됐음. 운전 가능.) 구현 대상의 내부 구조를 몰라도 된다. (내부구조 알아야만 운전을 할 수 있는게 아니니까) 구현 대상의 내부 구조가 변경되어도 영향을 받지 않는다. (내부구조 바뀌어도 자동차 역..

Web/SrpingBoot 2024.04.24

스프링부트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

[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

스프링 입문을 위한 자바 객체 지향의 원리와 이해 4

객체지향 4대 특성 캡상추다 ▶ 클래스를 통해 구현됨(객체) 캡 : 캡슐화 : 정보 은닉 상 : 상속 : 재사용 추 : 추상화 : 모델링 다 : 다형성 : 사용 편리 클래스 vs 객체 != 붕어빵틀 vs 붕어빵 붕어빵틀은 붕어빵의 팩토리이다. 클래스 : 객체 = 펭귄 : 뽀로로 = 사람 : 김연아 클래스 : 분류에 대한 개념이지, 실체가 아니다. 객체 : 실체이다. 뽀로로, 김연아 : 객체 참조 변수 추상화 = 모델링 = java의 class 키워드 : 구체적인 것을 분해해서 관찰자가 관심있는 특성만 가지고 재조합하는 것. 추상 : 여러가지 사물이나 개념에서 공통되는 특성/속성 따위를 추출하여 파악하는 작용. 객체 : 세상에 존재하는 유일무이한 사물(unique) 생물이건 무생물이건 속성, 기능을 가진다..

Web/SrpingBoot 2023.07.19
728x90