더보기 본 게시글은 AWS의 기반으로 정의되는 여섯 가지 개념의 일반적인 설계 원칙과 모범 사례 및 지침에 대한 글로, AWS의 공식 자료를 참조하였습니다. AWS (Amazon Web Service)는 아마존닷컴의 클라우드 컴퓨팅 사업부이자, 다른 웹 사이트나 클라이언트 측 응용 프로그램에 대한 온라인 서비스를 제공하고 있습니다. AWS Well-Architected 프레임워크는 그런 AWS가 그동안의 경험을 토대로 고객 및 파트너가 아키텍처를 평가할 수 있는 일관적인 모범 사례 및 아키텍처를 제공하여 AWS 모범 사례에 얼마나 잘 맞는지 평가할 수 있도록 만든 일종의 평가표입니다. 기존 다섯 가지 기반인 운영 우수성, 보안, 안정성, 성능 효율성, 비용 최적화에 최근 추가된 지속 가능성이 포함되어 총..
문제 출처: https://www.acmicpc.net/problem/11653 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 1. 문제 문제 정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오. 입력 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. 출력 N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. N이 1인 경우 아무것도 출력하지 않는다. 2. 시도 가장 무난하게 for문을 2부터(1은 소인수분해 값이 될 수 없으므로) 입력인 N까지 반복하도록 코드를 작성했다. import java.io.*; public class Main { public static void main(Stri..
Java의 가장 큰 특징 중 하나는 어느 플랫폼, 어느 하드웨어, 어느 운영체제에 상관없이 컴파일된 코드(바이트코드)가 플랫폼 독립적이라는 점입니다. 이것이 가능한 것은 컴파일된 코드(바이트 코드)를 실행시켜주는 가상 컴퓨터 JVM(JAVA Virtual Machine) 덕분입니다. 1. 자바 실행 과정 JVM 동작 원리를 이해하기 위해선 먼저 Java 코드의 동작 원리를 파악해야 합니다. Java 코드 동작 원리 작성한 자바 소스 코드 파일(.java) 을 자바 컴파일러(javac)를 통해 바이트 코드(.class)로 컴파일합니다. 컴파일된 바이트 코드를 JVM의 클래스 로더에게 전달합니다. 클래스 로더는 동적 로딩을 통해 필요한 클래스들을 JVM의 메모리인 런타임 데이터 영역에 로딩합니다. 실행 엔진..
inode란? Linux는 파일 시스템 내부의 모든 파일과 디렉토리에 index node(inode)를 할당해야 하는데 실제 데이터를 저장하진 않습니다. 대신, 각 파일 데이터의 스토리지 블록들을 찾을 수 있는 메타 데이터를 저장합니다. inode에 담긴 메타데이터 유형 파일 타입 파일 권한 (permissions) 파일 크기 Owner ID Group ID 마지막 접근 시간 마지막 수정 시간 Soft / Hard 링크 접근 제어 목록 (Access Control List, ACLs) inode의 기본 구조 파일 시스템의 전체 정보를 가진 슈퍼 블럭 각 파일의 상세 정보를 가진 inode 블럭 실제 데이터를 담은 데이터 블럭 inode 블럭의 구조 1) Mode, Owner Info, Size, Time..
1. 리눅스 파티션 ◈ 디렉터리 저장 위치 마운트 포인트 정의 비고 / 모든 디렉터리의 최상위 디렉터리 루트 파티션 /root 시스템관리자 root의 사용자 홈 디렉터리 /boot 부트 이미지 저장 디렉터리 부팅 커널 저장소 /bin 실행 파일 디렉터리 (ex. cd, cat ...) 기본 명령어 모음 /sbin 시스템 관리용 명령어 모음 ex. ifconfig /etc 각종 시스템 설정 파일 저장 디렉터리 시스템 환경 설정 관련 파일 모음 /home 사용자 홈 저장 디렉터리 사용자 별 공간 /lib 라이브러리 저장 디렉터리 프로그램 라이브러리 저장 /usr 리눅스 응용프로그램 설치 디렉터리 응용 프로그램이 주로 저장됨 /usr/local 사용자 소스 컴파일하여 프로그램 설치 /var 메일 로그 관련, ..
더보기 본 게시글은 컨테이너의 특징을 좀 더 잘 이해하기 위해 주로 비교되는 VM과 나열하여 특징을 비교하기 위한 글로, AWS의 공식 자료를 참고했습니다. 컨테이너와 가상 머신의 차이점 컨테이너와 가상 머신은 애플리케이션을 IT 인프라 리소스로부터 독립적으로 만드는 기술입니다. 컨테이너는 애플리케이션의 코드, 라이브러리 및 기타 종속 구성 요소를 포함하는 소프트웨어 코드 패키지로, 컨테이너화를 통해 애플리케이션을 이동 가능하도록 만들어 모든 디바이스에서 동일한 코드를 실행할 수 있습니다. 가상 머신은 물리적 머신의 디지털 사본으로, 동일한 호스트 운영 체제에서 고유한 개별 운영 체제가 실행되는 여러 가상 머신을 보유할 수 있습니다. 또한 애플리케이션을 실행하는 데 필요한 모든 것이 포함된 가상 머신을 ..
더보기 본 게시글은 개발 직군 면접의 단골 주제인 컨테이너에 대한 답변을 준비하기 위한 글로 Red Hat의 공식 자료(링크)를 참고했습니다. 애플리케이션의 복잡성이 증가하고 애플리케이션 개발 가속화에 대한 요구가 점차 증가함에 따라 인프라, IT 팀, 프로세스에 대한 요구가 증가했습니다. 컨테이너는 위의 문제들을 완화하고 반복 작업 가속화를 지원합니다. 컨테이너란? 컨테이너는 실행에 필요한 모든 파일을 포함한 전체 실행(runtime) 환경에서 애플리케이션을 패키징하고 격리할 수 있는 기술입니다. 이를 통해 전체 기능을 유지하면서도 컨테이너화된 애플리케이션을 환경(개발, 테스트, 프로덕션 환경 등) 간에 쉽게 이동할 수 있습니다. 컨테이너는 IT 보안의 중요한 부분이기도 한데, 컨테이너 파이프라인에 보..