[Network] HTTP vs HTTPS
·
Network
1. HTTP와 HTTPS란? HTTP(Hypertext Transfer Protocol)와 HTTPS(Hypertext Transfer Protocol Secure)는 웹에서 데이터를 전송하기 위해 사용되는 프로토콜입니다. 여기서 프로토콜이란 컴퓨터나 네트워크 장비가 서로 통신하기 위한 규약을 말합니다. 2. HTTP의 특징 https://achieve-dev.tistory.com/34 [Network] HTTP(Hypertext Transfer Protocol) 1. HTTP의 시작 1990년도 Tim Berners-Lee와 그의 동료들이 웹을 세상에 내놨을때 웹은 크게 4가지 요소였습니다. HTML : 웹페이지를 만드는 컴퓨터 언어 URL, URl : 원하는 웹 페이지에 방문할 수 있게 해주 ach..
[Network] HTTP(Hypertext Transfer Protocol)의 시작
·
Network
1. HTTP의 시작 1990년도 Tim Berners-Lee와 그의 동료들이 웹을 세상에 내놨을때 웹은 크게 4가지 요소였습니다. HTML : 웹페이지를 만드는 컴퓨터 언어 URL, URl : 원하는 웹 페이지에 방문할 수 있게 해주는 주소 web browser, web server : 웹 페이지를 주고받는 소프트웨어 HTTP : 웹 브라우저와 웹 서버가 통신할 때 사용하는 통신규칙 이것은 웹을 구성하는 가장 중요한 요소들이고 웹이 아무리 복잡해도 이 네 가지를 한 발자국도 벗어날 수 없습니다. 처음 세상에 등장한 HTTP는 단순한 통신 규칙이었습니다. 하지만 웹이 성장하면서 성능, 보안, 안정성을 확보하기 힘들어졌습니다. 오죽하면 당시 사람들은 World Wide Web을 World Wide wait..
[Spring] 의존성 주입(Dependency Injection, DI) 이해하기
·
Spring/Spring
1. 의존성이란? DI에서 의존성이란 한 객체가 다른 객체의 기능에 의존하는 관계를 의미합니다. 예를 들어, 자동차(Car) 객체가 엔진(Engine) 객체의 기능을 사용한다면, 자동차 객체는 엔진 객체에 의존하고 있다고 할 수 있습니다. 2. 의존성 주입(Dependency Injection, DI)이란? 의존성 주입은 한 객체가 다른 객체에 의존할 때, 이 의존성을 외부에서 주입하는 기법ㄱ을 말합니다. 이 기법을 사용하면 객체는 필요한 의존성을 직접 관리하지 않고, 외부에서 주입받아 사용할 수 있습니다. 이로 인해 객체는 의존성에 대해 더 이상 알 필요가 없습니다. 3. DI의 장점 DI의 가장 큰 장점은 코드의 결합도를 낮추고, 유연성을 높인다는 것입니다. 객체가 직접 의존성을 생성하거나 찾지 않기..
[Spring] 싱글톤 패턴(Singleton pattern)
·
Spring/Spring
1. 싱글톤 패턴(Singleton pattern) 싱글톤 패턴은 디자인 패턴의 한 종류로, 단 하나의 유일한 객체를 만들기 위한 코드 패턴이다. 자주 사용되는 객체나, 메모리를 많이 차지하는 객체 등을 싱글톤으로 만들면, 자원을 효율적으로 사용할 수 있습니다. 보통 싱글톤 패턴이 적용된 객체가 필요한 경우는 그 객체가 리소스를 많이 차지하는 역할을 하는 무거운 클래스일때 적합하다. ● 일반적으로 클래스는 필요에 따라 여러 개의 인스턴스를 생성할 수 있습니다. 이러한 인스턴스들은 각각 독립된 상태와 행동을 가질 수 있습니다. ● 싱글톤 패턴을 사용하면, 해당 클래스의 인스턴스는 오직 하나만 생성됩니다. 이 하나의 인스턴스는 전역적으로 접근 가능하며, 여러 모듈들이 이를 공유하게 됩니다. 이렇게 하면 여러..
[OOP] C3. 자바와 객체지향
·
Java/OOP
1. 클래스(개념), 객체(실체) 클래스는 분류에 대한 개념이지 실체가 아니다. 하지만 객체는 실체다. 클래스는 사람이고, 객체는 손흥민이다. 클래스는 펭귄이고, 객체는 뽀로로이다. 클래스와 객체를 구분하는 방법 중 하나는 나이를 물어보는 것이다. ● 사람의 나이는 몇 살인가? VS 손흥민의 나이는 몇 살인가? ● 펭귄의 나이는 몇 살인가? VS 뽀로로의 나이는 몇 살인가? 클래스를 실체가 아닌 개념으로써 받아들여야 자바 프로그래밍에서 혼동하지 않게 된다!! 2. 추상화 : 모델링 객체 지향의 추상화는 모델링을 의미합니다. 추상화는 구체적인 개념이나 객체를 분해하여 그 중에서 관심 있는 특성만을 가지고 재조합하는 과정을 말합니다. 구현하고자 하는 것을 하나의 클래스로 모델링, 추상화하게 되는데 여기서 클..
[Spring] 한글 인코딩 에러 해결(한글 ➡️ ??)
·
Spring/Spring
1. 문제 정의 Spring Boot로 개발한 웹 애플리케이션에서 한글이 '?'로 표시되는 문제를 겪을 수 있습니다. 이는 대부분 인코딩 설정 문제 때문입니다.인코딩: 데이터를 특정한 규칙에 따라 다른 형태나 형식으로 변환하는 과정을 의미합니다. 특히 웹 애플리케이션에서의 인코딩은 주로 문자 데이터를 어떤 문자 체계(예: UTF-8, EUC-KR 등)를 사용하여 바이트 코드로 변환할 것인지를 결정하는 방식을 말합니다.2. 해결 방법이 문제를 해결하는 가장 간단한 방법은 application.properties 또는 application.yml파일에server.servlet.encoding.force-response=true 설정을 추가하는 것입니다.2.1) application.properties 파일인..
[OOP] ==과 equals()의 차이점
·
Java/OOP
1. 자바에서 ==와 equals()의 차이점 자바에서 매우 중요한 개념인 == 연산자와 equals() 메서드의 차이점에 대해 알아보려고 합니다. 이 두 가지는 모두 객체를 비교하는 데 사용되지만, 그 방식과 결과는 상황에 따라 매우 다를 수 있습니다. 그러니 자세히 살펴보도록 하겠습니다. 2. == 연산자 2.1) 기본 데이터 타입(리터널 선언) - 값 자바에서 == 연산자는 주로 기본 데이터 타입의 값을 비교할 때 사용됩니다. byte, short, int, long, float, double, char, boolea 등의 값이 같은지 비교할 때는 == 연산자를 사용하면 됩니다!! // 리터널로 선언 int a = 2024; int b = 2024; System.out.println(a == b);..
[DB] 데이터베이스 정규화: 중복을 최소화하고 일관성을 유지하는 방법
·
Data Base/DB 모델링
정규화(Normalization)란? 정규화는 데이터베이스의 테이블을 적절하게 분해하여 중복을 제거하고, 관련 데이터를 논리적으로 그룹화하는 과정입니다. 이를 통해 데이터의 일관성과 무결성을 유지하면서 데이터베이스의 성능과 유지보수성을 향상시킬 수 있습니다. 정규화는 여러 단계로 나누어지며, 각 단계는 테이블의 구조를 최적화하는 데 도움을 줍니다. 주요한 정규화 수준은 다음과 같습니다. 1차 정규화(1NF) 1차 정규화는 테이블의 컬럼이 원자값(Atomic Value)을 갖도록 하는 것을 의미합니다. 즉, 테이블의 컬럼에는 중복되는 값이 없어야 합니다. 중복되는 데이터는 새로운 테이블로 분리하여 관계를 맺습니다. 2차 정규화(2NF) 2차 정규화는 1차 정규화를 만족하면서, 부분 함수적 종속성(Parti..
[OOP] 업캐스팅(Upcasting), 다운캐스팅(Downcasting)
·
Java/OOP
Parent p = new Child(); //업캐스팅 -p는 Parent형. Child c = (Child) p; //다운캐스팅! -p는 Child형. 업캐스팅(upcasting)과 다운캐스팅(downcasting)은 객체 지향 프로그래밍에서 클래스의 상속과 관련된 개념이다. 말 그대로 업캐스팅은 하위 클래스에서 상위 클래스로 형 변환하는 것을 의미한다 다운캐스팅은 상위 클래스에서 하위 클래스로 형 변환을 하는것을 의미 한다. 업캐스팅 (Upcasting) 업캐스팅은 하위 클래스의 객체를 상위 클래스의 객체로 변환하는 것을 말합니다. 이 변환은 자동으로 이루어집니다. class Mammal { void walk() { System.out.println("Mammal is walking"); } } cl..
[BaekJoon] 1931번 회의실 배정(Kotlin)
·
Problem Solving
https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 1. 문제 그리디 알고리즘 문제이고 나는 그림을 그려 문제에 접근하였다. 2. 코드 import java.util.* fun main(){ val sc = Scanner(System.`in`) var n = sc.nextInt() var arr = Array(n){Array(2){0}} var end = 0 var cnt = 0 for(i in 0 until n){ arr[i][0] = sc.nextInt() // 시작시간 arr[i][1] = sc.nextInt() // 종료시간 } arr.sortWith(co..
JoonYong
'분류 전체보기' 카테고리의 글 목록 (4 Page)