전체 글 83

예외처리

1. 예외(Exception)란?예외는 프로그램 실행 중 발생하는 예기치 못한 오류 상황을 말합니다. 자바에서 예외는 Throwable 클래스의 하위 클래스로 관리되며, 크게 두 가지로 나뉩니다:Checked Exception: 컴파일 시점에 확인되는 예외로, 반드시 예외 처리를 해주어야 합니다. 예를 들어 파일을 읽거나 쓸 때 발생하는 IOException 등이 해당됩니다.Unchecked Exception: 실행 시점에서 발생하는 예외로, 주로 프로그래머의 실수로 발생하는 예외입니다. 예를 들어 배열의 인덱스가 범위를 벗어났을 때 발생하는 ArrayIndexOutOfBoundsException 등이 있습니다. 이는 명시적인 예외 처리를 강제하지는 않습니다.2. 예외 처리의 구조자바에서 예외 처리는 다..

CS 지식 2024.09.08

동기 ,비동기 처리

1. 동기(Synchronous) 처리란?1.1 동기 처리의 개념동기 처리에서 작업들은 순차적으로 실행됩니다. 하나의 작업이 끝나기 전까지 다음 작업은 시작되지 않습니다. 프로그램은 한 작업이 완료될 때까지 기다린 후에야 다음 작업으로 넘어가므로, 코드의 실행 순서가 예측 가능하고 직관적입니다.1.2 동기 처리의 특징순차적 실행: 모든 작업이 순서대로 처리되므로, 코드의 흐름이 명확하고 예측 가능합니다.간단한 디버깅: 모든 작업이 순서대로 이루어지기 때문에 디버깅이 비교적 쉽습니다.잠재적 성능 문제: 시간이 오래 걸리는 작업이 있다면, 그 작업이 완료될 때까지 다른 작업들이 모두 대기해야 하므로 성능에 영향을 줄 수 있습니다.1.3 동기 처리 예제public class SynchronousExample ..

CS 지식 2024.09.02

SOLID 원칙

