목록workspace/server_application (122)
HwangHub

상황OS: Centos 7.6.1810K8S: v1.25.1Container Runtime: Docker (Inteface: cri-docker)운영중인 솔루션이 쿠버네티스 기반으로 동작하고 있었고, 이를 파악하기 위해 솔루션 설치를 수행하던 중 문제가 발생했다.구체적으로, kubeadm init을 수행했을 때 계속 아래와 같은 메시지가 4분 동안 반복되다가 timeout이 났다.HTTP Trace: Dial to tcp:192.168.77.232:6443 failed: dial tcp 192.168.77.232:6443: connect: connection refusedGET https://192.168.77.232:6443/healthz?timeout=10s in 0 millisecondsHTTP S..
상황은 이랬다.싸피 내 데스크탑을 이용하고 있었다.데스크탑 자리는 주기적으로 변경된다.나는 지난번엔 분명 이 PC에서 git을 이용했다.사용하고 있는 git repo 플랫폼은 git lab이다.어느날 갑자기 remote repository에 git을 이용하여 clone과 push를 하는 작업을 하려고 하면 위와 같은 에러가 발생했다.심지어 내 개인 repo에 push하는 것도 실행되지 않았다...(이 지점에서 무언가 단단히 잘못됨을 느낌) project 경로는 copy & paste로 입력한 거라서 잘못되었을 수 없다고 판단했다.그렇다면 권한이 문제라는 가정을 한 채로, ssh key나 access token이 만료되었나 체크해봤다. 아쉽게도 만료되어서 발생하는 문제는 아니였다. (물..

커뮤니티 서비스는 likelion univeristy 서비스의 핵심 기능 중 하나이다. 유저들에게 가치를 전달할 수 있는 핵심 도메인이다. 즉, 서비스의 성공의 선두에 커뮤니티 서비스가 제공되어야 한다. 그럼에도, 현재는 쿼리 하나하나를 무겁게 실행하고 있어 데이터가 조금만 많아져도 서버가 많은 부담을 느끼고 있다. 이를 확인하고자 먼저 테스트 데이터를 강제로 늘려보았다. 운영 DB를 mysql로 사용하고 있기 때문에 이와 최대한 근사한 환경을 구축하고자 로컬 test db로 mysql로 구성하였다. 테스트용 더미데이터 입력을 위해 프로시저를 제작하여 등록하여 호출을 통해 데이터 복제를 수행하였다. CREATE DEFINER=`likelion`@`localhost` PROCEDURE `InsertMill..
보호되어 있는 글입니다.

자바 서블릿 자바 서블릿은 웹 통신 간 요청에 따른 응답을 동적으로 생성하는 자바 기반의 웹 어플리케이션 기술로, 흔히 "서블릿"이라 줄여 부릅니다. 여기서 말하는 웹 통신 간의 응답은 동적인 웹 페이지가 될 수도 있고, HTTP 응답 메시지일 수도 있죠. 서블릿이 하는 일을 좀 더 열거하여 말해보자면, 서블릿은 비즈니스 로직 실행을 제외하고 TCP/IP 대기 및 소켓 연결부터 HTTP 요청 메시지 헤더/바디 파싱, 그리고 HTTP 응답 메시지를 생성하여 소켓으로 전송해주는 것 까지 전부 수행하는 녀석입니다. (굉장히 많은 일을 하고 있네요) @WebServlet(name = "helloServlet", urlPatterns = "/hello") public class HelloServlet extend..

우리는 보통 TCP와 견주어 UDP를 많이 학습합니다. UDP의 대표적 특징으로는 아래 항목들이 있습니다. 비연결형 프로토콜이다. TCP와 달리 handshake를 하지 않아 속도'는' 빠르다. 하지만 패킷의 유실 관리나 순서 보장을 하지 않아 신뢰성 있는 통신이 불가능하다. 주로 DNS에 IP 주소 요청할 때, DHCP에 사용된다. 개인적으로는 오늘날에는 인터넷 속도도 빠르다보니 신뢰성 있는 통신의 가치가 더 높다고 생각하여 현대 사회에서 대부분의 통신은 TCP 기반으로 이루어질 것이라 생각하였습니다. 실제로 웹 통신에서는 HTTP 통신이 가장 많이 쓰이는데 이게 기본적으로 TCP 기반으로 알려져 있죠. 근데 다시 네트워크를 공부하다가 신기한 사실을 알아냈습니다. 충격적이게도 모든 HTTP가 TCP로 ..
지난 시간에 OSI 7 Layer나 TCP/IP Stack에 대하여 다뤘다. 자바로 네트워크 이해하기 1 - OSI 7 Layer? ("자바로 네트워크 이해하기"이지만, 아직은 자바 코드가 등장하진 않는다. 통신 과정에서 코드로 설명해 볼 예정이다.) 네트워크가 뭐지요? 네트워크는 유선 또는 무선으로 여러 컴퓨터들을 연 hwanghub.tistory.com 여러 레이어를 거치며 통신이 이루어진다고만 이해해도 일단은 괜찮다 더 중요한 건, 통신의 목적이 되는 "중요 데이터"를 어떻게 주고받는가 이다. 이렇게 통신의 목적이 되는 중요 데이터를 어떤 규약으로 통신하는가를 담당하는 레이어는 Transport Layer이다. 전송 레이어라고도 하며, 여기에는 TCP와 UDP라는 두 개의 프로토콜이 메인을 이루고 ..
배열은 자료형을 이용하는 가장 단순한 자료구조이다. 물리적으로 연속된 메모리 공간을 할당하여 여러 데이터를 한번에 저장하는 방식이다. 하나의 변수에 여러개의 공간을 할당하여 사용 같은 타입의 데이터만 저장할 수 있고, 공간은 idx 로 구분. idx는 0번 부터 시작. 배열은 reference 타입으로, 객체를 생성해야 사용할 수 있음. 배열 객체를 생성하면 기본 값으로 초기화된다. 배열의 접근은 0 ~ arr.length - 1까지 접근 가능하고, 범위를 벗어나면 "ArrayIndexOutOfBoundException" 발생 배열의 최대 사이즈는 ? 자바는 기본적으로 사용하는 정수 타입이 int라 배열의 사이즈도 21억까지만 생성 가능. 따라서 2GB 이상의 파일을 로드하기 위해선 NIO라는 걸 사용해..
Java에서는 초기화 블록(Initialization Block)이라는 특별한 구조를 제공합니다. 초기화 블록은 두 가지 종류가 있는데, 하나는 인스턴스 초기화 블록(Instance Initialization Block)이고, 다른 하나는 정적 초기화 블록(Static Initialization Block)입니다. 처음 봤을 때 잘못본건가 했는데, 알고나니 알아둬야 할 것 같아서 기록합니다. 1. 인스턴스 초기화 블록(Instance Initialization Block) 인스턴스 초기화 블록은 클래스 안에 직접 작성되는 블록으로, 중괄호 {}로 감싸져 있습니다. 이 블록은 객체가 생성될 때마다 실행되며, 생성자보다 먼저 실행됩니다. 여러 개의 생성자가 있고 각 생성자에서 공통으로 수행해야 하는 코드를 ..
자바는 객체를 파일에 저장하거나 네트워크를 통해 전송하기 위해 문자열과 같은 연속적인 데이터(byte stream; 자바는 기본적으로 byte stream으로 입출력 관리)로 변환하는 과정을 처리합니다. 이를 직렬화라 합니다. 당연히 직렬화된 데이터(byte stream)를 다시 객체화하는 것을 역 직렬화라고 합니다. 직렬화가 되기 위한 조건은 다음과 같습니다. 클래스와 그 모든 멤버가 Serializable 인터페이스를 구현해야 함 직렬화에서 제외하려는 멤버는 transient를 선언해야 함 class Member implements Serializable /* 직렬화 필수 조건 */{ private Long id; private String name; private Integer age; privat..