본문 바로가기

spring10

40주간 진행한 사이트 프로젝트 후기 MANNALGA 코드 오픈 안녕하세요 에릭입니다. 오늘은 8개월간 진행한 사이드 프로젝트를 여러분께 소개하러 왔습니다! MANNALGA는 사람들과 모임을 밀접하게 연결해주는 서비스입니다. 이 프로젝트는 학습을 목표로 제작한 프로젝트입니다.그만큼 학습을 목표로 진행하는 사이드프로젝트를 어떻게 시작하고, 어떻게 진행하면 좋을지 참고할 수 있도록 저희가 진행한 모든 과정을 오픈하고자 합니다 개발 팀원 Eric Project leader & Backend developer Sight Backend developer Pompitzz Frontend developer 030ii Designer & Frontend developer 우리가 보여주고싶은 것들 MANNALGA 이용해보기! 백엔드팀의 영혼이 담긴 API .. 2021. 4. 18.
[Spring] 트랜잭션의 전파 설정별 동작 트랜잭션의 전파 설정이란 Spring에서 사용하는 어노테이션 '@Transactional'은 해당 메서드를 하나의 트랜잭션 안에서 진행할 수 있도록 만들어주는 역할을 합니다. 이때 트랜잭션 내부에서 트랜잭션을 또 호출한다면 스프링에서는 어떻게 처리하고 있을까요? 새로운 트랜잭션이 생성될 수도 있고, 이미 트랜잭션이 있다면 부모 트랜잭션에 합류할 수도 있을 것입니다. 진행되고 있는 트랜잭션에서 다른 트랜잭션이 호출될 때 어떻게 처리할지 정하는 것을 '트랜잭션의 전파 설정'이라고 부릅니다. 전파 설정 옵션 트랜잭션의 전파 설정은 '@Transactional'의 옵션 'propagation'을 통해 설정할 수 있습니다. 각 옵션은 아래와 같습니다. REQUIRED (기본값) 부모 트랜잭션이 존재한다면 부모 트.. 2020. 3. 4.
[Spring] Spring session을 Redis에 저장했을 때 어떻게 저장될까? 개요 Spring에서 Global session전략을 사용할 때 일반적으로 redis를 사용합니다. Spring redis session을 적용한 이후 실제로 redis에 접속하여 값을 조회할 일은 거의 없습니다. 그렇기 때문에 세션 정보가 redis에 어떤 자료구조로 어떻게 저장되는지 한번 확인해보겠습니다. 간단하게 세션에 값을 저장하는 예제를 만들어 보겠습니다. STS에서 Spring boot starter를 사용하여 간편하게 만들 수 있습니다. Spring code 해당 프로젝트의 코드는 github에서 모두 확인하실 수 있습니다. https://github.com/yyy9942/spring-redis-session-exam yyy9942/spring-redis-session-exam Contrib.. 2020. 1. 3.
[이슈 #5] 반복되는 로그인 체크 로직을 AOP로 리팩토링하기 로그인 체크가 필요한 상황 회원의 정보가 필요하거나, 해당 회원의 접근권한을 확인해야 할 때가 있습니다. 마이페이지, 내 정보 수정 등이 대표적인 예 입니다. DelFood 화면 프로토타입의 마이페이지는 다음과 같습니다. 해당 화면을 출력하려면 일단 회원 로그인이 먼저 진행되어야 합니다. 비회원의 경우에는 내 정보를 볼 수 없겠죠. 변경 전 프로젝트 코드 AOP를 적용하지 않은 상태에서는 다음과 같이 코드를 작성하여 권한을 확인하였습니다. 1. HttpSession에서 Member id 정보를 가져온다. 2. 가져온 id 정보가 null이면 401 status를 반환한다. 3. id가 null이 아니면 핵심 로직을 수행한 후 반환한다. Session 체크용 공통 모듈 SessionUtil Code pub.. 2019. 11. 1.
[Spring] XML 설정 기반 Bean autowire 속성 정리 1. autowire="constructor" Bean으로 등록된 Bean class의 인스턴스시 콜백되는 생성자에 선언된 파라메터 타입과 일치하는 설정파일에 등록된 빈이 존재하면 해당 빈의 인스턴스를 생성자에 주입합니다. 2. autowire="byName" Bean으로 등록된 Bean class의 인스턴스 직후 설정파일에 선언된 다른 빈의 인스턴스를 주입될 메서드 선언으로 취득 활용.(메서드 선언시의 메서드 명 기준) public void set + '주입을 받으려하는 자원의 빈등록시 id 또는 name 속성값'(주입대상 타입 선언) 3. autowire="byType" Bean으로 등록된 Bean class의 인스턴스 직후 설정파일에 선언된 다른 빈의 인스턴스를 주입될 메서드 선언으로 취득 활용.(.. 2019. 8. 23.
[Spring] 직접 spring 프로젝트 만들고 세팅하기 저번 포스팅에서는 표준 프레임워크를 이용해 Spring 프로젝트를 만드는 방법을 알아봤습니다. 하지만 여러 오류때문에 실제로는 사용하기 어려운 상태이고, 이번 포스팅인 직접 Spring을 생성하여 세팅하는 방법을 통해 프로젝트를 만들어보겠습니다. Ctrl + n을 누른 후 Spring을 검색해주세요. Spring Project를 누른 후 Next를 눌러주세요! 이번에는 Spring MVC Project를 생성해보겠습니다. 다음 창이 뜬다면 Yes를 눌러주세요. 패키징 이름은 일반적으로 사용하는 URL을 반대로 적은 후, 모듈 이름을 적어주는 방식입니다. 제가 공부하고 있는 ddit의 경우 ddit.or.kr의 URL을 가지고있으니 kr.or.ddit 형태로 만들 수 있습니다. Finish를 눌러 생성해주.. 2019. 8. 21.
[Spring] 표준 프레임워크 웹 프로젝트 만들기 전자정부 표준 프레임워크에 있는 eGoveFrame Web Project를 이용하여 만드는 방법입니다. 오류가 많이 납니다! 어떻게 만드는 지만 알아본 후, 다음 포스팅부터 직접 spring을 만들어보겠습니다. 이클립스에서 Ctrl + n 을 누른 후, eGov를 검색해주세요. 아래쪽에 있는 eGovFrame Web Project를 선택해준 후 Next를 눌러주세요. 다음과 같이 설정해준 후 Next를 눌러주세요. Target Runtime에는 사용하는 Tomcat 서버를, Dynamic Web Module version은 일반적으로 사용하는 3.0버전을 사용하겠습니다. 예제소스를 생성하고 싶다면 Generate Example을 체크해주신 후, Finish를 눌러 끝내주시면 됩니다. 예제 소스 없이 생성.. 2019. 8. 21.
[Spring] 이클립스 세팅하기(2) - 외부 웹 브라우저 설정, 메이븐 설정, 톰캣 서버 설정 1. 외부 웹 브라우저 사용 세팅하기 brow를 검색한 후 Web Browser 탭으로 들어가주세요. Use external web browser을 체크해주세요. 아래쪽 체크박스에서 사용하고자 하는 웹 브라우저를 선택해주세요! 2. 메이븐 설정 기본적으로 설정된 메이븐을 사용할 것이라면 이 부분은 넘어가셔도 됩니다! 메이븐을 기본 메이븐이 아닌 외부 메이븐으로 따로 설정해주고 싶다면, 다음과 같이 설정할 수 있습니다. 검색창에 maven검색 - Installations - Add를 눌러주세요. 설치한 메이븐의 경로를 설정해주세요. Apply를 눌러주세요. User Settings - Browse로 들어가주세요. 메이븐 설치 경로/conf/settings.xml 파일을 누른 후 열기를 눌러주세요. Appl.. 2019. 8. 21.
[Spring] 이클립스 세팅하기(1) - 메모리 추가, 워크스페이스 설정, Oracle XE연동 1. Eclipse 가용 메모리 추가하기. eclipse가 설치된 폴더에 있는 eclipse.ini를 열어주세요. 원하는 만큼 메모리를 변경해주세요. 2. 워크스페이스 설정하기. 이클립스가 처음 시작할 때, 워크스페이스를 변경할 수 있습니다. 이클립스가 설치된 폴더 내 있는 workspace폴더로 지정해주세요. 3. Oracle DB 연동 설정하기. Data Source Explorer에서 Database Connections를 우클릭 하신 후 New.. 를 눌러주세요. 사용하는 DB(Oracle)를 검색한 후, Name을 정해주고 Next를 눌러주세요. + 버튼을 눌러주세요. Oracle Thin Driver 11을 선택해주세요. JAR List탭으로 들어가서 기본적으로 설정된 ojdbc14.jar를 .. 2019. 8. 21.