분류 전체보기 243

[Database] SQL이란, 그리고 SQL문이 실행되는 과정과 원리

SQLSQL(Structured Query Language)은 데이터베이스에서 데이터를 생성, 검색, 업데이트, 삭제하기 위한 표준 프로그래밍 언어입니다. SQL은 관계형 데이터베이스 관리 시스템(RDBMS)에 주로 사용되며, 1986년에 표준화되었습니다.  SQL의 주요 특징은 다음과 같습니다. DDL(Data Definition Language): 데이터베이스 구조를 정의하고 수정하기 위한 명령어를 포함합니다. CREATE, ALTER, DROP 등의 명령어가 여기에 속합니다.DQL(Data Query Language): 데이터베이스에서 특정 데이터를 조회하기 위한 명령어를 포함합니다. 가장 일반적인 예는 SELECT 문입니다.DML(Data Manipulation Language): 데이터베이스 내..

[Spring] JSP/Servlet부터 Spring, 그리고 Springboot 까지

JSP/Servlet 초기의 웹 개발에서는 Java Servlet을 통해 웹 애플리케이션을 개발하였습니다. Servlet이란 웹 어플리케이션을 생성하는 데 사용되며, 서버 측에 위치하며 동적인 웹 페이지를 생성합니다. Servlet은 클라이언트의 요청을 처리하고 그 결과를 다시 클라이언트에게 전송하는 Servlet 클래스의 구현을 통해 이루어지게 됩니다. Servlet API에는 Servlet, GenericServlet, HttpServlet, ServletRequest, ServletResponse 등과 같은 많은 인터페이스와 클래스가 있습니다. Servlet 이전에는 CGI(Common Gateway Interface) 스크립팅 언어가 서버 측 프로그래밍 언어로서 일반적이었습니다. 그러나 이 기술에..

Development/Spring 2024.01.07

[Java] 인터페이스가 다중 상속이 가능한 이유?

