반응형

Programming 57

[Spring boot] 스프링 부트란???

Spring boot 1. Spring boot란? Spring을 더 쉽게 이용하기 위한 도구입니다. Spring은 다양한 기능을 제공하고 있지만, 그 기능을 사용하기 위한 설정에 많은 시간이 걸립니다. ex) Transaction Manager, Hibernate Datasource, Entity Manager, Session Factory 등 → Spring boot는 기존의 Spring의 오래 걸렸던 설정을 편리하게 도와주기 위해 나온 도구입니다. 2. Spring boot의 특징 Spring Boot는 자동설정(AutoConfiguration)을 이용합니다. 어플리케이션 개발에 필요한 모든 Dependency를 Framework에서 관리 jar 파일이 클래스 패스에 있는 경우 스프링 부트는 Dis..

[Spring] DI / IOC란? / 의존성을 주입하는 방법

DI / IOC 컨테이너란? IoC와 DI를 이해하기 전에 먼저 이해해야 할 개념이 있습니다. 그것은 바로 '컨테이너'입니다. 컨테이너란, 우리 대신 객체의 생성과 소멸 같은 부분을 전담해주는 역할을 합니다. IoC란(Inversion of Control)? 그대로 해석을 돌리면 제어의 역전이라고 합니다. 제어는 무언가를 조종하고 다루는 것, 역전은 바뀌는 것 입니다. 즉, 무언가를 조종하고 다루는 존재가 바뀌는 것을 IoC라고 합니다. 우리는 프로그램을 다룰 때, 우리가 직접 제어를 합니다. (예를 들어 객체의 생성을 직접 한다거나) 그러나 스프링에서는 우리가 아닌 다른 존재(컨테이너)가 제어를 합니다. 결과적으로, 스프링의 객체들을 생성하고, 제어하고, 소멸하는 존재는 컨테이너라고 볼 수 있습니다. ..

[Spring] POJO란? / POJO vs Java Beans

POJO란? Plain Old Java Object, 오래된 방식의 단순한 자바 오브젝트 즉, 객체 지향적인 원리에 충실하면서 환경과 기술에 종속되지 않고 필요에 따라 재활용될 수 있는 방식으로 설계된 오브젝트를 지칭합니다. 토비의 스프링에서는 특정 기술규약과 환경에 종속되지 않는다고 해서 모두 POJO라고 지칭할 순 없다고 합니다. 진정한 POJO란 객체지향적인 원리에 충실하면서, 환경과 기술에 종속되지 않고 필요에 따라 재활용될 수 있는 방식으로 설계된 오브젝트를 POJO 라고 설명하기도 했습니다. POJO가 주목 받은 배경 EJB(Enterprise JavaBeans) 기업의 IT 시스템의 요구사항이 늘어나고 기초적인 JDK로는 한계가 있어서 EJB 기술이 등장하였습니다. EJB의 경우에 아래의 문..

[JAVA]람다식이란? / 람다식의 특징 / Lambda Expression

