IT/Server 13

[Tomcat] 톰캣 버전확인 및 구동,종료,재기동 방법

너무나 간단한 것 같지만 , 막상 해보려고하면 생각 안나는 것들 리눅스 서버 Tomcat 버전 확인하기 1. 설치된 톰캣 버전 확인하기 톰켓이 설치된 경로로 이동한다. 톰캣 설치된 하위 /lib 폴더로 이동해소 아래의 명령어를 입력해주자. 상세하게 버전 확인이 가능하다. 2. 톰캣 서버 키고, 끄고, 재기동 하기 1. 켜기 cd {TOMCAT_PATH}/bin ./startup.sh service tomcat start 2. 끄기 cd {TOMCAT_PATH}/bin ./shutdown.sh service tomcat stop 3. 재기동 cd {TOMCAT_PATH}/bin ./shutdown.sh ./startup.sh service tomcat restart

IT/Server 2023.05.16

[Spring] LogBack 로그 레벨

Logback은 Java에서 가장 많이 사용되는 Logging 프레임워크이다. Log4j의 후속 버전으로 만들어진 라이브러리이다. 로그 레벨의 종류는 아래와 같이 6가지이다. Fatal 매우 심각한 에러로 프로그램이 종료되는 상황이 많다 Error 의도하지 않은 에러가 발생한 경우 Warn 에러가 될 수도 있는 잠재적 가능성이 있는 경우 Info 요구사항에 따라 시스템 동작을 확인할 때, 명확한 의도가 있는 에러의 경우 Debug Info레벨보다 조금 더 자세한 정보가 필요한 경우, DEV환경에서 주로 사용한다. Trace Debug 레벨보다 더 자세한 예외로그를 사용할 때 사용

IT/Server 2023.05.11

[Spring] SpringBoot, HikariCP stats 로그 레벨 조정하기

회사 서비스에 대량의 데이터를 오래걸리는 쿼리로 가공해 가져오는 부분이있다. 그 부분에서 갑자기 터진 이슈 504 gateway timeout 내가 접속해서 다운받아보니 잘 되기도 하고 안되기도 하고, 간헐적으로 발생하는 부분이라 로그를 살펴보았다. 아래는 내가 클릭했을 때 발생한 오류라, 어디서 트랜젝션을 잡아먹고 있는지 확인하기 위해, 로그레벨을 올려보고 모니터링하기로 결정했다. - 로그레벨 조정 방법 hikari pool 상태 ( active, idle, wating)의 커텍션 수를 확인하고 싶은 경우, 아래 설정값을 수정하여 로그레벨을 변경할수 있다. 1. logback 설정이 되어있다면, logback-spring.xml 수정 2. application.properties 나 applicatio..

IT/Server 2023.05.11

[Spring] HikariCP이란?

일단 HikariCP는 JDBC의 커넥션 풀 라이브러리이다. jdbc에 대해서 먼저 알아보자 - JDBC란?JDBC는 Java Database Connectivity의 약자로 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API이다. 데이터베이스의 종류와는 상관없다. -DB Connection Pool(커넥션 풀)이란?자바 프로그램에서 데이터베이스의 연결을 맺고 끊는것은 오래걸려 성능과 안정성에 큰 영향을 미친다. 그래서 웹 어플리케이션은 실행됨과 동시에 연동할 데이터베이스와의 연결을 미리 설정해 둔다. 일정량의 Connection 객체 연결을 미리 해 놓았다가 요청시 꺼내서 쓴다. 연결을 미리 해 놓은 상태로 데이터베이스와 연결 상태를 유지하는 기술을 커넥션 풀이라고 한다. - 스프링에서의 커넥션..

IT/Server 2023.05.11

Swagger 설정하기 (gradle)

Swagger는 REST 웹서비스를 설계, 빌드, 문서화 하는것을 도와주는 오픈소스 소프트웨어이다. Spring으로 RestAPI를 개발하고 그에대한 문서를 정리할때, Swagger를 이용하게되면 이런 작업이 보다 편리하다. 문서 자동화 뿐만 아니라 제공되는 UI에서 직접 API테스트를 할 수 있다. 1. 의존성 추가 아래의 주소에서 사용하고싶은 스웨거 버전의 디펜던시를 찾아 프로젝트에 추가한다. https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui 2. Swagger 설정 추가 @Configuration 으로 스웨거Config를 등록한다. 옵션 설정은 이곳에서 한다. import org.springframework.context.an..

