전체 글38 app fails to be served - curl: (56) Recv failure: Connection reset by peer 1. 환경ubuntu 24.04docker compose를 깐 뒤부터 발생 2. 오류간헐적으로 request가 요청이 서버에 들어가지 않았다 3. 원인 파악패키징 관리자 2개 (snap, apt )에서 모두 docker 가 깔려잇어서 두개의 패키징에서 관리하는 도커데몬의 우선순위가 정해지지 않아 리쿼스트가 간헐적으로 포트맵핑이 되어있지 않은 도커데몬으로 요청처리가 들어갔다고 판단하였다.따라서 snap 패키지 관리자의 docker를 모두 삭제하는 방법으로 해결하였다. 4. 해결방법which docker-compose-> /snap/bin/docker-compose** 나는 여기서 snap 패키징 관리자로 깐적이 없다 따라서 snap 에 깔렬있는 도커 및 도커컴포즈를 삭제하는 방법을 채택하였다 sudo sn.. 2024. 6. 12. 도커 Mysql 8 -> 도커 Mysql 5.7 이전 1. Collations 오류mysql 8과 mysql 5의 default collation 설정이다르다.mysql8: utf8mb4_0900_ai_cimysql5: utf8mb4_general_ci 이전할때 mysqlDump를 통해 .sql 파일을 받아 설정할때create new table ~ 에서 collation 설정을 맞게 변경하자sql 파일에서 ctrl + R로 모두 변경해줘서 반영하자 2. docker-compose를 이용한 docker 설정 고정(우분투 24.04 기준)version: '3.1'services: db: image: mysql:5.7.21 container_name: dev_db command: - --default-authentication-plug.. 2024. 6. 11. 오픈소스 메일 서버 구축하기 ( 1 ) 참고 오픈소스 https://docs.postalserver.io/install/dns-configuration Welcome An open source, transactional mail server for web apps. docs.postalserver.io 알아야할 프로토콜 1. SMTP ( Simple Mail Transfer Protocol) 용도: 이메일 발송 담당 포트번호: 일반적으로 25 , TLS/SSL 사용하는 경우 587 또는 465 특징: SMTP는 메일 서버간에 이메일을 전송하고, 최종 사용자가 아웃바운드 이메일을 보낼때 사용 ** 아웃바운드란: 이메일 클라이언트나 웹인터페이스를 통해 보내는 이메일 ( ex. Microsoft, Outlook ..) 2. IMAP ( Intern.. 2023. 11. 7. Docker Mysql 5.7 재부팅시 Access denied for user 'root'@'localhost' (using password: YES) 해결 방법 맥을 업데이트하고 Docker가 재실행되자 Access denied for user 'root'@'localhost' (using password: YES) 가 떳다 ㅋㅋㅋ 난 비번 틀린적 없다고 ㅠ 사실 docker mysql 을 쓰면서 해당 오류를 굉장히 많이 봤는데 항상 그냥 밀고 새로했지만,, 이번에는 20만개의 데이터를 버릴 수 없었기에 목숨걸고 고쳐야했다. 먼저 나는 root 자체가 접속이 안되는 상태고 대부분들의 글은 다 리눅스 또는 맥 기반의 mysql 서버였기에 이 글은 docker mysql 인 경우 데이터를 버릴수 없는경우 두가지 경우에 읽길 바란다. 내 방법은 root계정을 새로 만드는 방법을 채택했다. 1. 도커 컨테이너 접근 docker ps CONTAINER ID IMAGE C.. 2023. 10. 4. 백준 2606 바이러스 재채점 변경사항 반례: 컴퓨터가 1만 따로 있는 경우 OR 1번 컴퓨터가 존재하지 않는 경우 import collections n = int(input()) graph = [[] for _ in range(n+1)] for _ in range(int(input())): a, b = map(int, input().split()) graph[a].append(b) graph[b].append(a) visited_node = [] q = collections.deque() q.append(1) # 1번 컴퓨터 while q: frm = q.popleft() for to in graph[frm]: if to not in visited_node: q.append(to) visited_node.append(to) ## 반례: 1만.. 2023. 7. 2. [생성 패턴] 추상 팩토리 패턴 추상 팩토리란 관련 객체들의 구상 클래스들을 지정하지 않고 관련 객체들의 모음을 생성할 수 있도록 하는 생성패턴입니다. 예시 만들고자 하는것: 가구 판매장을 위한 프로그램 관련 제품들로 형성된 패밀리(제품군), 예: Chair(의자) + Sofa(소파) + CoffeeTable(커피 테이블). 해당 제품군의 여러 가지 변형. 예를 들어 Chair(의자) + Sofa(소파) + CoffeeTable(커피 테이블) 같은 제품들은 Modern(현대식), Victorian(빅토리안), ArtDeco(아르데코 양식)와 같은 변형으로 제공 요구사항: 카탈로그의 변경 사항이 많습니다다. 따라서 새로운 제품이 생성될 때 기존의 코드의 변경을 막고싶습니다. 해결책 제품 (의자, 소파, 커피테이블 ) 에 맞춘 개별적.. 2023. 6. 19. [생성 패턴] 팩토리 메서드 팩토리 메서드란 부모 클래스에서 객체들을 생성할 수 있는 인터페이스를 제공 자식 클래스들이 생성될 객체들의 유형을 변경할 수 있도록 하는 생성 패턴 문제 만약 비즈니스 로직중, 기존의 객체가 너무 결합도가 높아서 새로 생기는 로직에 적용을 못한다면 코드 베이스를 변경하는 일이 생길것 이에 새로 생기는 로직에 많은 조건문이 들어간다면 매우 복잡해질 것이다. 해결책 팩토리 매서드 패턴은 new 연산자를 사용한 객체 생성 직접 호출하는 것을 팩토리 메서드를 사용한 호출로 대체하는것을 제한한 패턴이다. 즉, 객체를 생성할 때 어떤 클레스의 인스턴스 를 만들 지 서브 클래스에서 결정한다. 적용 상황 코드에서 객체들의 정확한 유형과 의존관계를 모르는 경우 사용한다 라이브러리 또는 프레임워크의 사용자에게 내부 컴포넌.. 2023. 6. 19. [디자인 패턴] 들어가며 디자인 패턴이란? 소프트웨어 디자인 과정에서 자주 발생하는 문제들을 해결하기 위한 전형적인 해결책 즉, 청사진에 가까운것을 공부합니다. 패턴의 문제점 널리 사용되고 있는 문제 해결 방식의 체계화를 시도하지만, 프로젝트의 비즈니스 로직을 고려하지 않고 적용한다면 코드만 구현될 수도 있다. 패턴에 익숙하지 않은 경우 간단한 코드도 패턴을 적용하려고 한다. 패턴의 분류 디자인 패턴은 복잡성, 상세도, 전체 시스템에 대한 적용범위에 따라 분류된다. 이때 아키텍쳐 패턴은 상위 설계 패턴이다. 주요 패턴은 아래 3가지로 같다. 생성 패턴: 기존의 코드의 재활용 및 유연성을 증가시키는 객체 생성 매커니즘 구조 패턴: 구조를 유연하고 효율적으로 유지하면서 객체와 클레스를 더 큰 구조로 결합하여 조합하는 매커니즘 행동 .. 2023. 6. 19. [2. 가상화의 원리와 기술] VLAN, 오버레이 네트워크, VPN, SDN, NFV, SD-WAN 이론 VLAN 물리적 네트워크 LAN를 분할하여 논리 네트워크로 분할하는 기술 주로 PORT LAN 기술을 이용한다. 포트별로 번호를 매기고 그룹화 한다. 다른 포트간의 통신이 불가능하다. 따라서 다른 포트간의 통신을 제공하기 위한 논리 네트워크 분할인 VLAN을 구축한다. 이를 구현한 기술은 TAG LAN이다. TAG라는 식별자(데이터 프레임)를 이용하여 해당 데이터를 전송할 그룹을 나누는 기술이다. ( 혹시 서로 다른 VLAN 이여도 라우팅 기능의 장비를 통해 전송 가능하다. ) 그럼 중앙의 Trunk Port란, 복수개의 VLAN에 소속된 포트를 Trunk port라고 한다. ( 그림의 왼쪽 스위치는 Vlan10,20,30에 속해있음 ) 참고 LAN은 OSI 7 계층 중 2계층 데이터링크 계층에 속한다... 2023. 6. 19. 이전 1 2 3 4 5 다음