분류 전체보기 129

JPA란?

JPA(Java Persistence API) - 자바 진영의 ORM 기술 표준 JPA의 특징JPA가 개발자를 대신하여 적합한 SQL을 생성하여 DB에 전달하고, 객체를 자동으로 Mapping 해주기에 SQL을 직접 작성하지 않음ex. Hibernate(JPA를 구현한 대표적인 오픈소스)JPA의 장점DBMS에 대한 종속성이 줄어들어  생산성이 뛰어나고 유지보수가 용이하다JPA의 단점JPA의 장점을 살려 잘 사용하기 위해서는 학습 비용이 높고, 복잡한 쿼리를 사용할 때 불리하다.잘못 사용할 경우,  SQL을  직접 사용하는 것보다 성능저하 이슈가 발생할 수 있다. JPA를 실제로 사용하는 방법1. build.gradle 파일의 dependencies에 JPA 관련 항목을 추가한다.implementation..

카테고리 없음 2025.04.13

Layered Architecture - 어플리케이션의 구조

Layered Architecture 애플리케이션을 담당하는 기능을 기준으로 몇 가지 계층으로 나누어 만드는 아키텍처로 각 서로 독립적이다.추상화 : 상위 계층은 하위 계층의 구체적인 구현을 알 필요가 없다.느슨한 결합 : 계층 간 의존성을 주려서 유지보수와 확장성이 높다.물론 서로 인접한 레이어에만 의존성을 지니며, 계층이 분리되어 있어 복잡도가 감소하고 테스트가 용이하다. 각 레이어별 담당 기능레이어 이름담당하는 기능주요 구성요소Presentation Layer스프링부트의 controller 패키지에 해당하며, HTTP 요청을 처리하고 응답을 반환한다.클라이언트 요청 수신 및 파라미터 추출입력 데이터 유효성 검사Service 계층 호출 및 비즈니스 로직 실행 요청데이터를 클라이언트에 적합한 형태(JS..

스프링에서 데이터베이스에 접근하는 방법

스프링 데이터베이스 접근1. 스프링 외부의 데이터베이스 접근 라이브러리를 사용하는 방식(Mybatis, Hibernate)2. 스프링 데이터(Spring Data) - JPA, JDBC, MongoDB3. 스프링 프레임워크에서 제공하는 JDBC  JDBC(Java Database Connectivity)란?자바 언어와 DB를 연결해주는 통로로, 자바에서 데이터베이스에 접근할 수 있도록 해주는 API단, 반복적이고 지루한 코드 작성이 필요하며, SQL 예외 처리, 리소스 관리 등 복잡한 작업을 직접 처리해야 함  Spring JDBCJDBC의 복잡성을 줄이기 위한 Spring 프레임워크의 일부로 데이터베이스 작업을 단순화하고 코드 양을 줄어줌.기존 JDBC 코드의 많은 부분을 추상화하고, 템플릿 디자인 패..

Spring Boot의 기초 어노테이션

Annotation이란?• Annotation(@) 는 사전적 의미로 주석• Java에서 @ 로 시작하는 문법 요소로, 코드에 메타데이터를 추가하는 방법• 코드 사이에 주석처럼 쓰이지만, 단순 주석과 달리 특별한 의미와 기능을 수 행하게 함  Annotation 장점과 사용법장점사용 순서• 코드량 감소• @ 를 정의한다.• 유지보수 쉬움• 클래스에서 @를 배치한다.• 생산성 증가• 코드가 실행되는 중 추가 정보를 획득해 기능을 실시한다. Spring Boot Annotation 종류 어노테이션의미@SpringBootApplication• Spring Boot 어플리케이션 실행 초기 진입점에 위치하는 어노테이션• 애플리케이션의 구성을 자동으로 설정• 애플리케이션 패키지 내의 모든 컴포넌트를 스캔하고 빈으로..

스프링부트의 의존성 주입 (@Bean, @Configuration, @Component, @Autowired

DI (Dependency Injection, 의존성 주입)구성 요소의 의존 관계가 소스코드 내부가 아닌 외부의 설정 파일을 통해 정 의됨즉, 외부에서 객체를 주입 받아 사용함이를 통해 코드 간의 재사용률을 높이고, 모듈 간의 결합도를 낮출 수 있음  의존성이란?특정 클래스가 존재해야지, 다른 클래스에서 작업을 수행할 수 있다면 의존성이 있다고 한다.프로젝트 기획이 변경되었다면 양쪽 클래스 모두를 수정해야 하는 경우가 발생할 수 있다.  의존성 주입(DI, Dependency Injection 1.  생성자를 이용한 의존성 주입 public class BoardService { private final IBoardPersistence persistence; // 인터페이스 // 생성자를 이용해 객체 주..

Spring Boot를 이용해 데이터 주고받기

MIME Type( Multipurpose Internet Main Extensions)인터넷에서 파일의 형식을 나타내는 표준이메일에 첨부된 파일의 형식을 나타내기 위해 처음 개발되었으나 현재는 웹에서 광범위하 게 사용됨  MIME Type의 종류text/plain, text/htmlimage/jpeg, image/pngaudio/mpegvideo/mp4application/pdf, application/vnd.ms-excel, application/json, application/zip  HTTP Content-Type • 요청 바디에 들어가는 타입을 요청 헤더의 Content-Type 에서 명시• Content-Type 는 HTTP 통신에서 MIME Type 값을 전달하는 헤더  Content-Typ..

REST API

API( Application Programming Interface) • 한 프로그램에서 다른 프로그램으로 정보를 주고받기 위한 규약(약속)• 모든 프로그램은 API를 가질 수 있음 REST• 웹 서비스 개발에 널리 사용되는 아키텍처 스타일• HTTP 프로토콜 위에서 동작• HTTP URI를 통해 자원(Resource) 명시, HTTP Method를 통해 자원에 대한 CRUD 작업을수행• 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미 REST API( representational state transfer API)클라이언트와 서버 간의 통신 방식을 정의할 때 REST 아키텍처 스타일을 따르는 APREST 기반으로 서비스 API를 구현한 것  REST 규칙..

Thymeleaf 란?

Thymeleaf 란?• 스프링부트에서 작성한 HTML 태그에 추가되는 value 값을 작성하기 편하게 하는 오픈 소스 템플릿 엔진•  HTML 태그에 속성을 추가해 페이지에 동적으로 값을 추가하거나 처리할 수 있게 도와주는 것 • 주로 스프링부트에서 Test 용으로 간단한 html  파일을 작성할 때 사용하며, 형태만 다를 뿐 ejs와 사용하는 의도는 다르지 않다.    Thymeleaf 표현식서버에서 전달받은 데이터를 사용자들이 볼 수 있는 뷰로 만들기 위해 사용되는 정해진 규칙(표현식)  Thymeleaf 문법용어의미 사용법th:text태그 안의 텍스트를 서버에서 전달받은 값에 따라 표현하고자 할 때 사용하 는 문법messageth:utext변수에서 받은 값에 html 태그가있다면 태그 값을 반영해..

Spring MVC

MVC 패턴이란?Model데이터와 비즈니스 로직 처리View사용자에게 보여지는 HTML 파일이 위치함Controller사용자의 요청을 받아 처리하고 적절한 Model 을 호출한 후, 그 결과를 View 에게 전달 Spring MVCSpring 에서 제공하는 웹 모듈로 웹 애플리케이션을 빌드하기 위한 프레임워크MVC 패턴을 지원하고 DispatcherServlet이라는 특수 서블릿을 통해 요청 처리DispatcherServlet은 스프링 MVC의 핵심으로 모든 종류의 요청을 받아 적절한 Controller 에게 전달하고 그 결과를 다시 사용자에게 반환하는 역할을 함. Servlet이란? • 요청을 수신하고 응답을 반환하는 프로그램을 만들기 위한 자바 표준 기술• 일반적으로 HTTP 프로토콜 사용 (프로토콜..