IT/Server 2021.12.17

[Docker] 도커/쿠버네티스 실습 기록

참고 서적 : 시작하세요! 도커/쿠버네티스 환경 : Mac OS > vitrualBox > ubuntu 1. 로컬에 우분투 설치 1-1. VirtualBox 다운 및 설정 방법 참고 : https://blog.naver.com/alice_k106/220882666548 1-2. 운영체제에 맞는 virtualBox 다운 https://www.virtualbox.org/wiki/Downloads 1-3. 우분투 가상이미지 .iso 파일 다운 http://releases.ubuntu.com/16.04/ 맥에 설치하면서 시스템 무결성 문제로 겪는 문제 해결에 도움된 사이트 : https://m.blog.naver.com/5341287/221697740777 -> 재부팅할때 복구모드 진입하면서 시간이 오래걸려서 ..

IT/Server 2021.09.01

[Docker] 도커란? MacOS에 도커 설치하기

개발자에게 스터디란 꼭 필요한 부분.. 도커 컨테이너로 토이프로젝트를 만들어 실습해보고자 한다. 도커란 ? Docker는 리눅스 컨테이너에 어플리케이션을 신속하게 구축하고 테스트 및 배포할 수 있는 소프트웨어 플랫폼이다. Docker는 Go언어로 작성되어있으며, 소프트웨어를 컨테이너라는 표준화 된 유닛으로 패키징한다. 이 컨테이너는 라이브러리, 시스템도구, 코드, 런타임 등 소프트웨어를 실행 하는데에 필요한 모든것이 포함되어있다. 도커를 사용하면 환경에 구애받지않고 어플리케이션을 배포 및 확장 할 수 있다. 아주 쉽게 가상화 머신을 생성하고 관리할 수 있어 2013년 배포 이후 꾸준히 인기가 좋아지고있다. 도커파일 하나만 공유하면 다른 환경에서도 같은 셋팅의 가상화머신을 생성 할 수 있다. 도커의 장점 ..

IT/Server 2021.08.31

[Pinpoint] Pinpoint란?

회사에서 사용하고있는 모니터링 오픈소스 플랫폼은 pinpoint이다 AWS-> IDC 핀포인트로 target collector를 수정을 배포하다가 자세한내용이 궁금해서 찾아보고 적어보는 블로그! 아래 출처페이지 네이버 사이트에 자세한 설명이 나와있으며, 이 게시글은 그 내용을 요약한 내용을 적어두었다. 출처페이지 : https://d2.naver.com/helloworld/1194202 Pinpoint란? 원인을 콕 찝어내다는 뜻의 핀포인트! 대규모 분산시스템의 성능을 분석하고 문제를 진단, 처리하는 java 플랫폼이다 네이버에서 2015년 오픈소스로 배포하였다. 시스템의 복잡도가 높아지면서 장애나 성능문제가 발생했을때 분석과 해결이 어려웠던 것을 해결하기위한 새로운 플랫폼을 만든것이다. 적용과 해제 방..

IT/Server 2021.06.10

[JPA]JPA란?

JPA 란? Java Persistence API의 줄임말로 JAVA에서 쓰이는 ORM 기술 표준이다. 기존의 EJB 에서 제공되던 EJB ORM 엔티티빈을 대체하는 기술이다. 어플리케이션과 JDBA 사이에서 동작한다 EJB 3.0에서 새로운 자바 ORM 기술 표준이 만들어진것이다. JPA는 Hibernate, OpenJPA, EclipaseLink, TopLink Essentials와 같은 구현체가 있고 이것들의 표준 인터페이스가 바로 JPA이다. ORM : Object Relational Mapping ORM이란 RDB테이블을 객체지향적으로 사용하기위한 기술이다. RDB테이블은 객체지향적 특징이없기때문에 자바같은 언어로의 접근이 쉽지않아 객체지향적으로 다루기위한 기술이다. 객체와 RDB 를 ORM 프..

