C 언어 포인터 연산과 문자열 처리 기법
문자열 암호화 및 복호화 구현
포인터를 활용하여 문자열을 순회하고 각 문자의 ASCII 값을 조작함으로써 간단한 시저 암호(Caesar Cipher) 방식의 암호화와 복호화를 구현할 수 있다. 이 방식은 알파벳 범위를 벗어나는 경우를 처리하기 위해 모듈러 연산 또는 조건문을 통해 순환 구조를 유지해야 한다.
#include <stdio.h>
#include <string.h>
#define BUF ...
8월 18일 16:29에 게시됨
C 언어 핵심 문법과 메모리 관리 완벽 가이드
1. 데이터 타입
중요 포인트
return 은 함수 실행을 종료하고, 결과 값을 EAX 레지스터에 저장한 후 반환합니다.
서로 다른 기능을 수행하는 코드 블록 사이에는 공백 줄을 넣어 가독성을 높입니다.
코드 내에서 주석 스타일은 일관되게 유지합니다.
/* */ 블록 주석은 중첩하여 사용할 수 없습니다.
long long 자료형은 C99 표준에서 도입되었습니다.
extern int data; ...
8월 12일 09:51에 게시됨
파이썬 메모리 관리와 가비지 컬렉션: 동작 원리 이해
파이썬 메모리 관리와 가비지 컬렉션: 동작 원리 이해
파이썬의 메모리 관리 및 가비지 컬렉션(Garbage Collection, GC) 메커니즘은 '참조 카운팅(Reference Counting)'을 기본으로 하며, '표시-삭제(Mark and Sweep)'와 '세대별 수집(Generational Collection)'이 보조적인 역할을 수행합니다. 여기에 '캐싱 메커니즘'이 더해져 효율성을 높입니다.
1. 참조 카운 ...
7월 25일 02:21에 게시됨
Java에서 배열 다루기: 개념부터 메모리 구조까지
자바에서 배열은 동일한 데이터 타입의 여러 값을 하나의 변수로 관리할 수 있게 해주는 핵심적인 자료구조입니다. 배열을 이해하면 데이터 처리 능력이 크게 향상되며, 컬렉션 프레임워크를 학습하는 데도 기반이 됩니다.
배열의 정의와 주요 특징
배열은 동일한 타입의 요소를 순차적으로 저장하는 고정 크기의 자료구조입니다. 다음 세 가지 특성을 가집니다:
...
7월 14일 04:31에 게시됨
C++ 분기문 및 연산자 활용과 2차원 배열 구현
분기문
void CheckCondition() {
bool flag = true;
std::cout
7월 11일 22:59에 게시됨
OpenMP 서버 개발 핵심 팁: Pawn 언어의 함정을 피하는 방법
OpenMP 서버 개발 핵심 팁: Pawn 언어의 함정을 피하는 방법
자신만의 온라인 세계를 구축하고, 플레이어들이 자신이 만든 규칙 아래 상호작용하는 모습을 지켜보는 것은 비할 데 없는 성취감을 줍니다. OpenMP의 등장은 《산드레스》 기반의 온라인 서버 개발에 새로운 활력을 불어넣었으며, 수많은 역사적인 문제들을 해결하고 더 현대적인 개발 경험을 제공합니다. 그 ...
7월 7일 04:01에 게시됨
Go 프로세스 메모리 사용량 분석 (1부)
왜 이 문제를 파헤쳐야 할까?
인프라 제공자로서 우리 서비스가 얼마나 많은 메모리를 사용하는지, 왜 그만큼 사용하는지 명확히 설명할 수 있어야 한다. 클라우드 개발자라면 이 정도 문제는 당연히 이해하고 있어야 한다.
§ 0x01 범위
실용성을 고려하여 Linux X86 플랫폼만 다룬다. 메모리 페이지 크기는 4KiB이다.
목표: 대규모 Go 프로세스의 메모리 소비 지점을 명 ...
7월 7일 03:10에 게시됨
C++에서의 포인터 이해
C++에서 포인터는 메모리 주소를 저장하는 변수로, 다른 변수나 객체에 간접적으로 접근하고 조작할 수 있습니다.
1. 포인터의 개념
포인터는 특정 데이터의 메모리 주소를 저장하는 변수입니다. 자신의 메모리 주소도 존재하지만, 저장된 값은 다른 변수의 주소입니다.
2. 포인터 선언 문법
타입 *변수명; // 예: int *ptr; double *p;
- 별표(*)의 위치는 ...
6월 30일 04:31에 게시됨
C 언어 문자열 및 메모리 조작 함수 직접 구현
1. 문자열 길이 계산 (my_strlen)
널 종료 문자('\0')를 제외한 문자열의 유효 길이 반환
#include <assert.h>
size_t my_strlen(const char* str_ptr) {
assert(str_ptr);
const char* ptr = str_ptr;
while (*ptr) ptr++;
return ptr - str_ptr;
}
2. 문자열 복사 (my_strcpy)
소스 문자열 전체를 대상 버퍼에 복사(널 문자 포함)
char* my_strc ...
6월 24일 22:54에 게시됨
JVM의 핵심 원리 이해: 코드 중심의 설명
Java의 플랫폼 독립성은 JVM의 강력한 설계에서 비롯됩니다. 이 문서에서는 클래스 로딩, 메모리 관리, GC 메커니즘 등 핵심 원리를 코드 예제와 함께 살펴봅니다.
클래스 로딩 메커니즘: 바이트코드에서 Class 객체까지
클래스 로딩 세 단계
로딩: 바이트코드를 찾아 Class 객체 생성
링킹: 검증 → 준비 → 해석
초기화: 정적 코드 블록 실행 및 변수 초기화
사용자 정의 ...
6월 23일 21:35에 게시됨