1. 단일 책임 원칙 (Single Responsibility Principle, SRP)1.1 SRP 개념단일 책임 원칙은 클래스는 단 하나의 책임만 가져야 한다는 원칙입니다. 즉, 클래스는 하나의 기능만 담당해야 하며, 그 기능을 변경해야 할 이유도 하나뿐이어야 합니다. 이 원칙을 따르면 코드의 가독성이 향상되고, 유지보수가 쉬워집니다.1.2 잘못된 예제public class User { private String name; private String email; // 사용자 정보 저장 public void saveUser() { // 사용자 정보를 데이터베이스에 저장하는 코드 } // 이메일 전송 public void sendEmail(String ..

CS 지식 2024.09.01

추상 클래스와 인터페이스

추상 클래스(Abstract Class)란 무엇인가?추상 클래스(Abstract Class)는 객체지향 프로그래밍(OOP)에서 공통된 특성을 가지는 클래스들의 기본 구조를 정의하는 데 사용되는 중요한 개념입니다. 추상 클래스는 클래스 설계 시 다형성과 재사용성을 높여주며, 이를 활용하여 공통된 동작을 여러 하위 클래스에서 일관되게 구현할 수 있습니다. 1. 추상 클래스란?추상 클래스는 하나 이상의 추상 메서드를 포함할 수 있는 클래스입니다. 추상 메서드는 메서드의 시그니처(이름, 반환 타입, 매개변수 목록)만 정의하고, 실제 구현은 하위 클래스에서 제공됩니다. 추상 클래스는 그 자체로는 인스턴스화할 수 없으며, 반드시 이를 상속받은 구체적인 하위 클래스에서 인스턴스화가 가능합니다.2. 추상 클래스의 특징..

CS 지식 2024.08.25

오버로딩과 오버라이딩

1. 오버로딩 (Overloading)오버로딩은 같은 이름의 메서드를 여러 개 정의할 수 있게 하는 기능입니다. 오버로딩된 메서드는 메서드의 이름은 같지만, 매개변수의 유형이나 개수, 순서가 달라야 합니다. 이를 통해 같은 기능을 수행하지만 입력 값이 다를 때, 각각의 상황에 맞는 메서드를 선택적으로 호출할 수 있습니다.오버로딩의 특징:메서드 이름: 동일한 이름을 사용합니다.매개변수: 매개변수의 타입, 개수, 순서가 달라야 합니다.반환 타입: 반환 타입은 오버로딩과 관련이 없습니다. 즉, 반환 타입만 다르고 매개변수가 같다면 오버로딩이 성립하지 않습니다.컴파일 시에 결정: 어떤 메서드를 호출할지 컴파일 시에 결정됩니다.오버로딩 예제:class Calculator { // 정수 두 개를 더하는 메서드..

CS 지식 2024.08.15

MVC 패턴

MVC 패턴이란?MVC(Model-View-Controller) 패턴은 소프트웨어 디자인 패턴 중 하나로, 애플리케이션을 모델(Model), 뷰(View), 컨트롤러(Controller)라는 세 가지 주요 컴포넌트로 분리하여 각각의 책임을 분리하는 구조를 의미합니다. 이 패턴은 특히 사용자 인터페이스를 가진 애플리케이션에서 매우 유용하며, 자바를 포함한 다양한 프로그래밍 언어에서 널리 사용됩니다.1. Model (모델)모델은 애플리케이션의 데이터와 비즈니스 로직을 담당합니다. 모델은 애플리케이션의 핵심 기능을 수행하며, 데이터베이스와의 상호작용, 데이터를 저장 및 수정, 비즈니스 규칙을 적용하는 작업을 처리합니다.모델의 주요 역할은 다음과 같습니다:애플리케이션에서 사용하는 데이터를 나타냅니다.데이터에 대..

CS 지식 2024.08.11

객체 지향

객체 지향 프로그래밍(OOP)에 대한 이해객체 지향 프로그래밍(OOP, Object-Oriented Programming)은 소프트웨어 설계 및 개발에서 가장 널리 사용되는 패러다임 중 하나입니다. OOP는 프로그램을 객체라는 단위로 나누어 처리하며, 각 객체는 데이터와 기능을 함께 가지고 있습니다. 이를 통해 코드의 재사용성, 확장성, 유지보수성을 높일 수 있습니다. 객체 지향 프로그래밍의 주요 개념OOP는 네 가지 주요 개념을 기반으로 합니다: 캡슐화(Encapsulation), 상속(Inheritance), 다형성(Polymorphism), 추상화(Abstraction).1. 캡슐화 (Encapsulation)캡슐화는 객체의 데이터를 보호하고, 데이터와 그 데이터를 처리하는 메서드를 하나의 단위로 ..

CS 지식 2024.08.01

HTTP 메서드 와 상태 코드

HTTP란 HyperText Transfer Protocol 의 약자로 웹에서 클라이언트와 서버 간의 데이터를 주고받기위한 프로토콜로 HTTP메서드는 이러한 통신해서 수행할 동작을 정의1. GETGET 메서드는 서버에서 데이터를 요청할 때 사용됩니다. 클라이언트가 서버에 특정 리소스를 요청하면 서버는 해당 리소스를 응답으로 반환합니다. 중요한 점은 GET 요청은 서버의 상태나 데이터를 변경하지 않는다는 것입니다. 주로 데이터를 조회하거나 리소스를 가져올 때 사용됩니다.GET 메서드는 브라우저 주소창에 URL을 입력하거나 링크를 클릭할 때 자동으로 사용됩니다. 이 메서드는 캐싱이 가능하며, 브라우저 히스토리에 남고, 즐겨찾기에도 추가될 수 있습니다. 따라서 주로 읽기 전용 요청에 적합합니다.2. POSTP..

CS 지식 2024.07.24

세션 ,토큰 , 쿠키

세션(Session)정의: 세션은 서버 측에서 사용자의 상태를 유지하기 위한 방법으로 사용자가 웹 사이트에 접속할 때 생성되어 서버에 저장되고, 사용자의 요청마다 세션 정보를 이용해 상태를 관리합니다. 동작 방식:셰션 생성: 사용자가 웹사이트에 처음 접속하면 서버는 고유한 셰션 ID를 생성하여 사용자의 브라우저에 저장합니다. 이 셰션 ID는 쿠키(cookie)를 통해 브라우저에 저장되거나 URL 매개변수로 전달됩니다.셰션 저장: 서버는 사용자의 상태 정보를 셰션 저장소에 저장합니다. 이 저장소는 메모리, 데이터베이스, 파일 시스템 등 다양한 형태로 구현될 수 있습니다.셰션 유지: 사용자가 웹사이트를 탐색하는 동안 각 요청에는 셰션 ID가 포함되어 서버로 전송됩니다. 서버는 이 ID를 사용하여 해당 사용자..

CS 지식 2024.07.15

OAuth

OAuth란  OAuth(Open Authorization): 외부 애플리케이션이 사용자 비밀번호를 노출하지 않고도 사용자 정보를 접근할 수 있도록 하는 인증 표준OAuth의 주요 목적안정성: 사용자 비밀번호를 외부 에플리케이션에 제공하지 않고 사용자 데이터에 접근할수 있도록 설정권한 분리: 애플리케이션이 특정한 데이터나 기능에 대한 접근만 허용유연성: 다양한 서비스와 쉽게 통합OAuth의 구성요소자원 소유자(Resource Owner): 보호된 자원에 대한 접근 권한을 가진 사용자로 자신의 인증 정보를 사용하여 클라이언트 애플리케이션이 자원 서버에 접근할 수 있도록 허용클라이언트(Client): 자원 소유자를 대신항 자원에 접근하는 애플리케이션으로 자원 소유자로부터 권한을 부여받아 자원서버에 접근자원 ..

CS 지식 2024.07.10