IT/Server 2021.05.27

[Spring] @RequestMapping-> @GetMapping , @PostMapping

Spring 4.3 버전부터 Spring MVC 컨트롤 메소드를 위한 어노테이션이 추가가 되었다. 각각의 어노테이션은 HttpMethod에 맵핑이 된다. PostMapping - Post GetMapping - Get PutMapping - Put DeleteMapping -Delete PatchMappign - Patch로 요청이 맵핑된다 - GET / POST 클라이언트가 서버로 요청을 보내는 방법은 대표적으로 두가지가 있다. Get 방식, POST 방식인데 그 둘의 차이는 아래와 같다. GET 방식 POST 방식 조회하기 위해 사용 됨 데이터를 서버로 보내 추가 또는 수정하기위해 사용 됨 URL에 변수를 포함하여 노출 -> 보안이 취약 URL에 변수를 노출하지않음 데이터를 Header를 포함하여 전..

IT/Server 2021.05.12

[HTTP] Error Code 정리 ( 정리중 )

HTTP (하이퍼텍스트 전송 프로토콜) 은 하이퍼미디어 문서를 전송하기위한 어플리케이션 레이어 프로토콜이다. 웹 브라우저와 서버간의 커뮤니케이션을 위해 디자인 되었고 요청에 대한 응답 코드를 가지고 요청이 성공되었는지 에러가 발생하였는지 다양한 코드를 반환한다. HTTP 사ㅇ태 코드는 5개의 분류로 구분된다. 상태코드의 첫번째 숫자는 응답의클래스를 정의한다. 첫자리에 대한 5가지 값들은 다음과 같다 - 1XX (정보) : 요청을 받았으며 프로세스를 계속한다. - 2XX (성공) : 요청을 성공적으로 받았으며 인식했고 수용했다. - 3XX (리다이렉션) : 요청 완료를 위해 추가 작업 조치가 필요하다 - 4XX (클라이언트 오류) : 요청 문법이 잘못되었거나 요청을 처리할 수가 없다. - 5XX (서버 오..

IT/Server 2021.04.21

[WebServer] Nginx 디폴트 에러페이지 설정하기

- 계기 회사에서 새 운영업무를 맡으면서 여러가지 오류들을 개선했었다. 근 6개월 정도 시스템을 고쳐오면서, 달에 한번씩은 504 Bad Gateway Time-out 메세지가 뜨거나 메뉴트리구조가 안 뜨는 현상이 생겨 확인을 해보았다.pinpoint를 보니 특정 ip로부터 1분에 한번씩 10시간 가까이 호출이 왔고 없는 uri로 호출이 되어 리스폰스를 찾던 Tomcat이 응답이 점점 길어지면서 과부하되어 다운되어 버린 것이었다. 지속적인 취약점 스캔툴 공격으로 인지하고 클라우드 보안파트에 연락해 ELB 쪽에 해당 IP를 차단 요청했지만다른 IP 로 지속적인 공격이 왔고, 해결할 방법이 없나 고민하다가 서버 부하를 줄이기위해 웹서버 설정을 하고, nginx에 디폴트 에러페이지를 설정해주기로 했다. 504..

IT/Server 2021.04.21

[WebServer] Nginx란?

- Nginx란 ? Nginx란 웹 서버 소프트웨어이다. 트래픽이 많은 웹 사이트를 위해 가벼움과 높은 성능을 목표로 만들어진 경량 웹 서버이다. 클라이언트의 요청을 받았을 때 요청에 맞는 정적파일을 응답해주는 HTTP Web Server 이며, Reverse Proxy Server로 활용하여 WAS서버의 부하를 줄일 수 있는 로드밸런서로 활용되기도 한다. 트래픽이 많은 웹 사이트를 위해 네트워크 확장성을 주 목적으로 설계한 Nginx는 아파치를 대체할 수 있을 차세대 HTTP 서버로 평가 받는다 웹 사이트의 전체 속도를 향상 시키기 위한 프리오픈 솔루션으로, 기존 웹서버 앞에 설치해 사용할수 있다. - 특징 Nginx는 하나의 Master Process에 다수의 Worker Process로 구성되어 실..

IT/Server 2021.04.21