본문 바로가기

오픈소스/스프링

[Spring] 스프링 빌드 시 Nexus 레파지토리 저장 - 메이븐과 연계 넥서스는 저장소 관리자이므로 가장 중요하고 많이 사용하는 기능은 아티팩트를 등록하고 관리하는 것입니다. 이클립스에서 메이븐 프로젝트를 빌드하게 되면 프로젝트 내의 설정으로 빌드가 되지만 대부분 로컬 레파지토리에 저장되는 편입니다. 이번에 할 내용은 넥서스라는 사설 레파지토리를 통해 메이븐에서 빌드 할 시 사설 레파지토리에 빌드 파일이 업로드 되는 형태의 환경을 구축해보도록 하겠습니다. 메이븐에서도 저장소의 종류가 따로 있는데요. 크게 아래와 같습니다. 넥서스 저장소 종류 로컬 저장소 : 메이븐은 다운받은 아티팩트를 캐싱하고 있으며 이 파일 시스템을 로컬 저장소라고 합니다. 원격 저장소 : 넥서스처럼 메이븐이 구동되는 외부에 있는 서버는 원격저장소가 된다 중앙 저장소 : 메이븐에 기본 설정된 저장소입니다... 더보기
[Spring] Nexus Role 생성, User 생성, Repository 생성 많은 SI 회사에서는 넥서스를 이용하여 레파지토리를 관리하고 있을 것입니다. 회사만의 소스코드의 보안과 유지보수를 하기 위해 많이 nexus를 이용하고 있는데요. 특히 maven에서 사용하는 사설 레파지토리라고 많이 알고 있는 넥서스를 설치했다고 가정하고, 규칙과 유저 생성 및 레파지토리를 생성하도록 하겠습니다. 레파지토리를 건드리는 만큼 기본적인 저장소의 종류에 대해 간략하게 소개하도록 하겠습니다. 아래 내용을 참고해주세요. 저장소 종류 프록시 저장소 : 프록시 저장소는 메이븐 중앙 저장소등 원격지에 있는 저장소를 미러링한다. 호스트 저장소 : 기업용 사설 저장소, 업로드는 호스트 저장소만 가능하다. 가상저장소 : 다른 유형의 저장소의 아답터로 동작한다. 그룹저장소 : 여러종류의 저장소를 논리적으로 묶.. 더보기
[Spring] ExceptionHandler 을 사용하여 Transaction 구현 프로그래밍 관점에서 예외처리는 아주 중요하다고 생각합니다. 예외 처리가 안된 부분은 서버의 무리가 생기게 되고 공격의 취약점이 될 수 있습니다. 자바에서 대표적으로 예외 처리를 하는 방법에는 try-catch 문을 이용하여 적용하는 방법이 있습니다. 하지만 오늘 해볼 내용은 스프링 관점에서 예외처리를 할 예정입니다. 스프링 관점에서 예외처리를 한다고 생각해봅시다. 스프링 프로젝트 중 MVC 패턴 등 쿼리를 이용하여 데이터를 처리하고 여러가지 트렌젝션도 처리된다고 생각해봅시다. 트렌젝션을 처리하는 도중 에러가 발생한다면 Exception 구문으로 들어가게 되는데, 해당 Exception이 롤백을 지원하게 되는지, 안하는지에 따라서 데이터의 손실과 저장 유무가 달라지게 되는 것 입니다. 본 내용에서는 Exc.. 더보기
[Spring] ExceptionHandler 적용 및 사용법 프로그래밍 관점에서 예외처리는 아주 중요하다고 생각합니다. 예외 처리가 안된 부분은 서버의 무리가 생기게 되고 공격의 취약점이 될 수 있습니다. 자바에서 대표적으로 예외 처리를 하는 방법에는 try-catch 문을 이용하여 적용하는 방법이 있습니다. 하지만 오늘 해볼 내용은 스프링 관점에서 예외처리를 할 예정입니다. 스프링 관점에서 예외처리를 한다고 생각해봅시다. 스프링 프로젝트 중 MVC 패턴 등 쿼리를 이용하여 데이터를 처리하고 여러가지 트렌젝션도 처리된다고 생각해봅시다. 트렌젝션을 처리하는 도중 에러가 발생한다면 Exception 구문으로 들어가게 되는데, 해당 Exception이 롤백을 지원하게 되는지, 안하는지에 따라서 데이터의 손실과 저장 유무가 달라지게 되는 것 입니다. 대략적으로 일단 Ex.. 더보기
[Spring] Cannot load JDBC driver class 'oracle.jdbc.OracleDriver' ERROR: org.apache.ibatis.executor.BaseExecutor - Could not get a databaseId from dataSource java.sql.SQLException: Cannot load JDBC driver class 'oracle.jdbc.OracleDriver' 톰켓이 데이터베이스와의 접근 중 에러가 발생한 상황입니다. 톰켓에서 오라클 드라이버가 설정되지 않아서 생기는 에러 로써 오라클을 설치한 폴더 안에 있는 jdbc 파일을 톰캣 라이브러리 에 넣으면 오류가 해결되었습니다. 해결 방안은 아래와 같습니다. # Contents 해결 방안 # 해결 방안 설치되어 있는 오라클의 라이브러리를 복사 합니다. 경로는 다음과 같습니다. 오라클 설치한 폴더\product\1.. 더보기
[Spring] Mybatis 사용 중 에러 해결 -TroubleShooting org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping#0': Invocation of init method failed; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.mybatis.spring.SqlSessionFactoryBean] for bean with name 'sqlSessionFactory' defin.. 더보기
[Spring] 스프링 트렌젝션 사용 중 에러 해결 - TroubleShooting org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Failed to import bean definitions from URL location [classpath:/config/mybatis-context.xml] Offending resource: ServletContext resource [/WEB-INF/spring/appServlet/servlet-context.xml]; nested exception is org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem.. 더보기
[Spring] JNDI 설정법 및 테스트 JNDI를 통해 Spring에서 데이터베이스의 연결을 외부 리소스인 톰캣으로 바인딩 시키는 방법에 대해 설명하도록 하겠습니다. JNDI 는 자바 네이밍 / 디렉토리 인터페이스인데 J2EE 의 가장 중요한 스펙 중 하나입니다. JNDI 를 사용하는 이유는 시스템에 대해 배포후에 , 만약 데이터베이스 정보가 변경해야할 필요가 있을 경우 톰캣에 설정파일만 변경할 수 있습니다. 또한 쿼리문 조차 소스코드를 바꿀 필요없이 외부의 리소스가 존재하기 때문에 외부 리소스를 수정할 수 있어서 아주 편하고 유용한 라이브러리 입니다. 또한 JNDI 를 이용하면 하나의 웹 어플리케이션에서 여러개의 데이터 베이스를 관리할 수 있고 그로 인해 이중화 작업이 가능한 편입니다. 데이터의 손상을 막게 해주는 이중화 작업을 지원함으로써.. 더보기