전체 글 (288) 썸네일형 리스트형 사이드 프로젝트 일기 2 - 업무 시스템과 전자 결재 연동하기 회사에서 업무를 수행하다보면 요청자 측에 결재를 요청할 일이 있다. 예를 들어 김대리는 그룹웨어 신규 계정을 생성하기 위해 업무 요청 서비스를 통해 계정 담당자에게 계정 생성을 요청한다.계정 담당자는 내용을 검토하고 계정 생성 전 김대리에게 전자 결재를 요청한다.김대리는 박부장에게 상신을 요청하고 박부장은 최종 승인을 내린다.이후 계정 담당자는 계정 생성을 진행한다. 이러한 업무 프로세스가 진행되려면 업무 요청 서비스/전자 결재 연동이 필요하다. 몇 달 동안 고민해서 만든김에 1번, 3번 과정 구현 내용을 소개해보려고 합니다. 1. 메시징 서비스를 통해 결재 요청(결재 문서 생성) 아래와 같이 업무요청 기능으로 특정 부서에 업무 요청 양식을 보내고 요청 클릭 플랫폼개발팀 부서의 소속 인원으로 접속해.. 스프링 부트 환경에서 도커를 찍먹해보자 feat. war 파일 알아갈 수 있는 정보- war 파일 Dockerfile 구성 방법 스프링 부트 환경에서 Dockerfile 을 이용하면 비교적 간단하게 컨테이너를 구성할 수 있다. 우선 프로젝트 루트 아래 Dockerfile 을 을 생성하자. Dockerfile 는 아래와 같이 구성되어 있다. 각 행의 맨 앞에는 Dockerfile 에서 사용할 수 있는 키워드가 나온다. 자세한 내용은 다음 링크를 참고 바람 (https://docs.docker.com/reference/dockerfile/)아래 도커 파일은 스프링 부트에서 일반적으로 사용하는 내장 톰캣에 맞춰진 명령이 아니다.war 파일을 웹에 띄울 것이기 때문에 톰캣 이미지를 불러온다. 내장 톰캣을 사용한다면 (https://spring.io/guides/gs/sp.. 사이드 프로젝트 일기 1 - 비동기 처리 시, 영속성 컨텍스트 주의 사항 및 이벤트 리스너 처리 글의 결론1. 영속성 컨텍스트는 스레드별로 관리된다. 따라서 비동기 처리한다면 영속성 컨텍스트가 상이하거나 초기화 되지 않는 것을 고려해야 한다. 2. 이벤트 리스너는 이벤트를 발행한다고 바로 실행되는 것이 아니다. 전자 결재, 그룹웨어 사이드 프로젝트를 진행중입니다. 오늘은 결재 문서에서 아래 상신 버튼을 눌렀을 때 발생하는 서버 통신에서성능 최적화를 위해 비동기 처리를 하면서 겪었던 내용을 담았습니다. 클라이언트(사용자)가 상신 버튼을 누르면 아래와 같은 흐름으로 통신합니다.참고로 전자 결재, GW 포탈은 서로 다른 서버입니다. 이를 가장 간단하게 구현하는 방법은 전자 결재 서버에서 동기적으로 처리하는 것이다. 즉 아래 과정을 하나의 스레드, 트랜잭션으로 묶는 것이다. 1. 상신 API 호출2.. 자바는 Call by Value이다. Call by Value , Call by Reference 가끔 혼란스럽게 하는 질문이다. 이 질문은 메서드를 호출할 때 인자를 전달하는 방식을 말한다. 기본적으로 자바는 인자를 넘길 때 값 혹은 참조를 복사해서 넘기기 때문에 Call by Reference 가 될 수 없다. 고로 Call by Value이다. 여기서 조금 더 설명을 추가하면 참조를 복사해서 넘기기 때문에 새로운 인스턴스를 할당하게되도 원본은 영향을 받지 않는다. 지역변수 builder 는 changeReference 메서드의 스택 영역이 종료되면서 사리질 뿐이다. 복사본이라지만 원본 참조 값을 들고 있기 때문에 해당 인스턴스에 접근해서 필드를 수정하는 것은 가능한 것이다. vscode 단축키 설정 최근 FE쪽 공부를 하면서 vscode 사용하는 일이 많아졌다. 인텔리제이를 주로 사용하다보니 vscode 와 단축키 동기화가 되어 있지 않아 개발에 힘든 부분이 있다. 찾아보니 인텔리제이 IDE에 맞춰 키바인딩을 해주는 익스텐션이 있기는 한데 딱히 만족스럽진 못하다.. ㅎㅎ 내가 잘 사용하지 못해서 그런걸지도... 그래도 우선 설치. 이제 주로 사용하는 단축키 위주로 기록을 해두겠다. 1. 보기: 그룹에서 최근에 사용한 편집기 빨리 열기 개발을 하다보면 컴포넌트를 옴겨 다닐일이 많다. Ctrl + E 로 변경 2. 다음 일치 항목 찾기에 선택 항목 추가 쉽게 말해 동일한 단어를 드래그 해주는 기능이다. 이것도 생각보다 많이 사용한다. 나는 Ctrl + D 로 변경하도록 하겠다. 3. 변수 자동완성 자바.. HTTP GET 에는 body 를 담을 수 없다? 결론부터 말하면 담을 순 있다. 하지만 권장되지 않는다. 한달 전 쯤인가 친구랑 술 한잔 하면서 개발 이야기를 했다. REST 이야기를 하다 HTTP 메서드 주제가 나왔다. GET 방식에서는 요청 본문을 넣을 수 없지 않냐고 말하더라 나로서는 의아했다. 아래와 같이 HTTP request body 를 넣어 GET 요청을 보낼 수 있기 때문이다. @GetMapping("/api/user-roles") public ResponseEntity searchUserRoles(@RequestBody UserRoleRequest userRoleRequest) { List responses = userRoleService.findByMultiValueKey(userRoleRequest); // ... } 그래서 나는 .. 백엔드 서적, 인강 리뷰 1 경제학을 배우던 대학 시절에는 참 전공 서적에 돈쓰는게 아깝게 느껴지곤 했다. 그렇다고 경제학 자체에 흥미가 없었던 것도 아니었고 인생에 아무짝에 쓸모 없다고 생각하지도 않는다. 특히나 백승관 교수님의 거시 경제학은 내 인생의 2번 째 터닝포인트이기도 하다. 이 얘기는 추후 다뤄보도록 하겠다. 상대적으로 백엔드 개발자가 되기 위해 구매했던 책들은 만족도가 높았다. 단순하다. 실용적이기 때문이다. 그 중에서도 오늘은 만족도가 높았던 책, 인강들을 간단히 소개해보려고 한다. 소개할 책, 인강 리스트는 다음과 같고 시간이 없는 사람은 볼드체만 봐도 된다. 볼드체는 해당 컨텐츠를 통해 얻을 수 있는 것들이다. 소개할 리스트 1. 인프런 - 김영한 스프링 핵심 원리 기본 편, MVC 1, 2편 2. SQL 첫걸음.. Postman 조금 더 잘 사용하기 - 반복적이고 랜덤하게 API 호출하기 오랜만에 여유가 되서 글을 써보려고 한다. 기술은 한 번 제대로 공부해두면 해당 기술의 핵심 컨셉은 잊혀지는데 오래가지만 세세한 부분은 잊혀지기 마련인 것 같다. 그래서 실무에서 사용하지 않는 JPA를 다시 공부하게 되었다. 2주를 계획했지만 한달이 넘어버린건 함정이다. 참고로 요즘은 스프링 배치를 공부하고 있다. 잡설은 여기까지만 하겠다 :) 포스트맨이 어떤 도구인지는 알테니 설명은 생략하도록 하겠다. 오늘 소개할 내용은 2가지이다. 1. run collection 2. pre-request script 나는 이 두 기능을 조합해서 수동으로 생성하기 다소 귀찮은 레코드를 생성하는데 사용하고 있다. 물론 여유가 된다면 이것보다 효율적인 방법이 존재할수도 있지만 이것도 나름 나쁘지 않은 선택지라고 본다. .. 이전 1 2 3 4 ··· 36 다음