왜 클래스는 단일 상속만 가능한데, 인터페이스는 2개 이상 구현이 가능할까요? 일단 인터페이스에 대해 간단히 다시 요약해보겠습니다. 인터페이스 클래스가 어떤 메소드를 반드시 구현해야 하는지를 명시하는 역할을 합니다. 클래스는 인터페이스를 구현함으로써 이 인터페이스가 요구하는 메소드들을 모두 정의해야 합니다. 인터페이스는 메소드와 상수만을 가질 수 있으며, 이들은 모두 public이어야 합니다. interface printable{ void print(); } class A6 implements printable{ public void print(){ System.out.println("Hello"); } public static void main(String args[]){ A6 obj = new A6(..

[Database] 데이터베이스란

데이터베이스 데이터베이스는 구조화된 정보 또는 데이터의 조직된 모음으로, 일반적으로 컴퓨터 시스템에서 전자적으로 저장됩니다. 데이터베이스는 일반적으로 데이터베이스 관리 시스템(DBMS)에 의해 제어됩니다. 데이터와 DBMS는 연관된 응용 프로그램과 함께 데이터베이스 시스템으로 불리며 종종 간단히 데이터베이스로 줄여집니다. 오늘날 가장 일반적으로 사용되는 데이터베이스 유형 내의 데이터는 일련의 테이블에서 행과 열로 모델링됩니다. 이를 통해 처리 및 데이터 쿼리가 효율적으로 이루어집니다. 데이터는 쉽게 액세스, 관리, 수정, 업데이트, 제어 및 조직될 수 있습니다. 대부분의 데이터베이스는 구조화된 쿼리 언어(SQL)를 사용하여 데이터를 작성하고 쿼리합니다. Structured Query Language (S..

[Queue] 프로그래머스 level 2 기능개발 java 풀이

https://school.programmers.co.kr/learn/courses/30/lessons/42586?language=java# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 초기 문제 접근 progresses 요소들을 queue 안에 넣고 순회하면서 speeds를 더해주고 100이 넘는 애들이 나오면 그때 count++하고 answer에 넣기 이런식으로 하려 했으나.. 그럼 speeds를 저장하는 queue도 따로 만들어줘야 하고, 여럿 문제가 생겨버렸다.. 이후 문제 접근 progresses를 순회하며, 기능 개발에 남은 일수를 Math...

Development/PS 2024.01.07

[DesignPattern] 18개 디자인 패턴 총 정리, 요약

Abstract Factory: Family Creator Makes groups of related items. 관련된 항목들의 그룹을 만듭니다. Builder: Lego Master Builds objects step by step, keeping creation and appearance separate. 단계적으로 객체를 생성하며, 생성과 외관을 분리합니다. Prototype: Clone Maker Creates copies of fully prepared examples. 완전히 준비된 예제의 복사본을 생성합니다. Singleton: One and Only A special class with just one instance. 하나의 인스턴스만 가지는 특별한 클래스입니다. Adapter: Uni..

[DFS] 프로그래머스 level 3 네트워크 java 풀이

https://school.programmers.co.kr/learn/courses/30/lessons/43162?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 방문한 컴퓨터를 boolean 배열에 저장해야 함 computers의 각 요소를 순회하면서 자기 자신의 인덱스가 아닌 요소가 1인지 검사 1이면 그 컴퓨터로 이동 (dfs로 인덱스 전달), boolean 배열에 true로 변경 순회를 다 했을때 isVisited가 true인 경우 answer++ 코드 class Solution { public int solut..

Development/PS 2024.01.01

[Network] REST API vs GRAPHQL

REST API vs GRAPHQL REST와 GraphQL은 둘 다 데이터를 노출하고 현대적인 응용 프로그램을 구동하는 데 사용되는 두 가지 API 접근 방식입니다. 그러나 각각은 특정 상황에서 더 적합한 선택일 수 있습니다. REST CRUD 작업에 대해 GET, POST, PUT, DELETE와 같은 표준 HTTP 메서드를 사용합니다. 별도의 서비스 또는 응용 프로그램 간에 간단하고 일관된 인터페이스가 필요한 경우에 잘 작동합니다. 캐싱 전략은 구현하기가 간단합니다. 하지만 관련된 데이터를 별도의 엔드포인트에서 가져오기 위해 여러 Round-Trip이 필요할 수 있습니다. GraphQL 클라이언트가 필요한 정확한 데이터를 쿼리하기 위한 단일 엔드포인트를 제공합니다. 클라이언트는 중첩된 쿼리에서 필요..

[Hash] 프로그래머스 level 3 베스트앨범 java 풀이

https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 를 저장하는 totalGenresPlay 를 저장하는 musicTable 위 두 HashMap을 for loop로 생성 속한 노래가 많이 재생된 장르를 먼저 수록하기 위해, totalGenresPlay의 value값 기준으로 내림차순 sort하여 장르(String)을 저장하는 새 sortedKeyList 생성 sortedKeyList를 순회하면서 musicTable의 저장된 장르의 Ha..

Development/PS 2023.12.23

[Network] RESTful web API design

REST REST 아키텍처 스타일은 웹이 1991년에 팀 버너스 리에 의해 탄생함으로써 시작되었습니다. 웹은 하이퍼텍스트를 활용하여 정보를 연결하는 방식으로, 인터넷에서 정보를 공유하는 방법을 제시했습니다. 웹의 기본 구성 요소는 다음과 같습니다. 표현 형식: HTML 식별자: URI 전송 방법: HTTP HTTP는 정보를 웹에서 전송하는 데 사용되는 프로토콜로, 1994년에 로이 필딩이 주도하여 개발되었습니다. 필딩은 HTTP 1.0의 명세 작업에 참여하면서, 기존의 웹과 호환성을 유지하면서 HTTP를 개선하고자 했습니다. 그는 HTTP Object Model 개념을 도입하여 HTTP를 객체 지향적으로 설계할 수 있는 방법을 제시했습니다. 이후, 2000년에 "Representational State ..