Data Transfer Object (DTO)
📘 Backend/Spring2023. 4. 2. 13:17Data Transfer Object (DTO)

📘DTO (Data Transfer Object) HTTP Method별로 or Request, Response 별로 받아올 필드값(Request)과 보내줄 필드값(Response)을 잘 생각해서 필드값 설정 Mapstruct로 자동매핑이 어려운 필드의 경우 서비스클래스에서 비즈니스로직으로 처리하자. DTO 클래스 = 요청 데이터를 하나의 객체로 전달받는 역할 DTO를 적용하기 전엔 요청데이터를 @RequestParam을 통해 일일이 받았지만, 데이터가 많아질수록 @RequestParam의 개수도 많아질 것이다. DTO 클래스를 적용함으로써 코드의 간결성을 충족시킬 수 있다. DTO를 쓰는 가중 중요한 이유는 HTTP 요청의 수를 줄여 비용절감을 하는 것 아래에서 볼 예시는 DTO, 데이터 유효성 검증을..

Spring MVC & Rest API & Servlet
📘 Backend/Spring2023. 4. 2. 12:11Spring MVC & Rest API & Servlet

📘Spring Web MVC Spring의 모듈중 하나로 Suvlet API를 기반으로 웹계층을 담당 클라이언트의 요청을 편리하게 처리해주는 프레임워크 서블릿(Servlet)이란? 서블릿에 대해서는 ‘Spring Framework을 배워야 하는 이유’ 챕터에서 잠깐 언급을 한적이 있다. 서블릿은 클라이언트의 요청을 처리하도록 특정 규약에 맞추어서 Java 코드로 작성하는 클래스 파일이다. 그리고 아파치 톰캣(Apache Tomcat)은 이러한 서블릿들이 웹 애플리케이션으로 실행이 되도록 해주는 서블릿 컨테이너(Servlet Container) 중 하나임. Model Spring MVC 에서 'M' 에 해당 처리한 작업의 결과 데이터를 의미함 View Spring MVC 에서 'V&#..

AOP (Aspect Oriented Programming)
📘 Backend/Spring2023. 4. 2. 10:32AOP (Aspect Oriented Programming)

📘 AOP (Aspect Oriented Programming) 란? 어플리케이션에 필요한 기능 중 공통적으로 적용되는 공통 기능에 대한 관심과 관련됨 공통관심사항 어플리케이션 전반에 걸쳐 공통으로 사용되는 기능들 핵심관심사항 어플리케이션의 주 목적을 달성하기 위한 핵심 로직에 대한 관심사 커피 주문 어플리케이션 예시 핵심관심사항 = 메뉴등록,주문기능 공통관심사항 = 어플리케이션 보안 AOP가 필요한 이유 코드의 간결성 객체 지향 설계 원칙에 맞는 코드 구현 코드의 재사용성 핵심 포인트 AOP(Aspect Oriented Programming)는 관심 지향 프로그래밍이다. AOP에서 의미하는 Aspect는 애플리케이션의 공통 관심사를 의미한다. 애플리케이션의 공통 관심사는 비즈니스 로직을 제외한 애플리케..

Container Config & Component Scan
📘 Backend/Spring2023. 4. 2. 10:15Container Config & Component Scan

📘 Container Config 가장 중요한 Annotation 2가지 @Configuration @Bean Method가 Spring Container에서 관리할 새 객체를 인스턴스화, 구성 및 초기화 하는걸 나타내는데 사용됨 AnnotationConfigApplicationContext 를 사용하여 스프링 컨테이너를 인스턴스화 하는 방법 ApplicationContext 구현은 아래와 같은 Annotation이 달린 클래스로 파라미터 전달 받음 @Configuration 클래스 @Component 클래스 JSR-330 Metadata @Configuration 클래스가 입력으로 제공되면 @Configuration 클래스 자체가 Bean 정의로 등록되고 클래스 내에서 선언된 모든 @Bean 메소드도 ..

Spring Container & Bean & Singleton
📘 Backend/Spring2023. 4. 2. 09:40Spring Container & Bean & Singleton

📘 Spring Container Bean의 lifecycle 관리(Bean 생성,관리,제거 등) Spring Framework의 핵심 개념이 필요한 이유를 이해할 수 있다. Spring Framework에서 DI(의존성 주입)이 어떠한 방식으로 구현되는지 설명할 수 있다. 객체 지향 설계에서, AOP가 필요한 이유를 설명할 수 있다. Spring Framework에서 AOP가 어떤 방식으로 구현되는지 설명할 수 있다. ApplicationContext = Spring Container (interface), 다형성 적용 XML, 애너테이션 기반의 자바 설정 클래스로 만들 수 있음 컨테이너는 개발자가 정의한 Bean을 객체로 만들어 관리하고 개발자가 필요로 할 때 제공 스프링 컨테이너를 통해 원하는 만큼..

Spring Framework 란?
📘 Backend/Spring2023. 4. 2. 09:33Spring Framework 란?

📘 Spring Framework 장점 효율적인 코드 작성 (무베이스 코드작성 < 기본베이스 코드작성) 정해진 규약에 따른 유지보수성↑ POJO(Plan Old Java Object) 기반의 구성 DI(Dependency Injection) 지원 AOP(Aspect Oriented Programming, 관점지향 프로그래밍) 지원 Java 언어를 사용함으로써 얻는 장점 단점 학습해야 할 것이 많음 유연한 개발이 어렵다 Spring Boot 사용 이유 XML 기반의 복잡한 설계 방식 지양 의존 라이브러리의 자동 관리 애플리케이션 설정의 자동 구성 프로덕션급 애플리케이션의 손쉬운 빌드 내장된 WAS를 통한 손쉬운 배포 📘 POJO (Plain Old Java Object) 란? 자바로 생성되는 순수한 객체 ..

📦 Database/Firebase2023. 4. 2. 09:12Firebase 란?

💡 FireBase 소개 BaaS 플랫폼으로 제공되는 포괄적인 도구 및 서비스 제품군으로, 개발자가 모바일 및 웹 어플리케이션을 모두 쉽게 생성, 실행 및 확장할 수 있게 하며, 실시간으로 데이터베이스, 인증, 스토리지, 호스팅 및 기타 기능을 모두 단일 플랫폼에서 관리할 수 있다. 위의 모든 기능을 하나의 Firebase에서 전부 지원하므로, 고품질 모바일 및 웹 어플리케이션을 구축, 배포 및 성장시키기 위한 포괄적 플랫폼을 제공한다. 즉, 개발자가 인프라 구축 & 관리할 필요 없이 다양한 도구와 서비스를 제공하는, 모바일 및 웹 어플리케이션 통합 개발 플랫폼이다. 데이터베이스 Firebase는 연결된 모든 기기에서 실시간으로 데이터를 동기화하는 실시간 데이터베이스를 제공한다. 개발자가 유연하고 확장 ..

image