분류 전체보기 42

[Docker] Error response from daemon : no space left on device 에러 해결하기

github action, Docker hub를 이용하여 CI/CD를 구현하였다. 그런데 잘 되던 배포가 어느날 갑자기 에러가 발생했다. error log를 보니, 다음과 같은 메세지를 확인할 수 있었다.Error response from daemon : no space left on device 용량이 부족하다는 것이다. 이는 대부분 이전에 생성된 도커 이미지들이 계속해서 쌓였기 때문이다.  1. 도커 이미지 확인아래 명령어로 확인해보면, 매우 많은 이미지들이 있는 것을 확인할 수 있을 것이다.sudo docker images TAG가 latest인 것이 현재 배포한 도커 이미지이고, 인 것들은 모두 이전에 배포했을 때의 도커 이미지이다. 즉, 이것들은 모두 현재 사용하지 않는 이미지인 것이다. 따라..

카테고리 없음 2024.06.02

[Docker, AWS] ERR_CONNECTION_REFUSED 에러 해결하기

github action을 이용하여 docker hub에 푸시했다. 코드상에 문제가 없고, ec2 보안그룹도 제대로 설정했는데 배포한 ip주소에 접속이 되지 않는 문제가 계속해서 발생했다.  해당 IP 주소에 접속하면, 다음과 같은 에러가 발생했다. 연결을 거부했습니다. ERR_CONNECTION_REFUSED     1. 실행중인 컨테이너 확인docker ps실행중인 컨테이너가 없다는 사실을 발견했다..!! 2. 전체 컨테이너 확인docker ps -aSTATUS를 보면, push한 docker container의 상태가 Exited (1) 이다. 컨테이너가 비정상적으로 종료되었다는 의미이다.  3. 해당 컨테이너의 로그를 확인한다.컨테이너의 로그를 확인하면, 어떤 에러가 발생했는지 구체적으로 확인할 ..

카테고리 없음 2024.06.02

[네트워크] 혼자 공부하는 네크워크 - Ch.01

1. 컴퓨터 네트워크를 알아야 하는 이유 네트워크의 네트워크, 인터넷 네트워크 여러 장치가 서로 연결되어 정보를 주고받을 수 있는 통신망 인터넷 네트워크들끼리 연결한 것 (네트워크를 연결하는 네트워크) 개발자가 컴퓨터 네트워크를 알아야 하는 이유 우리가 사용하는 대부분의 프로그램은 네트워크를 통해 다른 장치와 상호 작용하며 동작한다. 개발자는 프로그램을 개발하는 사람이다. 이 말은 즉, 다른 장치와 상호작용하여 동작하는 프로그램을 개발하는 경우가 많다는 의미이다. 네트워크를 잘 알면, 개발자의 업무인 프로그램을 만드는 업무와 유지 보수하는 업무 모두에 유리하다. 프로그램을 만드는 업무 네트워크의 기본인 TCP/UDP에 대한 지식이 없으면 위와 같은 Spring Framework의 기능을 제대로 이해하고 ..

네트워크 2024.04.23

[Java] 우선순위 큐 (PriorityQueue) 기본 사용법부터 객체 다루는 방법까지

우선순위 큐 (PriorityQueue) 란? 우선순위 큐는 삽입 순서와 상관 없이, 우선순위가 높은 데이터가 먼저 빠져 나가는 자료구조이다. PriorityQueue 기본 사용법 선언하기 // 우선순위가 낮은 숫자(작은 숫자)가 먼저 추출됨 PriorityQueue pQ = new priorityQueue(); // 우선순위가 높은 숫자(큰 숫자)가 먼저 추출됨 PriorityQueue pQ = new priorityQueue(Collections.reverseOrder()); 메서드 삽입 - add(원소) : 원소를 추가한다. - offer(원소) : 원소를 추가한다. 삭제 - remove() : 우선순위의 첫번째 값을 제거하고, 해당 값을 반환한다. 비어있으면 에러가 반환한다. - poll() : ..

Java/문법 2024.04.22

[Spring Boot] JPA 부터 Spring Data JPA까지

💡 본 글은 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 도서를 참고하여 정리하였습니다 관계형 데이터베이스 - RDB(Relational Database) 현대의 웹 애플리케이션에서 관계형 데이터베이스(Oracle, MySQL, MSSQL)는 거의 필수적이다. 그래서 객체를 데이터베이스에서 관리하는 것이 매우 중요하다. RDB의 문제점 1. 단순 반복 작업 문제 RDB는 SQL만 인식할 수 있기 때문에, 현업 프로젝트 대부분이 애플리케이션 코드보다 SQL로 가득하게 되었다. 각 테이블마다 기본적인 CRUD를 계속해서 생성 및 유지 보수해야한다. 수백 개의 테이블이 존재한다면, 이러한 단순 반복 작업을 수백 번 해야한다. 2. 패러다임의 불일치 RDB : 어떻게 데이터를 저장할지에 초점이 맞춰진 기술 ..

