시작하기 전에 대부분 국내 프로젝트는 스프링 프레임워크 기반의 자바 언어로 프로젝트가 이루어져 있다. 대세인 다른 언어들이 많이 있지만, 스프링 하나만 잘 알아도 국내 프로젝트에 투입되는데 문제없다는 걸 자주 들었다. 개발을 하다보면 반복적인 로직과 구글링에 의한 복사 붙여넣기가 생각 이상으로 많다. 오늘 알아볼 내용은 스프링 기반의 프로젝트에서 자주 사용되는 어노테이션과 메이븐 라이브러리(의존성)에 대하여 정리를 하고자 한다. 기본 개념 스프링에서의 어노테이션이란 스프링은 자바 기반의 프레임워크인데, 내장 기능으로 제공되는 어노테이션은 가독성에 요점을 두어, 직관적인 주석의 역할 + 관련 소스가 자동으로 생성 및 관리를 한다. 라이브러리 vs 의존성 라이브러리란, 특정 기능의 사용을 재사용가능한 코드의..
1. 개요 스프링 프레임워크 기반으로 개발을 하면서 파일 다운로드를 할 때 다양한 방법으로 적용할 수 있어서 볼 때마다 새로이 다시 공부하는 느낌이였다. 오늘은 내가 보기 편하게 찾을 수 있도록 Http프로토콜에서 파일 다운로드를 하는 방법을 정리하고자 한다. ※참고로 구현 가능한 기술들의 동향이 달라지기 때문에 변수가 존재하는 점을 참고해야 한다. 2. 내장 기능을 이용한 구현 방법 - 스프링 내장 기능을 이용한 다운로드 방법 스프링 프레임워크에서 HttpHeaders와 ResponseEntity를 이용하여 구현한다. 더보기 import org.springframework.core.io.FileSystemResource; import org.springframework.http.HttpHeaders; ..
1. 개요 클래스패스란 정확하게 뭔지 설명할 수도 없고, 이해도 가지 않았다. 스프링 프로젝트의 환경설정에서 클래스패스를 기준으로 경로가 지정되있는걸 많이 보았는데 정확하게 클래스패스란 어떤건지 내 기준으로 이해하기 위하여 이 글을 작성하게 되었다. 2. 클래스패스를 확인하는 방법 방법1. Build Path를 이용 프로젝트를 우클릭한다 -> Build Path -> Configure Build Path.. -> Source탭을 클릭 -> 하단의 Default Output folder 방법2. classPath파일을 참고 ctrl + shift + r -> .classpath파일을 연다. PS.단, 위 내용에서 클래스패스가 변경될 경우 동기화가 되지 않기 때문에 두 군대 모두 바꿔줘야하지만 왠만해서 변경..
Q0. 개요 프로젝트에 투입되어 개발을 하다보면 이미 구축된 환경에서 반복적인 개발을 하는 경우가 많다. 때문에 기본적인 환경 설정과 각 설정이 가지는 원리에 대해서는 생각을 해본 적이 없다 자바에서 Mybatis기반의 Mapper를 어떻게 찾는지, DB정보는 어디서 선언되어 실행되는지와 같은 설명들을 남들에게 설명해주려다 보니 말문이 막혔다. 애매하게 아는 것들이 많아서 오늘은 전체적인 스프링의 기본 환경 설정 파일에 대해 정리를 해보려고 한다. 참고로, 환경설정의 파일명과 위치가 달랐던 이유에 대한 부분에 초점을 맞춰서 주요 기능을 정리하였다. Q1. 환경 설정 파일 정리 참고로, 웹 어플리케이션을 실행하는데 필요한 클래스 파일, 설정 파일은 WEB-INF 폴더에서 관리한다. 1. 자바 웹 애플리케이..
다음 오라클 에러에 대해서 알아보도록 하자. ORA-00054: 리소스가 사용 중이어서 NOWAIT가 지정되었거나 시간 초과가 만료된 상태로 획득합니다. resource busy and acquire with NOWAIT specified. 1. commit을 안해서 LOCK걸린 경우 나의 경우에는 테이블 특정 컬럼의 길이를 변경하는 스크립트를 실행을 시키다가 에러가 발생하였다. 발생되는 원인을 확인해보니 다음과 같았다. 나를 포함한 누군가가 해당 테이블에 스크립트를 실행하고 커밋을 하지 않은 경우. 때문에, 해당 테이블에 진행 중인 트랜잭션이 완료되기 전까지는 LOCK에 걸려 작업을 할 수 없게 된다. 작업 중인 사용자를 찾아서 해당 테이블에 진행 중인 트랜잭션을 commit처리를 해야 한다. DB d..
Q0. 개요 오늘 알아볼 키워드 AOP, Filter, Interceptop, DI, IOC는 소프트웨어 개발을 할 때, 다양한 관점에서 사용되는 개념들이다. 크게 보면 키워드는 아래의 내용으로 정리된다. 간혹 1. 반복적인 공통 업무와 관련된 AOP, Filter, Interceptor 2. 의존성 주입과 관련된 DI, IOC 각 키워드는 무엇이고, 언제 어디서 사용해야하는지 알아보자. Q1. 각 키워드 개념 정리 1. Filter - 개념: 웹 어플리케이션에서 HTTP의 Request(요청), Response(응답)을 조작하는데 사용한다. - 위치 : 서블릿 컨테이너 - 용도 : HTTP 요청과 응답에 대한 전/후 처리. - 예 : ① 요청/응답의 문자 인코딩 처리하는 필터. ② 인증/권한과 같은 특..