Spring
[Spring] Interceptor, Resolver 객체 전달을 통한 리팩토링
[Spring] Interceptor, Resolver 객체 전달을 통한 리팩토링
2021.08.02Overview Interceptor와 Resolver 기존 방식 리팩토링 진행 후 코드 정리 📌 1. Overview 최근 프로젝트를 개발하면서 로그인 인증 처리와 세션 연장 처리 부분을 Spring Security 사용하지 않고 구현해보는 과정을 진행하였습니다. Interceptor를 사용하였고 인증된 UserSession 객체를 handler parameter에 전달하기 위해 HandlerMethodArgumentResolver를 사용하였습니다. 문제는 각각의 interceptor와 Resolver 구현체에서 Redis 조회가 이루어져 비용측면에서 비효율적인 부분이 보였습니다. 이를 개선해본 내용들을 블로그에 글로 정리해봤습니다. 📌 2. Interceptor와 Resolver Interceptor..
[Spring] 인터페이스 특징과 ISP(인터페이스 분리 원칙)에 대한 정리
[Spring] 인터페이스 특징과 ISP(인터페이스 분리 원칙)에 대한 정리
2021.07.21Java 인터페이스의 특징 OOP의 인터페이스 분리 원칙 인터페이스 상속 정리 📌 1. Java 인터페이스 특징 Java 인터페이스는 다형성을 가장 잘 보여주는 존재입니다. public interface RemoteController { void volumeUp(); void volumeDown(); } 리모컨이라는 인터페이스를 가지고 간단한 예시를 들어보겠습니다. @Component public class SRemoteController implements RemoteController { @Override public void volumeUp() { // volume up 로직 System.out.println("S사 리모컨 볼륨을 1단계 높였습니다."); } @Override public void ..
Outbox 패턴을 이용한 메일 발송 구현해보기
Outbox 패턴을 이용한 메일 발송 구현해보기
2021.07.08Github Repo https://github.com/beaniejoy/resetpw-outbox-scheduler Overview Eventual Consistency & Strong Consistency At Least Once? Outbox 패턴 코드 구현 📌 1. Overview 프로젝트 개발 중에 비밀번호 초기화 관련한 메일 발송 기능을 구현하는 과정이 있었습니다. 여기서 개념도 익힐겸 Eventual Consistency 고려해서 ALO(At Least Once) 방식을 적용한 메일 발송 기능을 구현해봤습니다. 📌 2. Eventual Consistency? Strong Consistency? 위 두 개의 Consistency 개념은 Multiple Replicas of a Database ..
[OOP] 객체 지향 프로그래밍은 무엇일까
[OOP] 객체 지향 프로그래밍은 무엇일까
2021.06.21Spring은 객체 지향의 꽃이라고 들었는데... 면접에서도 단골 질문 메뉴인 객체 지향은 무엇일까. 📌 객체 지향(Object Oriented) 개발자들이 더욱 편하게 개발할 수 있는 방법론을 고안하는 과정에서 나온 결과물 중 하나라고 생각 현실 세계를 프로그래밍적으로 잘 표현할 수 있는 모델 But, 우리는 개발자이므로 사물 관련된 것보다 추상적 대상에 대한 클래스화에 초점 (본인 생각으로는 확장과 분리를 잘 하게끔 만들어주는 좋은 틀이라 생각, OCP를 생각해보면 그렇습니다.) 구조적 프로그래밍 함수(function)가 가장 중요한 요소(함수 단위) Divide and Conquer(분할 정복)에 기반해 명령어를 논리적 단위로 나눠 블록화해 작성 객체지향 프로그래밍 등장 Object(객체) 단위로 ..
[Web] jsp web 개발 환경 설치하기 / mariaDB, tomcat-nginx
[Web] jsp web 개발 환경 설치하기 / mariaDB, tomcat-nginx
2020.01.18jsp와 tomcat-nginx 서버를 가지고 개발을 하기에 앞서 여러 요소들을 설치하고 개발 환경을 구축해야 합니다. 컴퓨터를 옮기면서 이것저것 생각하면서 설치하려다보니 예전에는 순차적으로 설치를 진행했는데 지금은 완전 뒤죽박죽이었습니다. 이에 대해서 한 번 정리해두는 것이 좋다고 생각해서 이번 게시물을 작성하게 되었습니다. 부디 다른 분들에게도 이 게시물이 도움이 되었으면 좋겠네요... :) 저는 웹프로젝트도 jsp기반으로 했기 때문에 이에 맞춰 nginx-Tomcat 서버와 함께 web개발 환경을 설치하려 합니다. 이번 게시물은 단순히 환경 구축 과정을 정리한 내용이므로 각 요소에 대한 의미와 개념에 대해서는 생략하도록 하겠습니다. 이거 적으려면 또 공부하고 정리해야되서 ㅎㅎ 차차 하도록 하겠습니다..
# jsp를 가지고 pagination/페이징 처리하기 (2)
# jsp를 가지고 pagination/페이징 처리하기 (2)
2019.12.20저번 글에서 페이징 처리에 필요한 변수들을 정리보았습니다. 이번 시간에 정리하는 글을 전부 전 게시글의 내용에 기반하는 것들이기 때문에 아직 안 읽으신 분들은 필히 읽고 이해하시고 오셔야 합니다! # jsp를 가지고 pagination/페이징 처리하기 (1) 링크 # jsp를 가지고 pagination/페이징 처리하기 (1) 웹페이지를 만들거나 게시판을 만들 때 중요한 요소 중에 하나가 페이징 관리(pagination)입니다. 배운 내용을 바로 복습해야 기억에 남을 것 같아서 이번시간에는 게시판 페이징 관리에 대해서 beaniejoy.tistory.com 이번 시간에는 페이징 처리 마무리하는 겸, 저번 시간에 구했던 변수들을 가지고 어떻게 페이징 처리를 구현하는지 정리해보려 합니다. 📌 1. 변수 처리하..