Spring 2024.04.14

[JAVA] 순열과 조합 구현하기

요즘 코테 공부하면서 순열, 조합을 구현할 일이 많은데 자꾸 까먹어서 정리한다. 특히 백트래킹 문제에서 거의 필수적으로 등장하는 것 같다. 구글링 하면서 제일 직관적이고 이해가 쉽다고 느꼈던 링크를 참고해서 작성한다! 순열 - nPr (서로 다른 n개 중 r개를 선택하는 경우의 수. 순서 상관 있음.) - (1,2) 와 (2,1) 을 서로 다른 것으로 취급한다. 조합 - nCr (서로 다른 n개 중 r개를 선택하는 경우의 수. 순서 상관 없음.) - (1,2) 와 (2,1) 을 서로 같은 것으로 취급한다. 순열, 조합 모두 재귀로 구현한다. n개 중 r개를 뽑아서 output 배열에 저장할 것이다. 이때, 순열은 순서가 상관 있으므로 방문 배열(visited)를 추가로 선언해주어야 한다. 순열 1) 뽑은..

[JAVA 중급 스터디 - 7~9회차] 상속

상속 상속이란? 기존 클래스의 속성을 물려 받아, 새로운 클래스를 생성하는 것 extends : java에서 상속을 위해 사용하는 키워드 하나의 대상만 선택 가능. (단일상속만 지원) java는 다중상속을 지원하지 않음! 해결 방안 : implements 키워드를 이용한 인터페이스의 다중구현 으로 해결 단일 상속 vs. 다중 상속 1) 단일 상속 2) 다중 상속 자바가 다중상속을 지원하지 않는 이유 - 다이아몬드 문제 발생 가능성 때문 1) GrandFather 클래스에 memberMethod() 라는 이름의 메소드가 있다고 가정하자. 2) FatherA와 FatherB가 각각 memberMethod() 오버라이딩하여 구현했다. 3) FatherA와 FatherB를 모두 상속받은 Son 클래스는 어떤 부..

Java/문법 2024.03.20

[JAVA 중급 스터디 - 6회차] final

final final 키워드 처음 정의된 상태가 변하지 않도록 보장한다. class, method, 변수 등 여러 곳에 붙을 수 있다. final final + 지역변수 final을 지역 변수에 설정할 경우, 최초 한번만 할당 가능 이후에 변수의 값을 변경하면 컴파일 오류 발생 final 지역변수를 선언시 바로 초기화한 경우, 이미 값이 할당되없으므로 이후에 값 재할당 불가능 final + 매개변수 매개변수에 final이 붙으면 메서드 내부에서 매개변수 값의 변경이 불가능 메서드 호출시점에 사용된 값이 끝까지 사용됨 public class FinalLocalMain { public static void main(String[] args) { //final 지역 변수1 final int data1; dat..

Java/문법 2024.03.20

[JAVA 중급 스터디 - 4~5회차] static

static 변수 static static 키워드는 주로 멤버 변수와 메서드에 사용된다. static의 필요성 static 변수는 쉽게 이야기해서 클래스인 붕어빵 틀이 특별히 관리하는 변수이다. 붕어빵 틀은 1개이므로 클래스 변수도 하나만 존재한다. 반면, 인스턴스 변수는 붕어빵인 인스턴스의 수 만큼 존재한다. static 변수 public class Data { public String name; public static int count; //static } 멤버변수는 static이 붙은 것 / 아닌 것으로 분류한다. 인스턴스 변수 static이 붙지 않은 멤버 변수 ex. name 인스턴스를 생성해야만 사용 가능 인스턴스에 소속됨 인스턴스를 만들 때마다 생성됨 클래스 변수 (정적 변수, static..

Java/문법 2024.03.20

[JAVA 중급 스터디 - 3회차] 자바의 메모리 구조

스택/힙/메서드 영역 붕어빵과 붕어빵틀에 비유 자바의 메모리 구조는 크게 스택 영역, 메서드 영역, 힙 영역 3개로 나눌 수 있다. 메서드 영역 클래스 정보를 보관하는 영역. 이때, 클래스 정보 == 붕어빵 틀 스택 영역 실제 프로그램이 실행되는 영역 메서드를 실행할 때마다 하나씩 쌓인다. 힙 영역 객체(인스턴스)가 생성되는 영역 new 명령어를 사용하면 이 영역이 이용됨 붕어빵 틀로부터 생성된 붕어빵이 존재하는 공간! 배열도 이 영역에 생성됨 메서드 영역 프로그램을 실행하는데 필요한 공통 데이터를 관리 클래스 정보, static 영역, 상수 풀이 있음 프로그램의 모든 영역에서 메서드 영역이 공유된다.클래스 정보 모든 실행 코드가 존재 (클래스의 실행 코드(byte 코드), 필드, 메서드와 생성자 코드 ..

Java/문법 2024.03.09