진짜 개발자
본문 바로가기

전체 글 (총 582개)

Spring JPA - JPA를 이용해 Commerce App 만들기 - 5 (컨트롤러 개발 및 뷰 개발) 이번 포스팅에서는, 실질적으로 사용자가 접근 요청을 하는 부분인 Controller와 사용자가 보게될 화면을 구현하도록 하겠습니다. 전체코드 : https://gitlab.com/galid1/jpa-commerce 1. 표현 계층의 역할 우리가 오늘 작성할 표현계층에서는 아래와 같은 일들을 수행합니다. 사용자의 요청값을 검증 사용자의 요청을 Service 계층에서 처리할 수 있는 형태로 변환합니다. Service 계층에 비즈니스 로직을 위임하고 결과값을 Model에 맵핑하여 View에 전달 결과값을 사용자에게 반환합니다. 2. 구현 2.1 ItemController 구현 @Controller @RequiredArgsConstructor public class ItemController { private ..
EventDriven - 이벤트주도 설계 따라해보기 (RabbitMq) 목표 이벤트 주도 설계를 이용하지 않았을 때의 문제점에 대해 알아볼 것 입니다. 이벤트 주도 설계를 이용한 뒤 유지보수성 향상, 도메인 로직의 명확성 향상, 어플리케이션의 성능과, 클라이언트의 경험을 향상 시킬 것 입니다. 서비스 확장이 편리한지, 확인합니다. 주의사항모듈간의 이벤트를 주고받기 위해 사용된 RabbitMq는 Docker를 이용해 설치했으며, 이 글에서 자세히 다루지 않습니다.이벤트주도 설계에 매우 정확한 지식을 가지고 설계한 것은 아니며, 이벤트로 모듈간 통신을하면 이런, 장점들이 있구나를 알아보기 위한 모의 시뮬레이션정도로 봐주시면 감사할것 같습니다. (제가 잘못된 지식을 가지고 있는 경우, 필히 댓글로 알려주시면 정말 감사드리겠습니다! 추가적으로 정확한 지식은 알아가고 있습니다~) 어..
Mysql - Mysql(InnoDB)를 사용할때 성능을 위해 알아야하는 것(Index의 중요성) 이번 포스팅에서는, 자신이 DBMS로 mysql 을 사용한다고 말한다면, 당연히 알아야하는 것에 대해 간단히 알아보려고합니다. 1. Mysql의 구조 먼저, Mysql을 사용할 때 기본으로 알아야하는 것에 알아보기 전에 이해를 돕기 위해, Mysql의 기본구조를 간단하게 살펴보도록 하겠습니다. Mysql은 크게 Mysql 엔진과, 스토리지 엔진 부분으로 나뉩니다. 1.1 Mysql 엔진 Mysql 엔진은 파서, 전처리기, 옵티마이저, 쿼리실행기 등으로 구성되어 있으며, 사용자의 요청을 받아, 쿼리를 검사하고, 스토리지 엔진에게 데이터 읽기 또는 변경에 대한 실행 요청을 합니다. 1.2 스토리지 엔진 스토리지 엔진은 실질적으로, 데이터 파일로부터 데이터를 읽거나, 데이터를 쓰고 변경하는 작업을 진행합니다...
서버 운영 - 다중 인스턴스 환경에서의 session (고가용성 환경 session, 세션 클러스터링, 스티키 세션) 고가용성 session 다중 인스턴스 환경에서의 SessionWeb Server가 고가용성을 유지하기 위해서는, 같은 역할을 수행하는 서버가 한대이상이 동시에 동작하고 있어야 합니다.보통 Load Balancer를 이용해 이들 서버에 적절히 부하를 분산하며, 한쪽 서버가 연결이 안된다면, 다른 정상 서버로 사용자의 요청을 보냅니다. 문제점 Session을 이용해 사용자의 로그인을 다루는 경우, 하나의 instance에서 어플리케이션이 동작한다면, 아무런 문제가 없습니다. 하지만 instance가 두개 이상이라면 문제가 있습니다. 사용자가 로그인 요청을 보내었으며, Load Balancer의해 1 instance에 요청이 전달되었고, 해당 인스턴스에서 session을 생성했습니다. 이 후 사용자..