February 14, 2025
Stateful과 Stateless TCP/UDP를 이해하기 위해서는 먼저 "상태 관리" 개념을 이해하는 것이 필요하다. 네트워크 통신에서 상태란, 특정 시점에서 시스템이 기억하고 있는 정보를 의미한다. 이를 기반으로 프로토콜을 분류하면, 상태를 기억하고있는 Stateful과 상태 유지 없이 독립적으로 처리되는 Stateless로 나뉜다. Stateful…
February 13, 2025
1. HTTP란? HTTP란 Hypertext Transfer Protocol의 약자로 웹에서 클라이언트와 서버 간의 통신을 위해 정해진 규칙, 통신 규약이다. 웹 페이지를 요청하거나, 서버로 데이터를 전송하는 등 인터넷 상의 거의 모든 작업이 HTTP를 통해 이루어진다. 크게 아래와 같은 특징이 있다. Connectionless: 요청과 응답이 완료되면…
February 12, 2025
1. Client Side (Front-end) 클라이언트는 사용자가 직접 상호작용하는 웹 브라우저나 모바일 앱 등을 의미한다. 사용자 요청사항에 따라 서버에 필요한 데이터를 요청하고 서버로부터 응답을 받아 화면에 보여준다. 클라이언트의 주요 역할 사용자 인터페이스(UI) 제공 : 사용자에게 보여지는 화면을 구성한다. (버튼, 메뉴 등) 데이터 유효성 검…
February 07, 2025
Thread Safety 란? Java 애플리케이션에서 여러 스레드가 동시에 실행될 때 공유 메모리에 접근하거나 데이터를 수정할 때 일관성을 유지하려면 스레드 안전(Thread Safety)을 보장해야 한다. 여기서 스레드 안전이란, 여러 스레드가 동시에 하나의 데이터를 사용할 때 데이터가 꼬이거나 잘못된 값이 나오지 않도록 안전하게 처리하는 것을 말한다…
February 05, 2025
1. 프로세스와 스레드 개념 프로세스란? 컴퓨터에서 실행 중인 프로그램을 말하며 실행 중인 프로그램에 대해 독립적으로 메모리와 자원을 할당한다. 각 프로세스는 독립된 메모리 영역(코드, 데이터, 스택 등)을 가진다 다른 프로세스와는 독립적으로 작동하며 서로 간섭하지 않는다 운영체제는 여러 프로세스를 동시에 실행하여 멀티태스킹 환경을 제공한다 프로세스를 알…
February 01, 2025
1. Java 동작 방식 Java는 "Write Once, Run Anywhere" 철학을 기반으로 한 번 작성된 코드를 다양한 플랫폼에서 실행할 수 있는 언어이다. JDK를 사용해 개발하고 JVM을 통해 실행된다. 이 과정에서 컴파일과 런타임을 거치며 JVM 내부의 다양한 메모리 영역과 실행 엔진이 관여한다. Java 구성 요소 JDK (Java Dev…
January 24, 2025
1. 메서드 오버로딩(Method Overloading) 메서드 오버로딩은 같은 이름의 메서드를 매개변수의 타입이나 개수를 다르게 하여 여러 개 정의하는 것이다. 이는 하나의 메서드 이름으로 다양한 작업을 처리할 수 있도록 한다. 사용 예시 2. 메서드 오버라이딩(Method Overriding) 메서드 오버라이딩은 자식 클래스에서 부모 클래스의 메서드…
January 23, 2025
1. 클래스란? 클래스는 객체 지향 프로그래밍(OOP)의 기본 구성 요소로 관련된 데이터와 메서드를 하나의 단위로 묶어주는 템플릿이다. 클래스를 사용하는 이유 코드의 재사용성 향상 유지보수의 용이성 코드의 구조화와 직관성 향상 데이터의 캡슐화 가능 2. 클래스의 기본 구조 필드(Fields): 클래스의 “상태”를 나타내는 변수들 생성자(Constructo…
January 22, 2025
1. 변수 변수는 데이터를 저장하기 위한 메모리 공간의 이름이다. 자바에서는 변수를 사용할 때 반드시 데이터 타입을 명시해야 하며 선언된 타입은 변경할 수 없다. 변수의 유형 변수의 유형이 나뉘는 이유는 효율적인 메모리 관리, 코드의 가독성과 유지보수성 향상, 그리고 성능 최적화를 위해서이다. 변수의 사용 범위를 명확히 구분함으로써 불필요한 메모리 낭비를…
January 21, 2025
0. 개발 방법론에 대해서 소프트웨어 개발 방법론은 소프트웨어를 개발하는 과정에서 사용되는 체계적인 접근 방식을 의미한다. 가장 대표적인 방법론에는 폭포수 모델과 애자일이 있다. 1. 폭포수 방법론 (Waterfall) 폭포수 모델은 전통적인 소프트웨어 개발 방법론으로 각 단계가 순차적으로 진행되며 이전 단계가 완료되어야 다음 단계를 진행할 수 있다. …