이번 포스팅에서는 지금까지 진행했던 React 프로젝트와 Springboot 프로젝트, 그리고 MySQL DB를 도커라이징하여 컨테이너로 띄우는 과정을 정리하려고 한다.이 과정에서 여러개의 컨테이너를 띄우기 위해 Docker Compose를 사용할 예정이며 실제로 도커
이전 포스팅에서 wordpress와 MySQL DB를 Bind mount하는 예제를 살펴봤었다.그 과정에서 --link 옵션을 사용하여 MySQL 컨테이너와 wordpress 컨테이너를 연결했는데, 실제로는 docker network 기능을 사용하여 연결하는 것이 더
이번 포스팅에서는 컨테이너 내부에서 생성되는 데이터들을 관리하는 방법에 대해서 정리해보려고 한다.일반적으로 우리가 사용하는 컨테이너는 휘발성의 특징을 가지고 있다.즉, 컨테이너가 죽으면 내부의 모든 내용이 사라지는 특성이 있다.하지만, 우리는 컨테이너 내부에서 관리된
이전 포스팅에서는 Dockerfile을 작성할 때 이미지 크기를 최적화하는 방법에 대해 알아보았다.이번에는 Dockerfile에서 자주 사용되는 RUN , CMD , ENTRYPOINT 등의 지시어들의 차이점과 각각의 사용 방법에 대해 자세히 알아보도록 하자 👀1\.
어떻게 하면 Dockerfile을 효율적으로 사용할 수 있을까?이번 포스팅에서는 효율적인 Docker 이미지 생성을 위한 Dockerfile 작성 방법에 대해 간단하게 정리해보자 👀도커를 이용한 배포는 네트워크를 통한 배포가 가능하다는 특징이 있다.하지만, 이미지 파
# INTRO 이전 포스팅에서는 Docker에서 사용되는 레이어드 아키텍처라는 개념과 간단한 커맨드를 입력하고 로그를 살펴보는 식으로 정리했다. 이번 포스팅에서는 이전에 설명없이 작성했던 부분에 대해서 조금 더 자세히 정리해보려고 한다 👀
이번 포스팅부터는 Docker와 관련된 기초 개념부터 어떻게 우리가 만든 프로젝트를 컨테이너 기반으로 관리할 수 있는지를 정리해보려고 한다.사실 필자는 도커를 제대로 사용해본 경험이 없다.이번에 LG CNS AM Inspire Camp에서 도커 관련 내용을 수강하고 있
INTRO 이전 포스팅에서는 SpringSecurity의 formLogin을 사용한 세션 기반 인증에 대해 살펴봤다. 세션 방식은 구현이 간단하지만, 현대의 분산 시스템 환경에서는 한계가 있다. 특히 MSA(Microservice Architecture)와 같이 서
INTRO 이번 포스팅에서는 웹 애플리케이션에서 인증된 사용자를 식별하는 방법 중 하나인 쿠키(Cookie)와 세션(Session) 에 대해 정리해보려고 한다. HTTP는 기본적으로 Stateless(상태를 저장하지 않는 프로토콜) 이다. 즉, 사용자가 로그인한
INTRO 이번 포스팅에서는 스프링 시큐리티(Spring Security)를 활용하여 커스텀 로그인 기능을 구현하는 방법을 정리해보려고 한다. 기본적으로 spring-boot-starter-security 의존성을 추가하면 모든 요청이 인증을 요구하며, /login
이번 포스팅에서는 스프링 시큐리티(Spring Security) 의 기본 개념과 적용 방법을 정리해보려 한다.웹 애플리케이션에서 보안은 필수적인 요소이며, 특히 사용자의 인증(Authentication)과 권한 부여(Authorization)를 효과적으로 처리하는 것이
INTRO 이번 포스팅에서는 CORS 에러를 정리해보려고 한다. 사실 프론트엔드 서버에서 백엔드 서버로 Request를 보낼 때 마주하는 가장 흔한 에러가 바로 CORS 에러이다. 사실 이전에 Naver Map API를 사용하여 프론트엔드로 개발을 하면서 CORS
이번 포스팅에서는 이전에 MyBatis 기반으로 동작하던 Spring Boot 구조를 JPA로 변경하면서 배운 내용을 정리해보려고 한다.우선 JPA를 사용하게 된 배경을 살펴보자.MyBatis를 사용할 때는 Controller, Service, Mapper에서 자바 코
이번 포스팅에서는 Spring Boot에서 트랜잭션(Transaction)이 어떻게 동작하고, 어떤 방식으로 관리할 수 있는지 알아볼 예정이다 👀트랜잭션은 데이터베이스의 상태를 변화시키는 하나의 논리적인 작업 단위를 말한다.여러 작업들을 하나의 단위로 묶어서 '모두
INTRO 이번 포스팅에서는 Interceptor와 AOP가 스프링부트에서 어떻게 사용되는지 간단하게 정리할 예정이다. AOP 관련 개념은 이전에 Spring을 공부하면서 정리한 포스팅이 있기 때문에 간단하게 예제 코드를 작성해보는 식으로 살펴보자 👀 1. 인터
이번에는 Spring MVC 패턴을 적용하면서 궁금했던 HTML을 불러오는 부분을 정리해보려고 한다.미니 프로젝트를 진행하면서 궁금했던 또 다른 부분은 바로 컨트롤러 코드에 있었다.우선 코드를 살펴보자Sample Code위에서 작성된 UserController의 코드를
INTRO 이전 포스팅에서 DB까지 연결한 과정을 정리해봤다. 이번에는 미니 프로젝트를 MVC 패턴에 맞춰 개발하는 과정에서 생긴 궁금증과 그 해답을 정리해보려고 한다. (지금 생각해보면 어이없는 궁금증도 많았던 것 같다 😂) 1. UserMapper는 인터페
INTRO SpringBoot 프로젝트와 MySQL Database를 연결하는 방법을 정리하고자 한다. 제목에 LAB이 붙은 포스팅은 앞으로 개발하면서 마주쳤던 에러를 기록하고 어떻게 해결했는지를 정리하는 포스팅으로 작성하고자 한다. 1. What Project?
# INTRO 웹 애플리케이션을 개발할 때 가장 중요한 것은 코드의 구조화다. 잘 구조화된 코드는 유지보수가 쉽고, 확장성이 좋으며, 테스트하기 용이하다. 이번 포스팅에서는 스프링의 MVC 패턴과 DAL을 통해 효율적인 계층형 아키텍처를 구현하는 방법을 알아보
이번 포스팅에서는 OOP의 한계를 해결하기 위해 등장한 AOP의 개념을 살펴보고, 스프링에서는 이 개념을 어떻게 사용하는지를 살펴보자 👀AOP는 관점 지향 프로그래밍이라고 하며, 어플리케이션의 핵심 비즈니스 로직과 공통적인 기능 (횡단 관심사, cross-cuttin