기존 WAS가 떠있는 EC2 내부에 Docker 안에 DB를 구성 DB는 local에 파일로 볼륨 설정을 하여 컨테이너가 삭제되더라도 DB 데이터는 삭제되지 않도록 설정 왜 docker 환경에서 DB 구성을 전환하는가? docker 는 불안정한 환경 도커의 철학은 빠르고 쉽게 개발환경을 구축하는데 있다. 영속성을 가지는 DB 환경과는 상충된다. DB를 scale up, scale out 하는 상황이 온다면? WAS와 같은 서버에 있다면 그만큼 DB와 WAS가 사용할 수 있는 자원을 나누게 된다. DB의 대수를 늘리거나 사용할 수 있는 자원을 늘려야한다면 또 다른 EC2서버에 DB를 운영하는 것이 좋다. volume 설정을 통해서 사용하면 DB에서 제공하는 기능들 활용하지 못함 사실 DB에서 다양한 어떤 ..

Servlet 서블릿은 Java로 구현된 HTTP 요청 및 응답을 처리하기 위한 표준이다. 표준은 인터페이스로 제공되며, Servlet Container 구현체(Tomcat)가 제공한다.Jakarta Servlet defines a server-side API for handling HTTP requests and responses. Web Server VS WAS Web Server는 정적컨텐츠를 전송 WAS는 동적컨텐츠를 전송 Web Server + Container 요청에 따라 응답이 다름 Tomcat 은 Servlet Container Servlet Container는 WAS에 포함되는 개념 Servlet Container Servlet 생명주기를 관리하고 요청에 따라 스레드를 생성 요청 처리과정..

기존 설정해 놓은 로깅 설정을 확인하고 개선할 부분이 있는지 확인하였다. 설정파일을 좀 더 가독성 좋게 분리 gradle dependency를 줄임 dev 서버에도 cloudwatch 모니터링을 도입 기존 파일로 저장되던 로그파일 구조 개선 백업 디렉토리를 생성하여 당일 로그파일과 과거 로그파일을 분리 레벨별로 분리해주어 확인이 가능하도록 설정 수정내용 로그 패키지 구조 appender 디렉토리 생성 후 로그 레벨별로 어펜터를 설정하여 추가 appender 설정과 사용을 분리하여 logback-* 에서 include 하여 appender를 사용하는 방식으로 수정 logback.xml의 삭제 (logback-spring에 설정내용 통합) 로그 저장 파일 구조 기존 logs 에 다같이 저장 -> logs에 ..
application-auth.properties security.jwt.token.secret-key={SECRET_KEY} security.jwt.token.expire-length={EXPIRE_LENGTH} application-db.properties spring.datasource.url=jdbc:{DB}://{IP}:{PORT}/{DATABASE}?characterEncoding=UTF-8&serverTimezone=UTC spring.datasource.driverClassName=org.mariadb.jdbc.Driver spring.datasource.username={USER_NAME} spring.datasource.password={PASSWORD} application-elk.p..
Elastic Stack ELK: Elasticsearch, Logstash, Kibana Elasticsearch: 검색 및 분석엔진 Logstash: 서버 사이드 데이터 처리 파이프라인, 여러 소스의 데이터를 수집하여 변환한 뒤 elasticsearch 에 전송 Kibana: Elasticsearch 의 내용을 차트와 그래프를 이용해 데이터를 시각화 Beats: 경량의 단일 목적 데이터 수집기 제품군 Elastic Stack: EKL + Beat 우리 서비스 ELK Stack 구성 ElasticSeach, Logstash, Kibana는 docker-elk 레포지토리를 참고하여 설정 각각의 GM 서버에는 로그 정보를 Logstash에 전달하는 filebeat를 설치 FileBeat 로그가 있는 서버에..
로깅 개념 로그 레벨 TRACE < DEBUG < INFO < WARN < ERROR < FATAL INFO 레벨로 설정하면 그 위의 INFO, WARN, ERROR, FATAL 로그가 출력된다. FATAL: 아주 심각한 에러가 발생한 상태. 시스템적으로 심각한 문제가 발생하여 애플리케이션 작동이 불가능. 프로그램이 종료되는 경우가 많음. ERROR: 의도하지 않은 에러가 발생한 경우. 프로그램이 종료되진 않음. 프로그램에서 개발자가 의도하지 않은 예외를 나타낼 때 사용. WARN: 에러가 될 수 있는 잠재적 가능성이 있는 경우. INFO: 명확한 의도가 있는 에러. 요구사항에 따라 시스템 동작을 보여줄 때 사용. 개발자가 의도한 예외. DEBUG: INFO 레벨보다 더 자세함. TRACE: DEBUG ..
HTTP http 는 application-level 프로토콜이다. request/response protocol request는 requestLine, header, body로 구성되어 있다. response는 statusLine, header, body로 구성되어 있다. 브라우저마다 지원하지 않는 응답코드나 Request Line Request-Line = Method SP Request-URI SP HTTP-Version CRLF 가장 첫번째 줄이다. method, uri, http-version 이 포함되며 공백을 기준으로 구분한다. CRLF (개행)으로 끝난다. 예시: "GET /login HTTP/1.1 \r\n" Method method is case-sensitive GET, POST, P..
File java 애플리케이션은 resource 디렉토리에 정적파일을 저장 @Test void resource_디렉터리에_있는_파일의_경로를_찾는다() { final String fileName = "nextstep.txt"; URL request = getClass().getClassLoader().getResource(fileName); System.out.println("!!!"+getClass()); // !!!class nextstep.learning.http.FileTest System.out.println("!!!"+getClass().getClassLoader().getName()); // !!!app assert request != null; final String actual = req..
- Total
- Today
- Yesterday
- 마스터즈코스
- JS
- CS
- 운영체제
- 월간회고
- java
- TIL
- 글쓰기미션
- python
- 학습로그
- 개발공부일지
- 모의면접준비
- JPA
- 인증
- Transaction
- Spring
- 알고리즘
- javascript
- 회고
- 우테코수업
- 네트워크
- 객체지향
- DB
- 내부코드
- TCP/IP
- React
- 우아한테크코스
- 코드스쿼드
- 카카오
- OS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |