전체 글 111

[Java] JVM 메모리 구조 파헤치기

Java 개발자 필수 기초: JVM 메모리 구조 파헤치기 (스택, 힙, 메소드 영역)우리가 작성한 Java 코드는 어떻게 컴퓨터 메모리 위에서 살아 움직일까요? 왜 메소드가 끝나면 그 안의 변수는 사라지는데, new로 만든 객체는 계속 남아있을까요? 이 모든 질문의 해답은 JVM(자바 가상 머신)의 메모리 구조에 있습니다.JVM이 메모리를 어떻게 체계적으로 나누어 사용하는지 이해하는 것은 메모리 누수를 방지하고, 성능을 최적화하며, 버그를 잡는 데 매우 중요한 기초 체력입니다.오늘은 JVM 메모리의 핵심 영역인 **스택(Stack), 힙(Heap), 메소드 영역(Method Area)**을 알아보고, 실제 코드가 각 영역에 어떻게 할당되는지 그 과정을 따라가 보겠습니다.JVM 메모리의 3가지 핵심 영역J..

MYSQL 트랜잭션의 4대 원칙

ACID 원칙은 데이터베이스 시스템에서 트랜잭션의 신뢰성을 보장하기 위해 설계된 네 가지 핵심 특성을 의미한다.1. Atomicity (원자성)원자성은 트랜잭션의 모든 연산이 모두 성공적으로 완료되거나 전혀 완료되지 않도록 보장하는 특성이다.개념: 트랜잭션의 모든 작업은 하나의 단일 단위로 처리된다. 트랜잭션이 중간에 실패하면 모든 작업은 취소되고, 데이터베이스는 트랜잭션이 시작되기 전의 상태로 되돌아간다.예시: 은행에서 계좌 이체를 하는 경우, 돈이 한 계좌에서 인출되고 다른 계좌에 입금된다. 트랜잭션 도중 실패가 발생하면 인출과 입금 모두 이루어지지 않도록 보장한다.2. Consistency (일관성)일관성은 트랜잭션이 성공적으로 완료되면 데이터베이스가 일관된 상태를 유지하도록 보장하는 특성이다.개념..

MYSQL 엔진의 데이터 트랜잭션

트랜잭션은 기본적으로 데이터베이스의 개념임. 데이터베이스 트랜잭션은 일련의 데이터베이스 작업이 완전하게 실행되거나 전혀 실행되지 않도록 보장함으로써 데이터의 일관성과 무결성을 유지하는데 사용됨. 대부분의 현대 SQL 데이터베이스 엔진은 트랜잭션을 지원함. MySQL, PostgreSQL, Oracle, SQL Server 등은 모두 트랜잭션을 지원하며, 각 데이터베이스 시스템은 트랜잭션 관리 및 구현에 대한 자체적인 기능과 최적화된 메커니즘을 제공함.MySQL에서의 트랜잭션MySQL은 트랜잭션을 지원하는 다양한 스토리지 엔진을 제공하며, 대표적으로 InnoDB 엔진이 트랜잭션을 지원함. InnoDB는 MySQL에서 가장 널리 사용되는 트랜잭션 지원 스토리지 엔진임.트랜잭션 명령어트랜잭션 시작: START..

Django vs Flask vs Spring

Django vs Flask vs Spring개요Django, Flask, Spring은 모두 웹 애플리케이션 개발을 위한 프레임워크임. Django와 Flask는 Python 기반이며, Spring은 Java 기반임. 각 프레임워크는 고유의 철학과 장단점을 가지고 있어, 특정 요구사항과 프로젝트 특성에 따라 적합한 프레임워크가 다를 수 있음.Django장점배터리 포함 철학: 많은 기능을 기본적으로 제공함. (예: 인증 시스템, 관리자 인터페이스, 폼 처리, ORM, 세션 관리 등)빠른 개발: 내장된 기능 덕분에 빠르게 웹 애플리케이션을 개발할 수 있음.보안: CSRF 보호, XSS 방지, SQL 인젝션 방지 등 다양한 보안 기능을 기본 제공함.ORM: Django ORM을 사용하여 데이터베이스 작업을 ..

ubuntu ssh key-pair 생성 및 적용

키 페어 생성:ssh-keygen -t rsa -b 2048 -m PEM -f ~/.ssh/your_key_name.pem여기서 your_key_name을 원하는 키 파일 이름으로 바꾸면 됨.키 페어 생성 과정:명령어를 실행하면 키 생성 위치를 묻는 메시지가 나옴. 기본 위치를 그대로 사용하려면 Enter 키를 누르면 됨.Passphrase를 설정할 것인지 묻는 메시지가 나옴. 원한다면 입력하고, 설정하지 않으려면 Enter 키를 누르면 됨.권한 설정:생성된 .pem 파일의 권한을 설정해야 함:chmod 400 ~/.ssh/your_key_name.pem공개 키 추출:PEM 형식의 개인 키에서 공개 키를 추출하려면 다음 명령어를 사용:ssh-keygen -y -f ~/.ssh/your_key_name.p..

