본문 바로가기

ALL

(128)
mvn clean package 에러: Failed to load ApplicationContext 요즘 작업중인 토이프로젝트가 있다. 해당 프로젝트의 소스수정, 개발계 배포 과정은 아래와 같다. 개발자가 local에서 소스를 수정하고, github에 올린다. jenkins를 통해 아래 순서대로 개발계 빌드를 수행한다 github에서 소스를 내려받는다. mvn clean package를 통해 새로 빌드된 jar 파일을 생성한다. 새로 빌드된 jar 파일을 사용하는 ubuntu server 서비스를 실행한다. 평소에 잘 되던 프로세스 였는데, 새로운 코드를 반영하고 2-2 과정에서 에러가 발생하였다. java.lang.IllegalStateException: Failed to load ApplicationContext 알아보니 mvn clean package 이후, default 환경에서 jar 파일이 ..
BBTI - 토끼 성향 테스트 1. 개요 회사에서 개발자라는 직무에서 근무하면서 다양한 서비스들을 만들고 있지만, 나만의 서비스를 만들고 싶은 마음은 항상 가지고 있었다. 그래서 지속적으로 회사 밖에서 모임을 만들어서 토이프로젝트를 진행했었다. 하지만 결과적으로 완성하여 대중에 오픈된 서비스를 완성한 적은 없었다. 팀원들이 각자 직업이 있고, 서비스 주제에 대한 생각도 다르다 보니 의욕적으로 시작했다가 흐지부지되는 경우가 많았다. 그래서 새로운 토이 프로젝트를 시작하면서, 무조건 완성할 주제로 시작해야겠다고 생각했다. 그런 의미에서 BBTI는 최고의 주제였다. 요즘 유행하는 BBTI 패러디 서비스로서 어느정도의 대중의 관심을 받기에도 충분하고. 무엇보다 개발사이즈도 작아서 의욕이 떨어지기 전에 완성하기에도 좋았다. 그리고 결론적으로 ..
Interactive authentication required 에러 ubuntu server 18.04에 jenkins를 설치하고 웹서버를 자동빌드하도록 파이프라인을 만들었다. git에서 소스를 가져오고 빌드 후, 서비스를 실행하도록 스크립트를 만들었고 빌드를 눌렀다. 하지만 역시 한번에 성공할리 없지, 빌드에 실패 했고 로그를 보니 다음과 같은 로그가 있었다. + systemctl start servicename Failed to start servicename.service: Interactive authentication required. 서비스를 실행하려고 했으니, 권한문제로 실패한것으로 보였다. # sudo vi /etc/sudoers ... jenkins ALL=(ALL) NOPASSWD: ALL ... 위처럼 /etc/sudoers에 'jenkins ALL=..
우분투 npm install 에러 - Error: Missing required argument #1 AWS EC2에서 ubuntu server 18.06 인스턴스를 만들고, 프론트 배포를 위해 # apt-get install npm을 하고 # npm install 명령어를 입력하였다. 그러자 아래와 같은 에러가 발생하였다. npm ERR! typeerror Error: Missing required argument #1 ... 인터넷에 위 에러를 검색해보니, 최신버전이 아닌 오래된 npm이 설치되어 있어서 발생하는 에러라고 한다. 그래서 아래의 명령어를 실행해서 최신버전으로 업데이트 해주었다. 그 후 문제없이 # npm install 이 실행되었다. # npm cache clean --force # npm install -g n # n stable
3-3) 스프링 입력값 검사: Bean Validation, Hibernate Validator, @Valid, @Constraint, ConstraintValidator - 입력값 검사 웹서비스를 이용하다보면 다양한 입력창과 유형에 따른 유효성 검사를 볼 수 있다. 예를들어, 이메일 입력창이 있으면 이메일 양식에 맞는지 검사가 이루어진다. Front에서 유효성 검사로 Server 호출을 막지만, 세상에는 짖굳은 사람들이 많기에 Front 유효성 검사를 무력화 시키는 경우도 있다. 따라서, 서버에서도 동일하게 입력값 체크를 해야한다. - 스프링에서의 입력값 검사: Bean Validation, Hibernate Validator 스프링에서는 데이터 검사 표준인 Bean Validation를 사용한다. 더 정확히는 그 구현체인 Hibernate Validator를 사용한다. 먼저 아래와 같이 Hibernate Validator를 사용할 수 있도록 dependency를 추가한..
3-2) 스프링 MVC 핸들러(Handler): @ReqeustMapping, @GetMapping, @PostMapping, @PutMapping, @DeleteMapping, @RequestParam - 스프링 MVC 핸들러 MVC의 Controller 안에서 실제 요청을 처리하는 메소드를 핸들러(Handler)라고 한다. 사용자로부터 서버로 요청이 가면, 해당 요청에 맞는 컨트롤러의 핸들러로 요청 정보가 전해지고, 핸들러는 이를 처리하여 적절한 값을 반환 한다. 그리고 요청과 핸들러를 연결하는 것을 핸들러 맵핑(Handller Mapping)이라고 하고, @RequestMapping 어노테이션을 사용하여 맵핑이 이루어진다. - 요청 맵핑: @RequestMapping Http Request, 즉 서버로의 요청 정보는 다음과 같은 구조로 되어있다. 먼저 요청하는 첫번쨰 줄(start-line)에 메소드와 URL 요청경로가 나오고, 그 다음 헤더(http headers)에 요청자의 정보와 주고받을 데이..
[오픈뱅킹 API] 1. 사용자 인증, 토큰 발급 사용자 인증과 토큰 발급 오픈뱅킹 API를 이용하기 위해서는 먼저 인증 과정을 거쳐야한다. 서비스 사용자의 정보에 접근하기 위해서는, (1~2)먼저 사용자가 본인임을 증명하는 과정을 거친 후, 해당 인증 정보를 서비스에 넘겨준다. (3~4) 그리고 해당 인증 정보로 서비스 사용자에게 정보 조회 동의를 받았다는 것을 증명하고 인증 토큰을 받아야한다. (5~6) 이후 이 토큰을 사용하여, 사용자 정보에 접근하는 각종 오픈뱅킹 API를 호출한다. 사용자 인증 사용자 인증과정은 다음과 같다. 1. 서비스 정보를 들고, 사용자를 오픈뱅킹 본인 인증 페이지로 보낸다. 2. 사용자가 본인인증이 끝나면, 인증 정보(인증 코드)를 포함한 정보를 들고 서비스로 돌아온다. 3. 서비스는 해당 인증 정보를 획득하고 이후 과정..
[오픈뱅킹 API] 0. 오픈뱅킹 API란 오픈뱅킹 API란 최근 "뱅크샐러드" 라는 어플리케이션을 애용한다. 해당 어플은 한번의 인증으로 여러 은행, 증권 등 금융기관의 자산을 한번에 조회하고 요약하여 사용자에게 제공해준다. 그렇다면 뱅크샐러드는 어떻게 그러한 서비스를 제공할 수 있을까? 바로 오픈뱅킹 API다. 공식 사이트에서는 "오픈뱅킹은 핀테크기업이 금융서비스를 편리하게 개발할 수 있도록 은행 등 참가기관의 금융서비스를 표준화된 형태로 제공하는 인프라를 말하며, 오픈 API와 테스트베드로 구성됩니다." 라고 설명이 나와있다. 오픈뱅킹 API를 이용하면 힘들게 금융기관들에 협조 요청을 할 필요 없이, 잔액 조회 등 여러 기능을 사용할 수 있다. 학습 목표 지인들과 함께 하는 모임에서 매달 회비를 걷고, 그돈을 모아 주기적으로 만남을 가진다...