[Eclipse] Lombok 적용하기
2022. 10. 7. 13:07
개발/기타
한번 세팅하면 까먹는 Lombok 설치방법..! 먼저 Lombok 설치파일을 다운하자. https://projectlombok.org/download 설치파일은 eclipse나 sts 설치폴더로 이동 시킨 뒤 cmd 창에서 실행시킨다. java -jar lombok.jar 약간의 로딩시간을 기다리면 자동으로 IDEs가 잡힌다. 만약 안잡히면 Specify location... 버튼을 클릭해 직접 eclipse 나 sts 실행파일을 지정해주면된다. Install / Update 버튼을 클릭해주자. 설치가 완료되었고 quit installer 로 종료하자. 다음은 pom.xml 에 lombok 디펜던시를 추가하자. 내용은 아까 다운로드받은 site에서 install 메뉴를 선택한뒤 각자에 맞는 것을 클릭하면..
[유전자분석] IGV 라이브러리 사용하기
2022. 10. 6. 15:10
개발/기타
지난 번에 유전자 분석을 위한 bam 파일에 대해 공부했었다.(자세한건 아래 링크참고) 유전자 분석을 위한 bam 파일 프로젝트에서 유전자 분석을 위한 IGV(Integrative Genomics Viewer) 사용을 해봤다. IGV란 유전체 데이터셋을 시각화 해주는 그래픽 기반 프로그램으로 오픈소스이다. igv 사이트에 들어가면 자바스크립 flowlog.tistory.com 여기서 유전자를 분석하기 위해 IGV(Integrative Genomics Viewer) 툴을 잠시 보았는데, 자바스크립트로 IGV 라이브러리를 활용해보았다. 간단히 부트스트랩 css를 적용하였고, 멀티분석을 위한 track을 추가하는 기능까지 넣어보았다. 테스트를 위한 bam 파일은 url 방식으로 호출한다. 기능구현 먼저 페이지..
[Springboot] Maven 멀티 모듈 프로젝트 만들기(Eclipse)
2022. 10. 4. 16:02
개발/Spring
이제는 쿠버네티스 서비스가 주로 이루면서, 마이크로서비스아키텍처 서비스개발이 많이 진행되어가고 있다. spring 에서도 gateway, discovery, config 등 cloud 서비스를 구축하는데에 필요한 데모프로젝트들이 많이 있는데, 오늘은 Maven 멀티 모듈 프로젝트를 구성을 포스팅한다. Maven Project 생성 가장 먼저 Eclipse 를 키고 New>Maven Project 를 선택한다. 상위 프로젝트 프로젝트 타입 Maven Project 프로젝트 이름 test 패키지 이름 com.joon95.test Maven Module 생성 이제 1에서 생성한 project를 우클릭>New>Other Maven Module을 생성한다. 테스트로 core, market 프로젝트를 만들었다. 하..
[Python] 병렬 api 호출 및 적재
2022. 9. 19. 18:14
개발/Python
테스트 케이스를 고민하다가 특정 api 를 호출하고 응답 및 헤더 데이터를 postgresql 에 적재하는 것을 생각해보았다. 스프링으로 구현할까 했는데, 병렬처리를 검색해보니 파이썬에서 RAY 라이브러리를 통해 멀티프로세싱을 쉽게 구현할 수 있어 한번 써볼까 싶어 작성한다. 데이터베이스(PostgreSQL) 간단하게 Docker로 올려두었다. Create DB 데이터베이스 이름은 'mydata' 로 하였다. create database mydata; 데이터베이스가 생성되면 \c 명령어를 통해 연결한다. postgres=# \c mydata You are now connected to database "mydata" as user "postgres". Create Table 테이블 이름은 'api_log..
[Springboot] Exception 처리하기
2022. 8. 4. 16:07
개발/Spring
springboot 로 RestApi 를 만들다보니 Exception 처리는 필수이다. 한번 해보자. 에러는 {“error”:”에러코드”,”error_decription”:”에러설명”} 위와 같이 내보낼 것이다. ErrorEnum 정의 @Getter public enum ErrorEnum { /* API 응답 코드 */ E00000("00000", "처리 성공", HttpStatus.OK), E40401("40401", "요청한 엔드포인트가 존재하지 않습니다.", HttpStatus.NOT_FOUND); E50002("50002", "API 요청 처리 실패.", HttpStatus.INTERNAL_SERVER_ERROR); private String code; private String msg; priv..
[Springboot] JPA 적용
2022. 8. 4. 15:50
개발
springboot 개발을 할 때 늘 mybatis를 사용하여 mapper.xml에 SQL쿼리를 작성해 database 로직을 구현했었다. 언제부턴가 JPA라는 말이 자주 들려오고 있는데, 이제야 테스트를 해본다. JPA(Java Persistence API)와 mybatis와 비교하자면 먼저 Mybatis 는 SQL자체로 xml 파일을 분리할 수 있으며, 복잡한 쿼리 작성의 장점이 있지만, 간단한 쿼리들을 많이 작성하여 코드가 길어지는 단점이 있다. JPA 는 CRUD 메소드가 이미 정의되어있어 sql을 직접 구현할 필요가 없기 때문에 소스코드의 양이 적어지는 점, 또 database 와 연결되어 table 생성을 자동으로 할 수도 있다. 하지만, 복잡한 쿼리의 사용은 JPQL 또는 Query dsl ..
[Springboot] Authorization Code 방식의 인증구현 (Spring Security 2.5.2)
2022. 8. 4. 12:41
개발
작년에 XX카드 마이데이터 API 제공 프로젝트를 진행하면서 oauth 2.0 에 대한 부분을 많이 보았다. 마이데이터에서 인증방식은 Authorization Code, client credentials, password 방식을 사용하였다.(총 4개임, 마지막은 암시적 승인이라고.. ) 해당 프로젝트는 신용정보원, 인증기관, 사업자, 제공자 등 기관간의 연계를 보며 인증/인가를 통해 API를 주고받는 식이다. 또, 마이데이터 API 규격서에도 보면 좋은 내용들이 있고, 지금도 신규 사업자들이 생겨나고 있다. 모든 통신의 꽃은 결국 인증이다. 프로젝트 에서는 rhsso 를 사용하였는데(redhat에서 나온 제품, 오픈소스 keycloak base), token에 대한 설정들을 대시보드를 통해 매우 쉽게 컨..
[Springboot] swagger 3.0 설정
2022. 8. 4. 10:30
개발
젤 중요했던거.... 3 버전 대는 접근 URL 이 '/swagger-ui' 이다. pom.xml 먼저 pom.xml 에 관련 라이브러리를 추가 io.springfox springfox-boot-starter 3.0.0 io.springfox springfox-swagger-ui 3.0.0 config 설정 @Configuration @EnableSwagger2 @EnableWebMvc public class SwaggerConfig { private ApiInfo swaggerInfo() { return new ApiInfoBuilder().title("2022 토이 프로젝트") .description("나만의 OAUTH 인증 솔루션 제작기 - 임준혁").build(); } @Bean public Do..
[Springboot] CSRF Token 설정 시 Postman 테스트 방법(Spring Security)
2022. 8. 4. 10:25
개발
스프링 시큐리티는 POST, PUT, DELETE 등의 method를 요청할 때 이전 페이지에 발급된 CSRF토큰 정보를 체크하기 때문에 해당 정보를 header 로 넘겨주어야 처리가 된다. GET은 상관없음! 어쨋든 테스트 API 를 만들고 postman으로 요청을 해보았는데 자꾸 403 forbidden 에러가 떨어진다. 그래서 CSRF token 이 발급되는 설정을 하고, API를 요청할 때 'X-XSRF-TOKEN' 이라는 이름의 헤더이름으로 token을 넣어주면 된다. CSRF Token 발급 설정 @EnableWebSecurity @Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter{ @Override p..