전체 글 (270) 썸네일형 리스트형 [주간일기챌린지] 25.3.30 ~ 25.4.6 가든파이브 탐방가볍다! 경량 텀블러 (보온보냉) 가볍다 망해버린 가든파이브 CGV 트런들 왔다 감 위례 풍국면 무난한 칼국수의 맛정말 무난하다 밥 먹고 아트박스 구경하다가 발견한 오르골인생이란 원래 자기 생각대로 되지 않는 법이란다 스타벅스 신메뉴 슈크림 말차 라떼딱히 맛있진 않았다 잠실에서 나눠준 라이언 풍선귀엽다 잠실 마노디 셰프 시그니처 딸기 피자피자보다는 빵 위에 얹어 먹는 샐러드 느낌이다맛있다 관자 알리오 올리오맛있긴 한데 양이 아쉽다 에버랜드로 떠납니다에버랜드 최고의 맛집이 어딘지 아십니까? 정답은 바로 CU에버랜드 갈 때 참고 바랍니다 맛집답게 폭넓은 선택지를 지원한다 점점 뭐가 많아지는 연세우유빵 나폴리맛피자 에디션도 있다 레드벨.. [Java] 스레드 동기화 동기화멀티 스레드에서 스레드끼리는 stack area를 제외하고 메모리를 공유한다.공유 자원에 접근하는 경우, 스레드끼리 race condition이 발생하여 정합성을 보장할 수 없다.이를 위해 상호 배제 (Mutual Exclusion: Mutex)를 사용하여 공유 자원이 존재하는 구역(Critical Section)에는 하나의 스레드만 접근 가능하도록 해야 한다. → 동기화해야 한다.Java에서는 synchronized 키워드를 사용하여 해결할 수 있다.synchronizedsynchronized를 사용하는 방식은 여러 가지가 있다.적당한 예시를 통해 이해하는 것이 더 나을 것 같아서 밑에서 설명하도록 하겠다.몬스터 잡기 예제개별 플레이어는 스레드로 존재한다.멀티 스레드를 사용하여 두 플레이어는 독립.. [Java] 스레드 스레드스레드 자체에 대한 개념은 이 글에서Java 스레드는 JVM 메모리 영역에서 Stack area만 고유하게 갖고 Heap, Method(static) area는 공유한다.Thread Class vs Runnable Interface스레드를 생성할 때는 Thread Class를 상속하거나 Runnable 인터페이스를 구현하여 생성할 수 있다.일반적으로 Runnable 인터페이스를 사용하는데, 그 이유는 다음과 같다.Thread Class는 스레드를 관리하는 클래스이다. 해당 클래스에 스레드 로직을 심어두는 행위는 단일 책임 원칙에 위배될 수 있다.Java에서는 다중 상속을 지원하지 않기 때문에 Thread Class를 상속받으면 다른 클래스로부터 상속을 받을 수 없다.Executors가 Runnabl.. [Java] JVM, JRE, JDK JVM자바를 실행시키는 가상 머신JVM만 설치되어 있다면 OS와 관계없이 Java 프로그램을 실행시킬 수 있다. (높은 이식성)JVM은 운영체제에 종속됨자바 컴파일러에 의해 바이트 코드(.class)가 컴파일되고, JVM이 이를 읽어서 바이너리 코드(기계어)로 변환한다. (느리다)JREJVM + 각종 라이브러리(Util, Lang, JDBC 등)가 포함된 자바 실행 환경JDK자바 개발 키트: 자바로 개발에 사용되는 SDK자바로 개발하기 위한 JRE, Development Tool(javac, javap, jar, java 등)이 들어있다.4가지의 버전 존재Java SE: 표준 버전Java EE: 기업용 버전. 서버 개발에 주로 사용Java ME: 임베디드 버전Java FX: GUI 버전Reference블로그 [운영체제] 프로그램, 프로세스, 스레드 프로그램컴퓨터에서 실행될 때 특정 작업을 수행하는 일련의 명령어들의 모음(집합)소스 코드를 포함하여 컴파일된 결과물하드 디스크에 있으면 프로그램프로세스컴퓨터에서 실행되고 있는 프로그램메인 메모리에 올라와서 CPU에 의해 처리되고 있으면 프로세스스레드프로세스 내에서 실행되는 흐름의 단위하나의 프로세스에는 최소 하나의 스레드가 포함됨프로세스 내부에서 stack 영역을 제외하고 나머지 메모리 영역을 공유함 (가볍다)TCB가 PCB보다 가벼워서 context-switching이 프로세스보다 빠름 (자세한 내용)멀티 프로세스부모 프로세스로부터 여러 개의 자식 프로세스가 생성된 것고유한 PID 부여독립적인 메모리 공간안전함 (인텔리제이가 먹통이 됐다고 VScode가 같이 먹통이 되지 않는 것처럼)Context Sw.. [Kubernetes] Service Service기본적인 내용은 여기에서Pod의 불안정한 생명 주기와 별개로 안정적인 서비스를 제공하도록 네트워크를 관리파드 디스커버리, 로드밸런싱 등 클러스터 위에서 추상적으로 네트워크를 관리하는 역할실제 네트워크 계층에서의 Pod의 네트워킹 및 관리는 Kube API Server의 명령을 받은 Kube Proxy가 전담한다. (IPTABLES 수정 등)실제 링크 계층에서의 Pod 간 데이터 통신은 veth, cni, eth를 통한다.Service 생성 예제# mynginx.yaml (deployment)apiVersion: apps/v1kind: Deploymentmetadata: labels: app: mynginx name: mynginxspec: # 파드 배포에 600초 이상 걸리면 Fa.. [Kubernetes] Controller 쿠버네티스 컨트롤러기본적인 개념은 여기에서ReplicaSet파드를 복제(replicate)하여 오토스케일링장애 대처 및 안정적 집합 유지AWS의 ASG와 같다.ReplicaSet 예제# replicaset.yaml# common APIapiVersion: apps/v1kind: ReplicaSetmetadata: name: replicasetspec: # 복제할 개수 replicas: 2 selector: # 해당 label을 기반으로 복제함 matchLabels: run: nginx-rs # 복제할 pod 정의 template: metadata: # label 지정. selector에서 참고함 labels: run: nginx-rs .. [Kubernetes] Pod Pod기본 설명은 해당 글에 정리파드에 명령을 전달할 때 컨테이너를 지정하지 않으면 default 컨테이너가 수신Pod StatusPending: Control Plane에 생성 명령 전달 완료ContainerCreating: 특정 노드에 스케줄링되어 컨테이너 생성 중Running: 실행 중Completed: 작업 완료 (배치 작업을 수행하는 Pod 한정)Error: Pod에 에러 발생CrashLoopBackOff: 지속적으로 에러가 발생하여 crash 반복Pod 실행 예제# nginx pod 실행kubectl run nginx --image nginx# 생성 확인kubectl get pod# 파드에 명령 전달kubectl exec nginx -- apt-get update# 컨테이너에 진입kubectl.. 이전 1 2 3 4 ··· 34 다음 목록 더보기