인프라 2024.07.23

[크래프톤 정글 ] 파이썬 기초 & 웹 스크래핑 & mongodb

파이썬 기초 및 응용 요점 정리수업 목표파이썬 기초 문법을 이해한다.파이썬으로 알고리즘 문제를 풀 수 있다.목차Python 기초파이썬 응용문제파이썬 패키지웹스크래핑MongoDB1. Python 기초파이썬이란네덜란드의 프로그래머 Guido van Rossum이 개발읽기 쉬운 코드에 중점을 둠문법이 쉬워 초보자가 배우기 좋은 언어파이썬 설치파이썬 설치 페이지VSCode로 파이썬 파일 실행하기프로젝트 폴더 생성 및 VSCode 실행새 파일 생성 (예: hello.py)파일에 코드 작성 및 저장 print('Hello, jungle')플레이 버튼을 눌러 실행파이썬 기초 문법변수 선언파이썬은 let이나 const 없이 변수 선언 가능 a = 3 print(a)자료형과 기본 연산숫자형 a = 7 b = 2 ..

크래프톤 정글 2024.07.11

[크래프톤 정글 ] html & css 사용하기

[수업 목표]서버와 클라이언트의 역할에 대해 이해한다.HTML, CSS의 역할과 사용 방법을 안다.[목차]01. 웹 기초1. 서버/클라이언트/웹의 동작 개념웹페이지가 서버에서 클라이언트로 어떻게 전달되는지 이해한다.웹페이지의 HTML을 수정하여 동작 원리를 탐구해본다.예시: 네이버 메인 페이지의 "메일" 텍스트를 수정해보기2. 웹의 동작 개념 (HTML을 받는 경우)웹페이지는 서버에서 미리 준비된 HTML을 클라이언트로 보내 렌더링한다.새로고침 시 서버에 새로운 요청을 보내 원래 HTML을 다시 받아온다.3. 웹의 동작 개념 (데이터만 받는 경우)일부 웹페이지는 HTML 대신 데이터(JSON)만 내려받아 동적으로 페이지를 업데이트한다.모든 챕터가 끝나면 만들게 되는 것 - 구경하기나홀로링크 메모장: 링크..

크래프톤 정글 2024.07.11

[크래프톤 정글 ] chapter 2 - javascript & jquery

01. JavaScript 소개자바스크립트란?JavaScript (JS): HTML 상에서 쓸 수 있는 프로그래밍 언어.브라우저에서 JavaScript만 알아듣는 이유: 역사적 이유와 이미 정립된 표준 때문. 모든 브라우저가 기본적으로 JavaScript를 지원하도록 설계됨.Java와 JavaScript 차이: 전혀 다른 언어.자바스크립트 맛보기버튼 클릭 시 경고창 기능: 나홀로 링크 메모장! 중요한 링크를 저장해두고, 나중에 볼 수 있는 공간입니다 포스팅박스 열기 ..

크래프톤 정글 2024.07.11

프로젝트 개발 일지 작성법

프로젝트 진행 중주간 리포트 작성:매주 프로젝트 진행 상황, 문제점, 해결 방법 등을 기록.자신이 학습한 내용이나 기술을 포함시켜 이해도를 높임.버전 관리 시스템 사용:Git과 같은 버전 관리 시스템을 활용하여 코드 변경 사항을 기록.커밋 메시지를 통해 변경 이유와 내용을 명확히 작성.코드 리뷰:팀원들과 코드 리뷰를 통해 피드백을 주고받으며 개선.리뷰 결과를 기록하고 이를 학습 자료로 활용.문서화:코드 주석, README 파일, API 문서 등 프로젝트 관련 문서를 작성.프로젝트 구조, 주요 기능, 사용 방법 등을 문서화하여 체계적으로 정리.프로젝트 종료 후프로젝트 회고:프로젝트 종료 후 회고 미팅을 통해 팀원들과 함께 프로젝트의 성과와 문제점을 논의.회고 내용을 문서로 정리하여 다음 프로젝트에 참고.학..

[크래프톤 정글]알고리즘의 종류

알고리즘 종류알고리즘이란?프로그래밍에서 알고리즘은 문제를 해결하기 위한 단계적인 절차나 방법을 의미함. 데이터 처리와 문제 해결에 사용됨. 알고리즘의 주요 특성:정확성(Correctness): 정확한 출력 생성효율성(Efficiency): 자원 효율적 사용간결성(Simplicity): 이해하기 쉬운 형태일반성(Generality): 다양한 입력 데이터에 작동종류정렬 알고리즘데이터를 정렬하는 데 사용됨. 예: 버블 정렬, 퀵 정렬.탐색 알고리즘데이터에서 특정 값을 검색함. 예: 선형 검색, 이진 검색.그래프 알고리즘그래프 구조 분석과 최단 경로, 플로우 네트워크 계산에 사용됨. 예: 다익스트라 알고리즘, 프림 알고리즘.문자열 알고리즘문자열 처리와 관련된 알고리즘. 예: KMP 알고리즘, 보이어-무어 알고리..