시작하며오늘부터 MySQL에 대한 다양한 포스트를 게시하려 한다. 필자는 여러 상황들에 대해 직접 실습을 하면서 포스팅할 계획이므로 MySQL을 먼저 띄워놓으려고 한다. 즉, 이 포스팅은 포스팅을 위한 개인 기록 정도라고 봐주면 좋겠다. Why Docker?사실 Docker로 띄우지 않아도 직접 개발 환경이나 서버에 MySQL 제품을 설치하여도 되는데, 필자는 Docker로 띄우는 것을 선호한다. Docker만 설치되어 있다면 컨테이너를 내렸다 올렸다 하는 것이 매우 간편하기 때문. 그래서 나는 이 아티클의 제목처럼 Docker로 MySQL을 띄울 것이다. 이 포스팅은 Docker는 이미 설치되어 있다고 가정하고 글을 써내려가려 한다. 도커를 설치하는 방법은 차후에 다른 포스트에서 소개할 예정이니, 일단..
이전까지의 스택 프레임은 Main 스택 프레임에서 벌어지는 일에 대해서 설명했으나, 오늘 설명할 스택 프레임은 Main 스택 프레임 밖에서 생성되는 스택 프레임을 설명할 것이다. 일단 다음 코드부터 읽어보자 public class Main { public static void main(String[] args) { int number = 5; number = square(number); System.out.println(number); } public static int square(int n) { int result = n * n; return result; } } n의 제곱값을 반환하는 함수 square를 선언했다. 메서드를 호출하면 T메모리에는 Main 스택 프레임 바깥에 호출한 메서드의 스택 프레..
기초가 중요하지 않을까요? 스프링은 다음과 같은 기술들의 집약이다. 서비스 지향 구조(Service Oriented Architecture) 컴포넌트 기반 개발(Component Based Development) 객체 지향 프로그래밍(Object Oriented Programming) 절자 지향 프로그래밍(Procedure Programming) 기계어/어셈블리어 스프링을 이해하려면 스프링 그 이전의 기술들이 뭔지는 알아야 할 것이다. 이번 챕터에서는 스프링 이전의 기술들을 훑어보게 될 것이다. 기계어 컴퓨터는 사실 0과 1밖에 다루지 못한다. 초기의 컴퓨터가 이해할 수 있는 언어는 기계어 뿐이었다. 기계어는 동작하는 컴퓨터에 따라 형식이 달라서 동작하는 컴퓨터에 맞는 형식으로 작성해야하고 인간이 작성하..
이 글은 파이썬 중급자를 위한 글입니다. 오늘의 의문 왜 파이썬 클래스의 __init__ 메서드는 반환이 없을까? class MyClass: def __init__(self, name): print("Does this function really create an instance?") self.name = name my_instance = MyClass("init_mumu") print(my_instance.name) 아무리 생각해도 이상하다. 위의 코드는 분명 my_instance 변수에 인스턴스를 대입한다. 그런데, __init__ 메서드는 반환값이 없으니 말이다. 코드 실행 흐름 분석 그래서 대입 시점을 찾기 위해 빨간콩을 코드에 죄다 찍고 Line by Line으로 코드를 실행해보았다. MyCla..
4.1 쿠버네티스 클러스터의 전체 구조 쿠버네티스 클러스터는 크게 두 종류의 서버로 구성합니다. 클러스터를 관리하는 Master와 실제 컨테이너를 실행시키는 Worker입니다. Master에는 etcd, kube-apiserver, kube-scheduler, kube-controller-manager, kubelet, kube-proxy, docker 등의 컴포넌트가 실행됩니다. 마스터는 보통 고가용성을 만족하고자 서버 3대 정도를 구성해서 운영합니다. 실제 리더 마스터는 1대고 나머지 2대는 대기를 합니다. 워커 노드에는 쿠블렛, 쿠베프록시, 도커 등의 컴포넌트가 실행됩니다. 실제 사용하는 컨테이너 대부분은 워커 노드에서 실행됩니다. 4.2 쿠버네티스 주요 컴포넌트 4.2.1 마스터용 컴포넌트 etc..