목록개발기록 (5)
제리의 배움 기록
최근에 요소수 정보를 제공하기 위한 요소수소문 서비스를 만들어 운영중입니다. 프론트는 부트스트랩 템플릿 + 타임리프 조합으로 간단하게 구현하였는데요, 개발자 지인이 학습겸 서비스의 프론트를 React로 개발해보겠다고 제안해주었습니다.(^ㅇ^) 프로젝트(yssmap)가 깃허브에 public으로 오픈되어 있어서 소스는 바로 내려받아 사용할 수 있었고 Spring Boot와 Gradle의 마법으로 개발환경을 구성하는 것은 어렵지 않은데요, 설정파일은 어떻게 효율적으로 공유할지 작은 고민(?)이 있었습니다. 이 고민을 private repository를 이용하여 해결한 것을 공유하고자 합니다. 형상관리 툴로 git을 사용하였고, remote repository는 github를 기준으로 작성하였습니다. 설정파일?..
목표 시스템 구성도 서버 구성 외부망 1대 reverse proxy용 nginx 웹서비스용 자바어플리케이션 서버 내부망 1대 웹서비스에서 사용할 데이터베이스 저장소 실행 흐름 1) 사용자가 https://jerry92k-subway.n-e.kr url을 호출 2) DNS 서버로부터 도메인을 해석한 IP를 응답받아 Server A의 443 포트를 호출(https 프로토콜) 3) Nginx는 80 포트로의 요청(http 프로토콜로 요청하는 경우)을 443 포트로 리다이렉트하고, 443 포트에 대한 요청을 웹어플리케이션으로 전달 4) 웹어플리케이션은 Server B의 데이터베이스를 참조 단계별 구성 1.서버 생성 AWS EC2 인스턴스를 이용하여 외부망에 1대, 내부망에 1대 총 2대의 서버를 생성 서버 OS..
현재 진행중인 "부동산 실거래가 비교 시스템" 프로젝트에 부하테스트를 해보았습니다. 부하테스트 툴에는 주로 nGrinder와 jmeter를 많이 사용하는데요, 저는 nGrinder를 사용해보았습니다. nGrinder를 선택한 이유는 1) 실무에서도 많이 사용되고 있는 툴이고 2) 테스트의 결과를 보여주는 레포트 UI가 심플하고 직관적이며 3) 부하테스트 스크립트 작성에 친숙한 groovy 언어를 사용하기 때문입니다. 1.nGrinder 구성 nGrinder는 Controller와 Agent로 구성되어 있습니다. Controller Controller는 Web Application으로 Tomcat과 같은 웹서버 엔진을 이용하여 구동할 수 있습니다. 사용자와의 인터페이스를 담당하여 테스트 프로세스 정의, 스..
목표 망 구성도 1. VPC 대역 생성 192.168.170.0/24 서브넷 마스크 24비트 2. 외부망, 내부망, 관리망 구성 외부망 : 외부와 직접적으로 통신함 26비트 서브넷 마스크로 2개의 망 구성 subnet별 실제 물리적 서버 지역을 다르게 선택 특정 지역의 IDC의 문제, 재해 등의 리스크에도 대비 용도 DMZ 영역으로 사용자의 요청을 직접적으로 받아 처리하는 웹서버가 위치함 SSL 인증, 압축, 정적파일 제공 등의 역할 실무에선 nginx와 같은 별도 웹서버만 두고 웹어플리케이션서버는(WAS) 내부망에 두어 분리하는 것이 보안상 좋지만, 모의 구성이므로 외부망 동일 서버에 nginx와 WAS를 함께 사용 라우팅 설정 사설망 대역대(192.168.170.0/24)에 대한 라우팅 외부 인터넷과..
요약 jackson 라이브러리로 하이버네이트 프록시 객체를 serialize 할 경우 오류가 발생합니다. 1) 프록시 객체를 가져오지 않도록 join fetch를 사용하거나 2) 엔티티는 DTO로 모두 변환하여 Response body로 전달하면 문제를 피할 수 있습니다. 이번 포스팅에서는 Lazy Loading이 포함된 엔티티를 ResponseEntity 응답 정보로 사용할때 유의 해야할 점을 다루어보려 합니다. 이전 포스팅과 동일한 프로젝트 진행중에 아래와 같은 오류를 만났습니다. 프로젝트 내용이 궁금하신 분들은 참고해주세요. No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor and no prope..