1. Lambda 식이란? Java 8부터 지원되는 함수지향형 코드입니다. 람다식이란 함수명을 선언하고 사용하는 것이 아닌 식별자 없이 실행가능한 함수입니다. 절차형 프로그래밍, 객체지향 프로그래밍과는 다르게 함수의 구현과 호출만으로 프로그램을 만드는 방식인 함수형 프로그래밍에서 자주 사용됩니다. Lambda식은 함수형 프로그래밍 언어에서 사용되는 개념으로 익명 함수(Anonymous functions)를 지칭하는 용어입니다 함수(Method)를 간단한 ‘식(Expression)’으로 표현하는 방법위 메서드를 아래의 Lambda식으로 바꿀 수 있습니다 (a,b) -> a > b ? a : b int max(int a, int b){ return a > b ? a : b; } 익명 함수(이름이 없는 함수,..

[라이브러리] Swagger & REST API

Swagger가 나온 배경 협업을 위해 필요한 라이브러리 서버 개발자B가 클라이언트 개발자A에게 API 스펙이 담긴 문서를 전달해줍니다. 일반적으로는 엑셀이나 워드 등으로 API 스펙을 작성해서 보내줬습니다. 그럼 그 스펙 문서를 다시 수정해서 보내줘야되는 그런 귀찮은 부분들이 존재했습니다. 이런 문제와 더불어 수작업으로 진행되다 보니 오류 사항도 있었습니다. 그래서 이런 문제들을 해결하고자 해서 나온 라이브러리가 Swagger입니다. Swagger란?? 서버로 요청되는 API 리스트를 HTML 화면으로 문서화하여 테스트 할 수 있는 라이브러리를 의미합니다. 이 라이브러리는 서버가 가동되면서 @RestController를 읽어 API를 분석하여 HTML 문서를 작성합니다. 위에서 말한 서버로 요청되는 A..

Programming 2022.09.24

[Spring] 스웨거 어노테이션 / Swagger 2.0 vs Swagger 3.0 차이

Swagger Annotation Swagger란, 서버로 요청되는 API 리스트를 HTML 화면으로 문서화하여 테스트 할 수 있는 라이브러리를 의미합니다. Open API 2.0 (Swagger 2.0) vs Swagger 3.0 Swagger 3.0 Annotation Swagger 2.0 Description @Tag @API 클래스를 Swagger 리소스로 표시 @Parameter (hidden = true) or @Operation (hidden = true) or @Hidden @ApiIgnore API 작업에서 단일 매개 변수를 나타냄 @Parameter @ApiImplicitParam API 작업에서 단일 매개 변수를 나타냄 @Parameters @ApiImplicitParams API 작..

[JAVA] Generic이란??

Generic이란?? 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법 class Person { public T info; } public class GenericDemo { public static void main(String[] args) { Person p1 = new Person(); Person p2 = new Person(); } } T 는 info 필드의 데이터 타입입니다. Person 클래스를 정의하는 시점에서는 info의 데이터 타입을 명시적으로 지정하지 않고 있다가 Person을 인스턴스화 할때 안에 구체적인 데이터 타입인 을 언급하면 는 String이 되고 info의 데이터 타입은 String을 갖게 된다는 뜻입니다. 그럼 자연스럽게 인스턴스를 담아낼 수 있는 p1의 데..

[Programming] 자바와 자바스크립트 공통점과 차이점

자바와 자바스크립트, 개발 공부를 처음 시작하면 자바와 자바스크립트라는 이름의 '자바' 때문에 두개가 비슷하거나 같다고 생각할 수도 있다. 한 번씩 커뮤니티나 질문이 올라오는걸 보면 자바 게시판에 자바스크립트 질문 글이, 자바스크립트 게시판에 자바 질문이 올라오는 걸 종종 볼 수 있다. 자바와 자바스크립트 역사를 간단하게 살펴보면 이렇다. 자바는 Sun에서 개발한 언어로 자바스크립트보다 먼저 나왔다. 자바스크립트는 NetScape 사에서 개발하였고 초기엔 Mocha, LiveScript라는 이름으로 변경되었지만 자바가 인기가 많아짐에 따라 자바스크립트라는 이름을 쓰게 되었다고 한다. 그래서 자바와 자바스크립트는 엄연히 태생부터 다른 언어라고 볼 수 있다. 다만 공통점 몇 개를 살펴보자면 이렇다. 자바 v..

Programming 2022.06.19

[Spring] JSP & Servlet / JSP와 Servlet의 역할

자바를 배우면 JSP, Servlet, Spring 에 대해서 많이 배우고 듣게 되는데 오늘은 하나씩 알아보도록 하자! JSP, Servlet, 스프링을 각각의 특징을 간단하게 알아보는 포스팅이라 자세한 지식은 다음에 포스팅하도록 하겠다! 서블릿(Servlet) 서블릿은 서버에서 웹페이지 등을 동적으로 생성하거나 데이터 처리를 위해 자바로 작성된 어플리케이션이다! (HTML in JAVA) 쉽게 풀어보자면 '클라이언트 요청을 처리하고 그 결과를 다시 클라이언트에 전송하는 서블릿 클래스의 구현한 자바 프로그램' 이라고 이해하면 된다! 서블릿에서 좀 더 확장시킨 개념이 스프링이라 생각하면 된다!! 스프링도 서블릿을 통해 동작을 하기 때문에! JSP (Java Server Page) 간단하게 HTML 안에 자..

[Spring] MVC (Model, View, Controller) 패턴이란??

MVC 패턴이란??? 모델-뷰-컨트롤러(model–view–controller, MVC)는 소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴이다. 이 패턴을 성공적으로 사용하면, 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있다. MVC에서 모델은 애플리케이션의 정보(데이터)를 나타내며, 뷰는 텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타내고, 컨트롤러는 데이터와 비즈니스 로직 사이의 상호동작을 관리한다. 출처 - 위키피디아, mvc 패턴 사전적 의미는 위키피디아에서 가져왔지만 감이 아직 안잡힌다... 핵심만 간단히 풀어서 적어보려 한다.먼저 MVC패턴을 설..

반응형