본문 바로가기

유튜브는 주말에만 봐야지 시간이 꽤 뺏긴다. 자투리 시간이 다 없어졌다. 주말에만 보자. 앱 지워야지
Ansible이란? Ansible is an IT automation tool. It can configure systems, deploy software, and orchestrate more advanced IT tasks such as continuous deployments or zero downtime rolling updates. Ansible’s main goals are simplicity and ease-of-use. It also has a strong focus on security and reliability, featuring a minimum of moving parts, usage of OpenSSH for transport (with other transports and pull modes as..
DispatcherServlet 스프링 MVC가 제공하는 servlet 중에 DispatcherServlet이라는 클래스가 있다. 이 클래스는 스프링 MVC 프레임워크의 가장 중요한, 핵심이되는 클래스라고 해도 과언이 아니니 잘 알아두는 것이 좋다. FrontController 역할을 하는 Servlet 서블릿으로 웹 어플리케이션을 개발할 때 보편적으로 여러 url을 처리하는 서블릿을 여러개 만들어서 매핑한다. 이런식으로 해도 요청을 처리하는 것에는 문제없지만 처리할 요청이 늘어날 수록 서블릿을 더 만들어야 할 수도 있다. 서블릿을 만들면 서블릿 컨테이너에 등록해줘야하는데, 부가적인 작업 또한 늘어가고 web.xml과 같은 설정파일은 점점 장황해질 것이다. 이런 단점을 극복하고자 하는 패턴 중 FrontController라는 패턴이 있..
ContextLoaderListener 스프링에서 제공하는 클래스 중에서 ContextLoaderListener가 있다. 이 클래스는 ContextLoader와 ServletContextListener를 상속하고 있다. 그렇다. 이 클래스의 역할은 ServletContextListener로서 서블릿 컨텍스트의 특정 이벤트를 감지해서 ContextLoader로서 Application context를 로딩한다. 실제로 서블릿 컨테이너가 초기화 될 때 (서블릿 컨테이너가 구동될 때) 그 생명주기에 맞게 application context를 만들어서 Servlet Attribute로 등록하고, 제거하게된다. 이렇게 등록된 Servlet Attribute는 모든 서블릿이 접근할 수 있다. 이렇게 공통적으로 접근할 수 있는 application cont..
데이터 쌓기 전 기본은 용량 산정 ES에 로그를 쌓는다 DB에 새로운 테이블을 만들어 데이터를 적재한다. 이 모든 것의 기본은 용량산정이라는 것을 느꼈다. 회피한 나는 무책임한 개발자였다. 오늘 ES 클러스터에서 403 에러가 우수수 떨어지기 시작했다. 403? Unathorized? 잘 돌아가던 ES에서 갑자기 403 에러라니. 의아했다. 마이클이 구글링해보니 ES는 데이터 스토리지가 부족할 때 403 에러를 뱉을 수 있다고한다. 왜 403? 503이 아니라? 의아했다. 그때 한가지 스쳐가는 생각. 약 5일전에 새로운 서비스를 오픈했는데, 로그 기록겸 장애가 발생한 ES에 로그를 적재하기 시작했다. 그런데 용량 산정을 했던가? 안 했다. 불안은 확신이 되었다. 4개의 서버로 구성된 클러스터의 모든 서버가 디스크 부족에 허덕이고 있었다...
Enum의 static field 접근 enum을 일반 자바 클래스로 구현하려면 어떻게 해야할까? 아마도 각 상수를 static으로 선언하고 생성자를 private으로 하지 않을까 싶다. 실제로 enum의 상수들은 static final로 구현된다. 이 기본적인 개념을 간과하고 있었다. (enum을 너무 생각없이 쓰게된걸까..?) 아래 코드는 에러가 발생한다. 왜 발생할까? package enumTest; import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) { System.out.println("hellop"); System.out.println(Fruit.fruitMap); } } enum Fruit {..
jre와 jdk 출처 : https://stackoverflow.com/questions/1906445/what-is-the-difference-between-jdk-and-jre jre : 컴파일된 자바 프로그램을 실행하기 위해 필요한 모든 것들.예) jvm, java command, java class library 등등.. 하지만 jre는 프로그램 개발을 위한 것은 아니다. 오직 실행을 위해 필요하다. jdk : java 개발을 위해 필요한 모든 것으로, jre를 포함하며, 추가적으로 다른 것들도 포함되어 있다.예) java compiler and tools like javadoc
Https란? 참고 사이트: https://opentutorials.org/course/228/4894 HTTPS는 무엇일까? HTTP는 Hiper Text Transfer Protocol로, html문서를 주고받기 위한 웹 통신규약이다. HTTP에는 보안적 허술함이 있는데, 특히 중간자 공격에 취약하다. 예를 들어 네이버에 접속한다고 했을때, http통신으로는 내가 접속한 곳이 네이버가 맞는지 확신할 수 없다. (실제로 겉모습을 특정 도메인과 똑같이 하여 사용자의 정보를 빼내는 경우가 있다) 또한, 서버(네이버)와 내가 주고받는 정보들을 중간에서 가로챔으로써, 정보 누출이 쉬우며, 이를 조작하여 나를 행세할 수 있다. 이러한 보안 취약점을 개선하고자 발명된 것이 HTTPS이며 SSL/TLS라는 기술을 근간으로 서비스..