분류 전체보기 174

[DB] RDBMS와 NoSQL의 개념과 차이점

RDBMS(관계형 데이터베이스 관리 시스템)와 NoSQL(비관계형 데이터베이스)은 데이터를 저장하고 관리하는 두 가지 주요 데이터베이스 유형입니다. RDBMS(관계형 데이터베이스 관리 시스템) RDBMS는 데이터를 관리하고 저장하기 위한 소프트 웨어 시스템으로, 관계형 데이터 모델을 기반으로 합니다. 이 모델에서 데이터는 테이블(Table)이라 불리는 2차원 구조의 엑셀 시트와 같은 형태로 저장됩니다. 여기서 테이블은 행(Row)과 열(Column)로 이루어져 있습니다. 다음은 RDBMS에 대한 주요 특징과 개념들입니다. 테이블(Table) 데이터가 저장되는 가장 기본적인 단위로, 2차원 행과 열의 구조를 가지고 있습니다. 테이블은 명확한 스키마(구조 및 데이터 유형 정의)를 가지고 있습니다. 열(Col..

Data/DataBase 2024.01.12

[Programmers] 과일 장수(Java)

https://school.programmers.co.kr/learn/courses/30/lessons/135808 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 과일 장수라는 문제 Java로 풀이하겠습니다. 이 문제는 과일 장수가 판매하는 사과에 대한 최대 이익을 계산하는 문제입니다. 주어진 조건은 다음과 같습니다. 사과는 1점부터 k점까지 점수로 분류됩니다. 여기서는 최상품의 사과의 점수입니다. 사과를 m 개씩 담아 상자에 판매하며, 각 상자의 가격은 상자에 들어있는 사과 중 최저 점수 p에 따라 결정됩니다. 따라서 한 상자의 가격은 p*m이 됩니다...

[Spring] Spring 이란

spring의 탄생 배경 스프링이 왜 탄생했는지 시대적 배경을 알고 공부하기 위해 spring의 역사를 먼저 알아보겠습니다. EJB(Enterprise JavaBeans)의 복잡성 1990년대 후반, 자바 기반의 엔터프라이즈 애플리케이션 개발은 EJB를 사용하는 것이 일반적이었습니다. 그러나 EJB는 무거운 설정과 복잡한 프로그래밍 모델로 인해 개발자에게 부담을 주었습니다. 또한 EJB의 선언적인 구성은 복잡한 XML 설정 파일을 필요로 했습니다. 경량화와 간결한 프로그래밍 모델의 필요성 기업에서는 복잡한 자바 기반 엔터프라이즈 애플리케이션을 개발하고 유지보수하는 것에 어려움을 겪고 있었습니다. 경량화된 개발 방법과 간결한 프로그래밍 모델의 필요성이 대두되었습니다. 테스트 용이성 기존의 자바 엔터프라이즈..

Backend/Spring 2024.01.12

[TypeScript] Type vs Interface

TypeScript에서 Type과 Interface의 차이점에 대해 알아보겠습니다. Type vs Interface // Object 선언할 때 interface IObject { x: number; y: number; } type TObject = { x: number; y: number; } // Function 선언할 때 interface IFunction { (x: number, y: number): number; } type TFunction = (x: number, y: number) => number; interface와 type은 객체나 함수의 타입을 선언하는 데 사용될 수 있습니다. type은 할 수 있지만 interface에서는 할 수 없는 것들 primitive 타입 선언하기 type..

Backend/TypeScript 2024.01.10

[Programmers] PCCE 기출문제 10번 / 데이터 분석

https://school.programmers.co.kr/learn/courses/30/lessons/250121https://school.programmers.co.kr/learn/courses/30/lessons/250121 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 데이터 분석이라는 문제 Java로 풀이하겠습니다. 문제는 물품 데이터를 처리하는 문제입니다. 주어진 이차원 정수 리스트 data에는 물품의 코드(code), 제조일(date), 최대 수량(maximum), 현재 수량(remain)이 포함되어 있습니다. 그리고 세 가지 값이 주어집니다..

[TypeScript] type predicate (타입 프리디케이트)

type predicate (타입 프레디케이트) type predicate는 TypeScript에서 특정 타입에 대한 동적인 체크를 수행하는 함수입니다. 이 함수는 입력된 값이 특정 타입인지 여부를 불리언으로 반환합니다. 이를 통해 TypeScript는 실행 시간에 변수의 타입을 검사할 수 있게 됩니다. 단순한 숫자 타입 체크 function isNumber(input: any): input is number{ return typeof input === 'number'; } console.log(isNumber(10)); 'isNumber' 함수는 입력값이 숫자인지 여부를 검사하는 타입 프레디케이트입니다. 'input is number' 형태는 TypeScript에게 이 함수가 실행되면 'input'이 ..

Backend/TypeScript 2024.01.07

[TypeScript] Statement와 Expression(문장과 표현식)

TypeScript 관점에서 statement와 experssion의 차이 그리고 expression(표현식)을 사용하는 게 더 좋은지에 대해서 한번 알아보도록 하겠습니다. Statement(문장) 프로그램에서 어떤 작업이 이루어져야 하는지를 나타냅니다. 주로 어떤 동작이나 조건을 수행하도록 컴퓨터에게 명령하는 역할을 합니다. function addTwoNumbers(x: number, y: number): number { return x + y; } 반환 값이 있을 수도, 없을 수도 있습니다. 주로 함수나 조건문, 반복문 등이 Statement의 예시입니다. 장점 명시적인 반환 명시적으로 return 키워드를 사용하여 반환값을 지정할 수 있어, 함수가 무엇을 반환하는지 명확하게 드러낼 수 있습니다. ..

Backend/TypeScript 2024.01.06

REST, RESTful 그리고 REST API, RESTful API

RESTREST는 자원(resource)을 정의하고 자원에 대한 상태 전이를 통해 상호 작용하는 아키텍처 스타일입니다.특징자원은 고유한 식별자인 URI(Uniform Resource Identifier)로 표현됩니다.자원에 대한 행위는 HTTP 메서드(GET, POST, PUT, DELETE)로 정의됩니다.상태 전이(State Transfer)는 클라이언트와 서버 간의 통신을 의미하며, 각 요청에는 필요한 정보가 포함되어야 합니다. RESTful RESTful은 REST원칙을 따르는 시스템이나 서비스를 의미합니다.목표RESTful은 REST 아키텍처를 따르면서 효율적이고 일관된 인터페이스를 제공하는 것이 목표입니다.RESTful 시스템은 자원 식별, 상태 전이, 자원에 대한 일관된 행위 등을 중심으로 설..

Web/HTTP 2024.01.03

[Programmers] PCCE 기출문제 9번 / 이웃한 칸

https://school.programmers.co.kr/learn/courses/30/lessons/250125?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이웃한 칸이라는 문제 Java로 풀이하겠습니다. 이 문제는 주어진 2차원 격자 보드에서 특정 위치 (h, w)의 칸과 같은 색깔로 색칠된 이웃한 칸의 개수를 찾는 문제입니다. 이웃한 칸은 위, 아래, 왼쪽, 오른쪽 방향에 위치한 칸을 의미합니다. 주어진 위치에서 상, 하, 좌, 우로 이동하며 이웃한 칸의 색상을 확인합니다. 이웃한 칸의 색상이 현재 위치의 칸과 같으면 개..

[TypeScript] Overloading 오버로딩

오버로딩이라는 개념은 많은 언어에 존재하는 개념입니다. 하지만 자바스크립트에는 없고 타입스크립트에는 존재합니다. 타입스크립트의 오버로딩에 대하여 알아보겠습니다. Overloading 오버로딩은 동일한 함수 이름으로 다양한 매개변수 및 반환 타입을 가진 여러 버전의 함수를 정의하는 것을 말합니다. 이를 통해 다양한 형태의 입력을 받아들이고 그에 따라 다양한 출력을 반환할 수 있습니다. 함수 시그니처 function stringOrStrings(members: string): string; function stringOrStrings(member1: string, member2: string, member3: string): string; 첫 번째 시그니처: 문자열 하나를 받아서 문자열을 반환합니다. 두 번..

Backend/TypeScript 2023.12.30