본문 바로가기

Spring14

토이 프로젝트 - NaverPay 회고 KDT 핀테크 서비스 백엔드 개발자 3기 두 번째 토이 프로젝트가 끝났다. 이번 토이 프로젝트는 Spring의 MVC 구조를 익히는 것을 목적으로 네이버페이의 첫 화면부터 로그인 후 결제내역에 들어가 이전 구매내역들을 보고, 삭제할 수 있는 기능을 구현하기로 했다. 이번 프로젝트는 팀으로 진행하게 되었는데, 팀에서 전공자가 나 하나 뿐이라 내가 팀장의 역할을 하며 팀을 이끌어나갈 필요가 있었다. 다행히 대학에서 팀 프로젝트 팀장, 조별과제 팀장을 해본 경험이 있어 그 당시 팀장을 하며 힘들었던 점, 이렇게 진행했으면 더 좋았을 것 같다고 생각했던 점들을 생각하며 체계적으로 팀을 이끌어가려고 했다. 가장 먼저 우리 팀원끼리 편하게 사용할 수 있는 레포지토리를 생성했다. 현업에서 자주 사용하는 브랜치 .. 2022. 11. 24.
Spring - Filter / Interceptor 필터와 인터셉터 이 둘은 모두 웹과 관련된 공통 관심사를 처리할 때 사용한다. 그렇다면 이 둘은 뭐가 다른 것일까? 이번 포스트에서는 필터와 인터셉터에 대해 알아보겠다. Filter 필터는 J2EE 표준 스펙 기능으로 정확한 이름은 서블릿 필터이다. Dispatcher Servlet에 요청이 전달되기 전후에 URL패턴에 맞는 모든 요청에 대해 부가작업을 처리할 수 있는 기능을 제공한다. 따라서 스프링 컨테이너가 아닌 WAS같은 웹 컨테이너에 의해 관리된다. 필터는 체인으로 구성되며 중간에 필터를 자유롭게 추가 및 제거할 수 있다. 예를 들면 로그를 남기는 필터를 먼저 적용한 후 로그인 여부를 체크하는 필터를 이후에 추가할 수 있다. 필터는 적절하지 않은 요청이 들어올 경우 HTTP요청이 서블릿까지 도달하.. 2022. 11. 23.
Spring - MyBatis MyBatis 지난 포스트에서 데이터베이스에 접근하는 방법으로 복잡하고 반복되는 알고리즘을 대신 처리해주는 API, JdbcTemplate에 대해 다룬 적 있습니다. 오늘은 JdbcTemplate보다 더 편하게 데이터를 매핑하고 액세스할 수 있는 MyBatis에 대해 알아보도록 하겠습니다. MyBatis는 SQL 기반 웹 애플리케이션을 개발할 때 많이 사용되는 SQL Mapper / ORM 프레임워크이며 스프링과는 상관없는 독립적인 프레임워크입니다. ORM 이란 Object Relational Mapping의 약어로 자바 객체 필드와 관계형데이터베이스(RDB) 데이터를 자동으로 매핑해주는 것을 말합니다. 객체 지향 프로그래밍은 클래스를 사용하고 관계형 데이터베이스는 테이블을 사용하기 때문에 객체 모델과 .. 2022. 11. 21.
Spring - Transaction Manager 스프링에서는 @Transaction 어노테이션을 이용한 트랜잭션 처리를 지원합니다. 이번 포스트에서는 트랜잭션이란 무엇이고 스프링에서 트랜잭션 처리를 어떻게 하는지에 대해 살펴보겠습니다. 트랜잭션이란? 트랜잭션은 DB 상태를 변화시키기 위해 수행하는 작업의 논리적인 단위를 말합니다. 여기서 DB 상태를 변화시킬 수 있는 행동이란 SELECT, UPDATE, INSERT, DELETE, CREATE, DROP 같은 행위를 말합니다. 여기서 SELECT는 데이터베이스 상태를 변화시키진 않지만 트랜잭션으로 관리하면 좋습니다. 왜냐하면 SELECT를 수행하는 동안 해당 테이블을 업데이트할 수 없도록 하고, 보통 SELECT를 한 결과를 UPDATE,INSERT,DELETE의 매개변수로 이용할 수 있기 때문입니다.. 2022. 11. 21.