Spring(14)
-
Spring 그 시작과 핵심
2월 중반 취직을 하게되어 정신 없이 살다가 오랜만에 글을 작성하게 됩니다. 오늘은 가장 많이 사용되는 프레임 워크 중 하나인 Spring Framwork에 대해서 이야기 할까 합니다. Spring을 잘 하기 위해선 그 시작과 핵심을 알아야 한다고 생각합니다. 저또한 아직 스프링 애기 수준이기 때문에 다시 한번 되짚어 보려고 합니다. Spring이 없을땐 단순 Servlet 프로그래밍 이나 EJB (Enterprise Java Beans) 를 활용하여 웹개발을 진행 하였습니다. 허나 위 두가지 방법은 단점이 많았습니다. 서블릿은 여러 설정들을 적용하기 위해 여러 작업을 선행 하기 때문에 매우 불편하고 HTML 코드를 String 형태로 반환해야 하거나. POJO 기반의 프로그래밍이 어렵거나. 컴파일 및 ..
2023.04.30 -
Hello Spring Batch!, SpringBatch 시작하기
배치 프로그램이란 ? 대량의 데이터를 일괄 처리하는 배치 작업을 특정 주기에 맞춰서 필요한 작업을 하는 프로그램을 뜻합니다. Spring에서도 이와 같은 배치 프로그램을 쉽게 적용 할 수 있도록 하는 프레임워크가 Spring Batch 입니다. Spring Batche는 Accenture와 Spring Source의 합작으로 07년도에 탄생하였습니다. Accenture의 소스 및 기술, 노하우 등을 Spring Source는 기술 기반과 스프링의 프로그래밍 모델을 도입하였습니다. 즉 거진 Accenture가 소유하고 있던 소스들을 Spring Batch 프로젝트에 기증했다고 할 수 있습니다. 배치의 핵심 패턴 Read: 데이터 베이스, 파일, 큐에서 다량의 데이터를 조회합니다. Process: 특정 방법..
2022.09.09 -
WebFlux + MongoDB + SSE 로 채팅만들기
이번 시간엔 스프링 WebFlux와 NoSQL인 MongoDB 그리고 Server-Sent-Event, SSE 프로토콜을 이용하여 채팅 서비스를 만들어 보겠습니다. WebFlux란? Spring WebFlux는 Spring 5에 추가된 모듈로 Reactive-stack framework이며 Non-blocking에 reactive stream을 지원합니다. 적은 리소스로 효율을 극대화할 수 있다는 장점이 있습니다. 또한 스프링과 완벽하게 통합되며 비동기 non-blocking 메시지 처리가 가능합니다. 하지만 오류 처리가 복잡하다는 것과 자료가 부족하다는 단점이 있습니다. MVC와 WebFlux를 같이 쓸 순 없습니다. 때문에 Spring의 Reactive Stack과 Servlet Stack 중 선택을..
2022.09.04 -
@Transactional에 대하여
트랜잭션이란? DBMS에서 기능을 수행하기 위한 작업 혹은 상호작용의 단위이다. 즉 여러개의 쿼리를 하나로 묶는 단위이다 begin과 commit을 자동으로 수행해주기도 하며 예외 발생시 rollback 처리를 자동으로 수행한다. 먼저 트랜잭션에 대하여 간단하게 알아보자. 트랜잭션의 성질 (ACID) 1. 원자성 트랜잭션 내에서 실행한 작업들은 마치 하나의 작업인 것처럼 모두 성공하거나 모두 실패해야 한다. 2. 일관성 모든 트랜잭션은 일관성 있는 데이터베이스 상태를 유지해야 한다. 예를 들어 데이터베이스에서 정한 무결성 제약 조건을 항상 만족해야 한다. 무결성: 데이터의 정확성, 일관성, 유효성을 유지하는 것 무결성의 종류 개체 무결성: 기본키로 선택된 필드는 빈 값을 허용하지 않는다. 참조 무결성: ..
2022.08.30 -
우당탕탕 Nginx 적용기 ( 근데 이제 Actions를 곁들인.. )
현재 피플의 테스트 서버는 AWS Beanstalk에 배포하여 진행하고 있습니다. Beanstalk는 코드 ex) .jar 파일만 업로드하면 알아서 셋팅, 로드 밸런싱, Auto Scaling부터 애플리케이션 모니터링 까지 배포를 자동으로 처리하는 AWS의 서비스입니다. 사실상 많은 셋팅과 작업이 필요한 EC2의 업그레이드 버전이라고 할 수 있습니다. 뿐만 아니라 Beanstalk은 인스턴스에 대한 비용만 부과하기 때문에 추가적인 과금요소 또한 없습니다. CI/CD 자동 연결을 제외하면 Heroku와 매우 비슷합니다. 다만 Heroku는 트래픽 대비 금액이 비씨기 때문에 스타트업에서 가장 많이 사용되는 서비스로 뽑힌다고 합니다. 1. 스프링 설정 스프링 부트엔 Tomcat이 기본적으로 내장 되어 있고 T..
2022.08.18 -
Spring의 JDBC, SQLMAPPER, ORM
JDBC API - Java DataBase Connectivity - 자바에서 직접 지원하는 Database 연결 표준 인터페이스이다. Java Application 밑에 JDBC API가 있으며 API 관리하에 JDBC Driver Manager가 움직이며 DB와의 Connection을 연결, 관리 해준다. DB 제품에 따라 SQL문이 조금씩 달라지거나 조건이 상이하기 때문에 이를 JDBC Driver가 해결해준다. 즉 JDBC Driver만 사용하는 DB에 맞춰준다면 어떤 제품의 DB이던 사용이 가능하다 JDBC의 기본 동작 원리 ① Driver Manager가 Conneciton 인스턴스를 제공한다 ② Connection을 통해서 Statement를 얻고 ③ Statement를 통해 ResultS..
2022.05.12