오브젝트
·
후기/책
보호되어 있는 글입니다.
[DockerCompose]Error: "failed to create task for container: Unavailable: error reading from server
·
Error
블루 컨테이너가 동작 중일 때 도커 컴포즈를 이용하여 그린 컨테이너를 만들고, 실행시키는 명령어를 입력했다.도커 컴포즈 명령어는 잘먹혔는데, 문제는 컨테이너가 Created 상태에서 도무지 Up 상태로 변경되지 않는다는 것이었다. 이와 더불어, EC2 접속이 안되는 문제가 발생했다. 즉 먹통이 됐다! TRY 1: 로그... 로그를 보자 docker logs spring-greenUp이 되지 못하는 비운의 컨테이너의 이름은 spring-green이었다. 그런데 컨테이너 로그가 아무것도 안보였다. 쩝그래서 도커 데몬 로그도 보고, 괜히 spring-blue나 aws 관련 로그를 뒤적거려봤는데 이상이 없었다. 일단 다른 것들을 먼저 확인해보기 시작했다. TRY 2: 네트워크를 보자뮤넥팅 서버는 레디스를 인증/..
[Redis Error] Unable to send PING command over channel
·
Error
"2024-10-21T15:09:37.643Z ERROR 1 --- [munectingV4] [isson-timer-4-1] o.r.c.handler.PingConnectionHandler : Unable to send PING command over channel: [id: 0x35370019, L:/172.18.0.3:38076 - R:redis/172.18.0.2:6379] org.redisson.client.RedisTimeoutException: Command execution timeout for command: (PING), params: [], Redis client: [addr=redis://redis:6379] at3.36.0 버전을 사용하고 있었는데, 3.37.0 버전으로 업그레이드하..
@ResponseBody를 이용한 HTTP 응답 프로세스
·
Spring
본격적인 응답 과정을 알아보기 이전에, @ResponseBody 어노테이션에 대해서 알아보자.하지만 API를 구현할 때, 보통 @ResponseBody 보다는 @RestController를 클래스 레벨에서 사용하는 경우가 많다. @RestController란?@RestController 는 @Controller 를 기반으로 하는 어노테이션으로, @RestController 컨트롤러에 존재하는 모든 메서드에 @ResponseBody  를 적용한다.즉, @RestController 는 @Controller  와 @ResponseBody 를 합친 어노테이션이라고 할 수 있다. 그렇다면 @ResponseBody는 무엇일까? @ResponseBody의 역할@Controller 어노테이션이 있는 컨트롤러(핸들러) ..
ServletResponse와 HttpOutputMessage 알아보기
·
Spring
ServletResponse와 HttpOutputMessage 의 차이점을 중심으로 알아보자.ServletResponseServlet에서 제공하는 인터페이스이다.서블릿에서 클라이언트에게 응답을 제공할 때 사용하는 용도로 ServletResponse interface를 정의해두었는데, 특히 Http 요청과 응답을 처리하기 위해서는 HttpServletResponse interface를 사용한다.HttpOutputMessage Spring 에서 제공하는 인터페이스이다. 이때 Http '요청과 응답'을 위한 기본 인터페이스로 정의해둔 것이 HttpMessage interface 이다.이전에 언급한 ServletResponse는 '응답'을 할 때 사용하는 용도라고 하였다. 따라서 자연스럽게 HttpMessage..
서블릿에서 원하는 HTTP Response 보내기
·
Spring
서블릿에서 원하는 HTTP 응답을 보내기 위해서는 HttpServletResponse 을 설정하면 된다.TMI ✨이렇게 서블릿 중에서도 HTTP 요청과 응답을 다루는 서블릿을 HTTP servlet 이라고 부른다.서블릿은 웹 서버에서 동작하는 작은 자바 프로그램이다. 서블릿은 웹 클라이언트로부터 요청을 받고, 이에 응답하는데 다들 알다시피 일반적으로 HTTP 요청/응답을 처리하는데 사용된다. 1. setContentType()을 통해 응답할 response의 content type을 정해주자. 이때 옵션으로 인코딩 방식도 정해줄 수 있다. res.setContentType("text/html;ISO-88859-4"); 2. 응답 헤더를 지정하자. setHeader()를 이용하면 된다. res.setHea..
인코딩과 디코딩
·
여러가지 모르는 지식들
문자 인코딩문자 인코딩이란 사람이 사용하는 문자를 컴퓨터가 읽을 수 있는 언어인 바이트코드로 바꾸는 것이다.그런데, 문자를 바이트코드로 변환하는 공통적인 기준이 있어야 하지 않을까? A 컴퓨터를 사용하는 A양과, B 컴퓨터를 사용하는 B양이 ‘Hello!’이라는 문자를 주고 받고 싶을 때, A 컴퓨터와 B 컴퓨터가 H는 이진수로 1001000 , e는 1100101 … 이라는 사실을 약속해야 문자를 잘 주고 받을 수 있을 것이기 때문이다.그래서 초기에 미국에서 정립되어 사용되었던 것이 그 유명한 아스키 코드, American Standard Code for Information Interchange 이다.아스키 코드는 알파벳 A는 숫자로 65, B는 66… 을 정의하여 문자를 주고받기에 용이했다. 덕분에..
오버라이딩
·
JAVA
B 클래스가 A 클래스를 상속받는 관계, 즉 B extends A 에서 B 클래스는 (A 클래스를) 상속받는 클래스, A 클래스는 (B 클래스가) 상속하는 클래스라고 표현한다. 상속받는 자식(서브) 클래스는 상속하는 부모(슈퍼) 클래스의 메서드를 재정의 할 수 있다. 이를 오버라이딩(Overriding)이라고 한다. 이러한 오버라이딩에는 제한 조건이 붙는다. 1. 메소드 이름이 같아야 한다.2. 자식 클래스의 접근 제어자는 부모 클래스 메서드의 접근제어자의 범위와 같거나 넓어야 한다.예시) A 클래스의 exam 메소드 접근 제어자가 protected라면 이를 오버라이딩하는 B 클래스의 exam 메소드는 protected, public만 가능하다. private, defalut는 불가능하다. 3. 반환타입..