본문 바로가기
반응형

Backend 개발자53

springboot multi jdbc database 설정, mybatis jpa gradle 방법, H2 RDBMS 사용방법 springboot 에서 여러가지 이유로 다중으로 데이터베이스를 설정해야할경우가 있습니다. read(query), write(command) 분리하는 목적으로 진행할수도 있고 여러대의 RDBMS를 연결해야할때 사용할수도 있고 프로젝트 진행하는데 DB 스키마가 안나와서 H2로 임시작업 해야할경우가 있습니다. 세팅할때마다 쉽지가 않기때문에 모든 상황에 맞춰서 성공한다는 보장은 없습니다. 여러가지 이유로인해서 잘안될수 있기때문에 어느정도 기본적인부분은 따라서 진행하시고 안되는부분은 천천히 서버 로그를 보면서 찾아보셔야합니다. h2 사용방법 h2는 자바로 작성된 관계형 데이터베이스 관리 시스템입니다. h2는 remote, in-memory, embedded 3가지 설정을 할수 있습니다. https://www.h.. 2022. 11. 7.
백앤드 개발자가 API를 늦게 만들어준다면, Postman(포스트맨) API 테스트 team 인터페이스 공유 mock server 구성하기 프로젝트 하다보면 선행조건으로 나와야하는 API 를 공유 받아야할때가 있는데 사람이 일하는거라서 RestAPI 만들고 Swagger UI API를통해서 공유를 많이하게되는데 가끔 서버개발 일정이 늦어지거나 내가원하는 Mock데이터가 충분하지 않아서 테스트 해보고싶은데 시간이 오래걸리는상황이라면 Postman Tool을 이용해서 간단하게 개발에 편리하게 이용할수 있는 기능이 있어서 공유 드립니다. Postman 소개 & 사용법 관련 링크 : https://www.postman.com/downloads/postman-agent/ Postman Agent: For Mac, Windows, & Linux The Postman agent overcomes the Cross Object Resource Sharin.. 2022. 10. 19.
Batch 작업시 선행 조건 고려할사항, 배치 전략, Job 실행 환경 with SpringBatch Batch 작업은 서비스 플랫폼 관점에서 오류검출이나 예외 처리하기 상당히 불편한 기능중 하나입니다. 그래서 선행조건으로 스케쥴 작업을 왜 해야하는지 어떤검토가 필요한지 알아보도록 하겠습니다. Batch 검토 시 고려 사항 비지니스 관점으로 볼때, 고가용성(대용량, 매우빠른배치전략) 이 필요한지 검토 데이터 안정성이 꼭필요한지 유실되도 문제 없는지에 대한 검토 연속으로 순서가 보장되어야 하는 비지니스를 가지는 배치가 있는지 검토 개발자가 배치를 개발할때 편하게 생성하고 관리나 모니터링 오류등을 확인할수 있는지 검토 관련 비지니스가 꼭 배치로 작업이 되어야 하는지 검토 장기적인 관점에서 개선이 가능한 배치방향인지 검토 Spring Batch Spring Batch 는 읽기, 처리, 쓰기 단위를 명확히 구분.. 2022. 10. 12.
MSSQL 맥북용 M1 추천 Tool Legacy 분석 Mssql 프로시저 검색하기 어쩌다보니 Legacy 분석을 Mssql Procedures 까지 하고 있어서 돈버는건 역시 쉬운게 없다는걸 다시한번 느끼는 중입니다. Mssql 을 사용하기 위한 Mac 용 Mssql Tool 추천 2가지를 공유드립니다. 저도 사용감이 많지 않아서 Mssql 맥북용 Tool만 소개해드리고 프로시저 분석을 위한 프로시저 찾기 실행하기 정도로 정리를 해볼까 합니다. Mac 용 Mssql Database 접근 Tool DBeaver https://dbeaver.io/download/ Download | DBeaver Community Download Tested and verified for MS Windows, Linux and Mac OS X. Install: Windows installer – run .. 2022. 9. 8.
Mac OS 맥북 Homebrew m1 설치 방법 Homebrew 설치 하는이유? mac OS 에서 다양한 패키지를 설치하기 위해 맥주모양 아이콘이 심볼인 편리함을 도와주는 도구입니다. M1 맥북출시 이후 정상적으로 설치 되지 않아서 많은 맥유저들이 살짝 당황했었던 기억이 있는데!! homebrew 에서 설치하는 방법을 변경해서 지금은 정상적으로 설치되는것을 확인할수 있습니다. - 간편하고 빠릅니다. window 환경과 다르기 mac은 리눅스 기반이기 때문에 커맨드창에 명령어로 마우스나 클릭이벤트보다 쉽고 직관적으로 내가 원하는 프로그램 설치가 가능합니다. - window에서는 프로그램설치시 불필요한 기능들이 나도모르게 설치되는데 brew사용시 원하는 기능들만 설치가 됩니다. 체크박스같은건 없어요 - brew로 설치한 앱들은 brew list로 확인할수.. 2022. 8. 30.
Swagger UI Java 면접과제 Springboot SpringDoc 적용 API문서 자동화 Mock 데이터 샘플 만들기 API 문서 자동화 사용하는 이유? Swagger UI API를 설정하고 문서 자동화 하는 이유는 내가 만든 API 인터페이스 문서를 잘 정리해서 다른 개발자들과 사용하는 모든 사람들에게 편의성을 제공하고 어떤 동작을 하는지에 대한 부분을 잘 표현하기 위함이라고 생각하면 됩니다. 최근에 사용했던 목적을 정리해보면 면접 과제용 API 개발하고 표현하기 위해서 많은 시간을 사용한것 같고 프로젝트 진행하면서 프론트앤드와 개발 진행하고 있는데 일정이 빠듯하다보니 Mock 데이터를 구성해서 API를 제공하는 목적으로 사용하면서 필요한부분 Swagger UI API를 표현하는 몇가지 유형 그리고 간단하게 API호출하는 테스트 코드까지 만들어 보려고 합니다. Rest Doc을 많이 사용하나요? Swagger UI A.. 2022. 8. 29.
Rest API 호출시 보일러 플레이트 코드를 리펙토링 하는 방법, 같은 모양의 양을 줄여보시오!! 내몸에 익숙함을 바꿔야하는데 ... 프로젝트를 진행하면서 Functional 형태의 구현을 해봐야되겠다는 생각을 늘하지만 갑자기 코딩 스타일을 바꿔나간다는것이 어렵다고 느껴지고 실제로도 익숙해지기까지 시간이 걸립니다. 사람은 누구나 익순한것을 좋아하는데 이유는 위험요소도 적고 자연스럽기 때문입니다. 내가 컨트롤 가능한상태를 구성하기 때문에 표현하기도 쉽다는 생각이 드는데 문제는 내가알고있는것보다 더 좋은 방법들은 계속 생겨나고 발전하고 생태계 전반적으로 적용하기도합니다. 자칫 잘못하면 서비스들은 성장하는데 내자신만 멈춰있는 느낌을 받을수도 있습니다. 머리로는 알고있고 새로운것을 습득해 나가야한다고 인지는 하지만 참 여러가지 이유로 멀리하게되는데 하나씩 내가 소화가능한 만큼씩 접근해 나가도록 하겠습니다. .. 2022. 8. 9.
MSA 아키텍처 프로젝트 빅뱅 방식으로 God Object 처리시 발생하는 Tell Dont ask 역시 회사 생활은 쉽지가 않다. 아!!!!!!!!! 너무너무 힘들고 지쳐서 그래도 이렇게 기록을 정리해두는게 좋은거같아서 모진 풍파에 대한 경험을 기록합니다. 시간이 지나서 이또한 웃으면서 예기할수 있는 프로젝트의 한부분으로 남았으면 하는 개인적인 소망입니다. 프로젝트의 이슈 MSA프로젝트는 블로그에서도 몇번 언급한적이 있는데 기존에 모놀리딕 한부분을 쪼개서 처리한다가 단순하게 예기하면 그런 방향이라 리소스가 처음보다 2~3배정도 된다 라고 예기할수 있을것 같습니다. 현실 프로젝트에서는 사실 이부분 또한 쉽지는 않다고 생각하고 모든 개발자들의 상황이 그런것 같습니다. MSA에서 진행하는 작업은 프론트에 데이터를 조회해서 제공해주는 부분을 하고있는데 안타까운 부분은 원천데이터를 처리하는데 있어서 내가 컨트.. 2022. 8. 8.
Springboot Rest API GetMapping 방식 @Setter 없이 @ParameterObject, @AllArgsConstructor 2가지로 @ModelAttribute 사용 하는 방법 안녕하세요 앵과장입니다. Rest API 개발하다보면 Get방식으로 구현하다가 생각보다 많은 파라메타를 전달해야하는 상황이 발생할수 있습니다. 이때 GET 방식 말고 POST로 방향을전환하게 되는데 나는 데이터를 조회할때는 GET Method를 사용하고 싶다 근데 파라메타를 일일이 나열하고싶지 않다 라고하시는 개발자 분들을 위해서 해당 내용을 정리하고자합니다. GET Method 구현시 아래처럼 파라메타가 많아졌을때 어찌해야하나요? 구현하다보니 swagger ui api 에 최대한 파라메타를 노출시키려고 하다보니 아래처럼 구성이 된것을 확인하게되었는데 swagger 에는 노출이 되었는데 코드레벨에서 봤을때는 나중에 파라메타 수정도 용이하지 않을꺼 같고 Controller class 코드가 가독성있는 형태.. 2022. 6. 23.
Rest Api 개발할때 @Setter 안쓰고 조회기능 만들기 Get Post 언제 상황에 맞게 써야하나요? 안녕하세요 앵과장입니다. 해당 내용은 개발하면서 지극히 주관적인 내용을 정리라는 내용이라는 점 참고하세요 Rest Api 개발할 때 Get Post 언제 별도로 사용해야 하나요? 최근 개발하는 프로젝트가 백앤드 개발이긴 한데 클라이언트 개발자가 사용하는 BFF레이어 개발을 주로 진행을 하다 보니 언제 Get을 쓰고 Post는 언제 사용해야 되는지에 대해서 고민을 하게 됩니다. Get 방식 고민을 했던 기능에 대해서 예시를 들어보도록 하겠습니다. 30개 정도의 메뉴가 비슷한 유형에 조회 기능입니다. Client에서 호출할 때 필수(Required) 또는 제외 가능(Option)입니다. 각기능에서 요청에 필요한 Request 파라미터는 1개~40개 정도까지 다양합니다. 초반 개발할 때는 Get방식으로 구현을.. 2022. 5. 26.
개방과페쇄 Springboot API @GetMapping 3가지 방법 @ModelAttribute, @RequestParam, 정적 메소드 static method 현실적인 고민 안녕하세요 앵과장입니다. 이전시간에 Springboot 에서 API 개발에 필요한 Annotation 들에 대해서 가볍게 알아보았습니다. 이번에는 API구현하면서 실제로 어떻게 하는게 좋을지 고민을 한번 해보도록 하겠습니다. 저도 오랜만에 API를 구현해보기도 하고 기억도 가물 가물한데 어떤방법이 좋은지 몰라서 삽질 하는 중 이라는점 참고하시기 바랍니다. Request 에서 사용할때 미리 알아둬야하는 방법에 대해서 궁금하다면 클릭해보세요!! Spring Request 처리 방법 ModelAttribute, RequestParam, RequestBody, ArgumentResolver 안녕하세요 앵과장입니다. 프로젝트를 신규로 개발하다보니 Server Api 오랜만에 직접 구현할일이 생기다보니 하면서 정리.. 2022. 4. 9.
Spring Request 처리 방법 ModelAttribute, RequestParam, RequestBody, ArgumentResolver 안녕하세요 앵과장입니다. 프로젝트를 신규로 개발하다보니 Server Api 오랜만에 직접 구현할일이 생기다보니 하면서 정리가 필요할것같아서 공유드립니다. Spring에서는 클라이언트 요청을 바인딩할 때 @RequestParam, @RequestBody, @ModelAttribute @JsonCreator 등으로 사용 가능합니다. 각 어노테이션 기능마다 역활이 다르기때문에 필요한 상황에 맞게 사용하시면 됩니다 Request 처리하는 방법 알아보기 @ModelAttribute @RequestParam @RequestBody @ModelAttribute 클라이언트가 전송하는 multipart/form-data 형태의 HTTP Body 내용과 HTTP 파라미터 데이터를 Setter를 통해 Java 객체에 매핑합.. 2022. 4. 6.
728x90