전체 글 210

프래피티 STUDY - 오버로딩과 오버라이딩, Primitive 타입과 Reference 타입

프래피티 STUDY 20230917 프래피티 STUDY TIL 오버로딩과 오버라이딩 Primitive 타입과 Reference 타입 오버로딩과 오버라이딩의 차이점 오버로딩 (Overloading) 정의: 오버로딩은 같은 이름의 함수나 메서드를 여러 번 정의하는 것입니다. 그러나 매개변수의 타입, 개수 또는 순서가 서로 달라야 합니다. 이를 통해 하나의 함수 또는 메서드 이름으로 여러 가지 동작을 수행할 수 있게 됩니다. 특징: 메서드 이름이 같아야 합니다. 매개변수의 타입, 개수 또는 순서가 달라야 합니다. 반환 타입은 오버로딩을 결정하는 데 영향을 주지 않습니다. 즉, 반환 타입만 다르고 매개변수가 같은 두 메서드는 오버로딩이 아닙니다. 오버로딩은 같은 클래스 내에서 발생합니다. 예시 (Java 언어 ..

쿠버네티스 (K8S)

쿠버네티스 (k8s) 쿠버네티스 (Kubernetes)란? 쿠버네티스는 컨테이너화된 애플리케이션을 자동화하고 관리하기 위한 오픈소스 플랫폼입니다. 구글에서 개발되었으며, 지금은 클라우드 네이티브 컴퓨팅 재단(CNCF)의 산하 프로젝트로 운영되고 있습니다. 쿠버네티스는 컨테이너 관리를 위한 자동화된 배포, 스케일링 및 관리 기능을 제공합니다. 쿠버네티스의 특징 가상화된 컨테이너를 자동으로 배치, 스케일링, 관리합니다. 서비스 디스커버리와 로드 밸런싱을 제공합니다. 스스로 상태를 모니터링하고, 필요시 자동으로 복구합니다. 빠른 배포와 롤백이 가능합니다. 다양한 클라우드 및 인프라 환경에서 사용이 가능합니다. 쿠버네티스의 구성요소 쿠버네티스는 여러 개의 마스터 노드와 워커 노드로 구성됩니다. 마스터 노드는 쿠..

JAVA에서 Thread 구현 방법

JAVA에서 Thread 구현 방법 JAVA에서 Thread 구현 방법 자바에서 스레드를 구현하고 실행하는 주요 방법은 크게 두 가지입니다: Thread 클래스 확장(Extending the Thread class): 자바에서 제공하는 Thread 클래스를 상속받아서 스레드를 구현하는 방법입니다. run 메서드를 오버라이드하여 스레드에서 실행될 로직을 정의합니다. class MyThread extends Thread { @Override public void run() { // 스레드에서 실행될 코드 } } // 스레드 사용 MyThread t = new MyThread(); t.start(); Runnable 인터페이스 구현(Implementing the Runnable interface): Runna..

[F-lab 페이백 모각코 66일차] Java 스레드와 Java 스레드 생명주기

Java 스레드와 Java 스레드 생명주기 Java 스레드와 Java 스레드 생명주기 1. Java 스레드란? 스레드(Thread)는 프로그램 내에서 실행되는 흐름의 단위입니다. 하나의 프로세스 안에서 여러 개의 스레드를 생성해 병렬로 작업을 수행할 수 있습니다. Java에서는 java.lang.Thread 클래스와 java.lang.Runnable 인터페이스를 통해 스레드를 생성하고 관리할 수 있습니다. 2. Java 스레드의 생명 주기 (Life Cycle) Java 스레드의 생명 주기는 다음과 같은 여러 단계로 나뉩니다: 새로 생성됨 (New): 스레드 객체가 생성되었지만 아직 start() 메서드가 호출되지 않은 상태입니다. 실행 가능 (Runnable): 스레드가 실행될 준비가 되어 있거나 현재..

[F-Lab 페이백 모각코 65일차] 객체 직렬화(Serialization)와 역직렬화(Deserialization)

객체 직렬화(Serialization)와 역직렬화(Deserialization) 객체 직렬화(Serialization)란? 객체 직렬화는 객체의 상태를 바이트 스트림으로 변환하는 프로세스를 의미합니다. 반대로, 이 바이트 스트림을 원래의 객체로 복구하는 것을 역직렬화(Deserialization)라고 합니다. 이 프로세스는 주로 네트워크 통신이나 파일 저장 등에서 객체의 상태를 유지하거나 전송할 필요가 있을 때 사용됩니다. 왜 객체 직렬화가 필요한가? 네트워크 전송: 객체를 다른 시스템에 전송하기 위해서는 객체를 바이트 스트림으로 변환해야 합니다. 직렬화를 통해 이를 수행하고, 받는 측에서는 역직렬화를 통해 객체로 복원합니다. 영속성: 객체의 상태를 파일이나 데이터베이스에 저장하고 나중에 복원해야 하는 ..

[F-Lab 페이백 모각코 64일차] 자바 컴파일 과정

자바 컴파일 과정 소스 작성 컴파일 문법검사 어휘 분석 토근 예약어 자바에서 미리 정의된 키워드들입니다 (예: class, if, while 등) 식별자 변수, 메소드, 클래스 등의 이름입니다. 리터럴 상수 값들입니다 (예: 정수, 실수, 문자열, 불린 값 등) 연산자 수학, 관계, 논리 등의 연산자입니다 (예: +, -, *, /, ==, !=, &&, || 등). 구분자 코드의 구조를 나타내는 문자들입니다 (예: 괄호, 중괄호, 세미콜론 등). 자바 코드 예제: java Copy code public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } } 이 코드에서 추출되는 ..

[F-Lab 페이백 모각코 63일차] 클래스 로더 (Class Loader)

Class Loader 계층 구조 부트스트랩 클래스 로더 (Bootstrap Class Loader) 확장 클래스 로더 (Extension Class Loader) 애플리케이션 클래스 로더 (Application Class Loader) 로딩 클래스 로더가 해당 클래스의 바이트코드를 찾아 메모리에 로드합니다. 이 과정에서 클래스 로더 계층 구조를 따르며, 로드된 클래스는 메소드 영역에 저장됩니다. 로딩순서 애플리케이션 클래스 로더 (Application Class Loader) 확장 클래스 로더 (Extension Class Loader →Platform ClassLoader(Java9부터)) 부트스트랩 클래스 로더 (Bootstrap Class Loader) 연결 검증 형식 검사: 클래스 파일의 매직 ..

[F-Lab 페이백 모각코 62일차] SQL join 사용예제 (inner, left, right, outer,full)

Join 별 개념 이미지 아래는 CHATGTP4로 생성한 답안입니다. Q.join 사용 예제에 대해 알려줘 left right outer inner full 경우를 알려줘 ㅎ A. 데이터베이스의 JOIN에 대한 사용 예제를 아래에 작성하였습니다. 이 예제에서는 두 개의 테이블 Employees와 Departments를 사용하며, 각각은 아래와 같은 데이터를 포함하고 있습니다. Employees 테이블: EmployeeID Name DepartmentID 1 Kim 1 2 Lee 2 3 Park NULL 4 Choi 4 Departments 테이블: DepartmentID DepartmentName 1 Sales 2 Marketing 3 HR 5 Engineering INNER JOIN:위의 쿼리는 각 직..

[F-Lab 페이백 모각코 61일차] 소프트웨어 테스팅

소프트웨어 테스팅: 단위/통합/시스템/인수/회귀 1. 단위 테스트 (Unit Testing) 정의: 개별 코드 조각, 함수 또는 메서드와 같은 프로그램의 가장 작은 단위를 테스트합니다. 목적: 코드의 각 부분이 올바르게 작동하는지 확인합니다. 도구: JUnit, NUnit, TestNG 등 2. 통합 테스트 (Integration Testing) 정의: 개별 단위들이 통합될 때 올바르게 작동하는지 확인하는 테스팅입니다. 목적: 모듈 간의 상호작용 문제를 찾아내기 위함입니다. 도구: JUnit, TestNG, Postman (API 테스팅) 등 3. 시스템 테스트 (System Testing) 정의: 완성된 소프트웨어 시스템의 전체 기능과 비기능을 테스트합니다. 목적: 소프트웨어가 전체적으로 요구 사항을 ..

[F-Lab 페이백 모각코 60일차] 토큰 기반 인증: JWT

JWT (JSON Web Token)란? JWT는 JSON Web Token의 약자로, 두 개체 사이에서 정보를 안전하게 전송하기 위한 컴팩트하고 독립적인 방법을 제공하는 표준입니다 (RFC 7519). 주로 인증 및 정보 교환에 사용됩니다. JWT의 구성 JWT는 세 부분으로 구성됩니다: Header (헤더): 토큰의 유형 (JWT) 및 사용된 해싱 알고리즘 (예: HMAC SHA256 또는 RSA)을 포함하는 메타데이터를 담고 있습니다. Payload (페이로드): 실제 토큰의 내용을 포함합니다. 이 부분에는 클레임(claim)이라는 정보 단위가 포함되며, 사용자의 정보나 권한과 같은 것들을 나타냅니다. Signature (서명): 서명은 헤더와 페이로드를 암호화하는데 사용됩니다. 이 서명을 통해 토..