본문 바로가기

개발 관련78

REST (1) 요즘 API 를 보면 흔히 REST 하게 API 를 작성한다고들 합니다. 실제 보면 대부분 url 을 명사로 쓰고, HTTP Method 를 잘 배분한다는 것으로 알고 있습니다. 실제로 이렇게 설명하는 곳도 많고, 저 또한 뭐 대수인가 싶은 느낌으로 저정도만 알고 있었습니다. 최근 책을 보다가 REST 에 대한 내용이 나와 이를 토대로 알고 있는 부분에 대해서는 견고하게, 몰랐던 부분은 플러스(+) 해보려고 합니다. 1. REST 란? REST (REpresentational State Transfer - 표현적인 상태 전송) 란 쉽게 말하면, 애플리케이션의 리소스(데이터) 를 표현하는 URI 양식입니다. REST 라는 단어 자체는 2000년 로이 필딩(Roy Fielding) 의 논문에서 처음 나온 단.. 2022. 7. 14.
소프트웨어 아키텍처 10가지 정리 요새 사내에서 서비스 분리를 하고 있습니다. 이 상황이 요즘 흔히들 말하는 MSA 라고 볼 수 있는 건지, 아니면 그 다른 어떤건지 확실치 않아서 MSA 에 대해서 알아보고 있는데요. 그러다가 아키텍처 패턴에 대한 내용이 나와서 궁금하기도 하고 정리를 해보려고 합니다. CAZTON 이라는 사이트의 내용을 번역하여 정리한 것입니다. 1. Client-Servcer Architecture Client-Servcer Architecture 는 서버에서 실행되는 일부 서비스가 클라이언트에 의해 엑세스가 되는 two-tier 아키텍처 라고도 합니다. Client-Servcer Architecture 에 대해 더 알아보기 전에 Tier 와 Layer 의 차이에 대해 이해하는 것이 중요합니다. Layer 는 논리적 .. 2022. 7. 14.
1. 도메인 모델 시작 도메인 모델 시작 도메인 모델 엔티티와 밸류 도메인 용어 1 도메인 모델 도메인 개발자 입장에서 온라인 서점은 구현해야 할 소프트웨어의 대상이 된다. 온라인 서점 소프트웨어는 온라인으로 책을 판매하는 데 필요한 상품조회, 구매, 결제, 배송 추적 등의 기능을 제공해야 한다. 이 때, '온라인 서점' 은 소프트웨어로 해결하고자 하는 문제 영역, 즉 도메인에 해당한다. 도메인 모델 특정 도메인을 개념적으로 표현한 것 주문은 주문번호, 지불할 총금액 등이 있어서, 여러 관계자들이 동일한 모습으로 도메인을 이해하고 도메인 지식을 공유할 수 있음 개념 모델과 구현 모델은 서로 다른 것이지만, 구현 모델이 개념 모델을 최대한 따르도록 할 수는 있다. (객체 기반 모델을 이용해서 도메인을 표현했다면 객.. 2022. 7. 14.
mariaDB 설치 (feat. Docker) 이상하게 맥에서 로컬 mysql 이든 mariadb든 다 제대로 설치가 안되서, 주변에서 도커로 설치해보라는 얘기를 듣고... 도커로 설치 진행 (현재 진행된 부분도 삽질을 많이 하면서 왔기 때문에.. 다시 설치할 경우 최소한 검색시간이라도 줄이기 위해 적어둔다) 도커 설치 Mac : https://docs.docker.com/docker-for-mac/install/ mariadb OR mysql 설치 # mysql $ docker run --name mysql-db -p 3306:3306 -e MYSQL_ROOT_PASSWORD=secure -d mysql # mariadb $ docker run --name maria-db -p 3306:3306 -e MYSQL_ROOT_PASSWORD=secure.. 2022. 7. 14.
nGrinder 부하 테스트 nGrinder 란? Stress Test Platform 테스트 스크립트 작성, 테스트 실행, 대상 서버 모니터링 및 결과 작성 nGrinder Github nGrinder 구조 Controller : 테스팅을 위한 인터페이스 제공 (스크립트 작성 및 수정, 테스트 코디네이트) Agent : 타겟 서버에 부하를 가함 (프로세스, 스레드) 설치 방법 (1/2 컨트롤러 설치) nGrinder Controller 파일 Tomcat 을 이용한 로컬 설치 방법 다운로드 받은 war 파일을 ${TOMCAT_HOME}/webapps 에 놓는다. (Context-Path 를 변경하고 싶지 않을 경우 ROOT.war 로 파일명 변경) catalina.sh 혹은 catalina.bat 파일에 라인 추가 JAVA_OPTS.. 2022. 7. 14.
아파치 설정 이번 개발 서버를 구성하면서 설정했던 것들을 까먹지 않도록 작성. 목표 - QA 용 관리자 서버 구성 필요한 단계 톰캣 설정 아파치 설정 젠킨스 배포 설정 DNS 추가 1. 톰캣 설정 톰캣은 기본 설정의 톰캣 사용 따라서, bin, conf 내용만 수정 1) conf 디렉토리에서 server.xml 기존에 있던 톰캣을 복사해서 그런지 conf 에서의 내용은 따로 수정한 것은 없으나, 한 서버에서 여러개의 톰캣을 돌린다면 server.xml 을 수정해줘야 할 필요가 있다. port 부분을 고정하는 것이 아닌 ${tomcat.port.http} 같은 형식으로 변경 2) bin 디렉토리에서 tomcat.sh server_name, tomcat_http_port 등의 설정 기입 JAVA_OPTS 추가 (보통 로.. 2022. 7. 14.