분류 전체보기 154

[SQL] WITH 문

SQL의 WITH문은 쿼리를 작성할 때 하나의 서브쿼리 또는 임시 테이블처럼 활용할 수 있는 기능이다.코드 가독성 향상성능 개선: WITH문을 통해 중복 실행 줄일 수 있음재사용성: 정의된 WITH절은 메인 쿼리 내에서 여러 번 참조될 수 있어 코드의 재사용성을 높임 WITH 테이블명1 AS ( -- 서브쿼리 ) [, 테이블명2 AS ( -- 콤마로 구분하여 연속 정의 가능 -- 서브쿼리 ) , 테이블명2 AS ( -- 서브쿼리 )] SELECT * FROM 테이블명1 [JOIN 테이블명2 LEFT JOIN 테이블명3]

SQL 2025.03.27

[Java] ProcessBuilder

java.lang.ProcessBuilderJava 애플리케이션에서 시스템 명령어나 스크립트를 실행할 수 있게 하는 클래스.다양한 프로세스의 입출력을 관리할 수 있다.1. 시스템 명령어(cmd) 실행2. 프로세스 실행환경 설정3. 외부 프로세스의 표준 입력 / 출력 / 오류 처리4. 비동기적인 프로세스 실행 및 종료 대기* @Async를 붙이면 비동기 처리 가능 public static void main(String[] args) throws IOException, InterruptedException { ProcessBuilder builder = new ProcessBuilder(); builder.command("cmd.exe", "/c", ".\\test.bat); //운영체제가 윈도..

Java 2025.03.25

[Git] bare / mirror (+fork) 옵션 차이

[--bare] & [--mirror] 옵션공통점:둘 다 Git에서 원격 저장소를 복제할 때 사용됨차이점:작업 디레토리의 유무! 1. --bare 옵션git clone --bare 작업 디렉토리(working directory) 없이 Git 저장소의 모든 데이터를 복사함.git 폴더만 있는 상태로 저장되며, 일반적으로 원격 저장소를 만들 때 사용됨로컬에서 코드를 수정하거나 git commit 등의 작업을 할 수 없음주로 중앙 조장소(예: origin)을 운영하기 위한 용도로 사용됨2. --mirror 옵션git clone --mirror --bare와 비슷하지만, 모든 브랜치, 태그, 원격 설정(remote 설정)을 그대로 유지함원격 저장소를 완전히 복제하는 용도로 사용됨원본 저장소와 동기화할 때 유용함..

Git 2025.03.25

[CS] SOLID 설계원칙

객체지향 설계원칙SOLID단일 책임 원칙SRP개방-폐쇄 원칙OCP리스코프 치환 원칙LSP인터페이스 분리 원칙ISP의존성 역전 원칙DIPS : 단일 책임 원칙한 클래스는 하나의 책임(변경 이유)만 가져야 한다.O : 개방-폐쇄 원칙엔티티(클래스, 모듈, 함수 등)는 확장에는 열려 있어야 하고, 변경에는 닫혀 있어야 한다.L : 리스코프 치환 원칙서브타입은 언제나 그것의 베이스 타입으로 교체될 수 있다.슈퍼 클래스의 인스턴스 대신 서브 클래스의 인스턴스를 사용할 수 있어야 함.이를 통해 다형성을 활용한 설계가 가능해짐.I : 인터페이스 분리 원칙클라이언트는 자신이 사용하지 않는 메서드에 의존하면 안됨.불필요한 의존성을 줄이고 유연성 확장.D : 의존성 역전 원칙(DIP)고수준 모듈은 저수준 모듈에 의존하면 ..

컴퓨터 지식 2025.03.13

[CS] JSON(JavaScript Object Notation)

JavaScript Object NotationJSON은JavaScript 객체 문법으로구조화된 데이터교환형식이다.객체문법, 배열, 문자열로 표현할 수 있다.다양한 타입.프로그래밍 언어와 프레임워프 등에 독립적.서로 다른 시스템 사이에서의  데이터 교환에 유용.직렬화와 역직렬화 직렬화 : byte 형태(문자열)로 변환(Js 예: JSON.stringfy() ) 역직렬화 : 객체(Object)로 변환 (Js 예: JSON.parse())

컴퓨터 지식 2025.03.13

[Spring] NoArgsConstructor / AllArgsConstructor

@NoArgsConstructor@AllArgsConstructor위의 두 가지의 어노테이션은 Lombok의 어노테이션이다. Lombok은 불필요한 코드와 작업을 줄여주는 라이브러리이다. @NoArgsConstructor@NoArgsConstructor은 파라미터가 없는 디폴트 생성자를 자동으로 생성해주느 어노테이션이다.이를 사용하면, 클래스에 명시적으로 선언된 파라미터가 없는 생성자가 없더라도 인스턴스 생성이 가능하다. @AllArgsConstructor@AllArgsConstructor은 모든 필드 값을 파라미터로 받는 생성자를 자동으로 생성해주느 어노테이션이다.이를 사용하면, 클래스에 명시적으로 선언된 모든 필드 값을 파라미터로 가진 생성자가 없더라도 인스턴스 생성이 가능하다.

Java 2025.01.25

[파이썬] 큐(Queue)

from collections import dequedeq = deque()deque.append(item)# item을 데크의 오른쪽 끝에 삽입한다.deque.appendleft(item)# item을 데크의 왼쪽 끝에 삽입한다.deque.pop()# 데크의 오른쪽 끝 엘리먼트를 가져오는 동시에 데크에서 삭제한다.deque.popleft()# 데크의 왼쪽 끝 엘리먼트를 가져오는 동시에 데크에서 삭제한다.deque.extend(array)# 주어진 리스트를 데크의 오른쪽에 추가한다.deque.extendleft(array)# 주어진 리스트를 데크의 왼쪽에 추가한다.deque.remove(item)# item을 데크에서 찾아 삭제한다. (제일 처음 나온 해당 string만 제거됨)deque.clear()#..

Python 2025.01.24

[파이썬] Django, Flask, FastAPI

FastAPI비동기 처리를 지원하는 ASGI 표준을 따르는 웹 프레임워크비동기 처리를 기본으로 하기때문에 빠른 실행이 가능하다.웹 소켓이나 서버 푸시와 같은 비동기 통신이 필요한 애플리케이션에 유용웹 경로는 데코레이터를 사용해서 연결한다. Flask동기 방식을 지원하는 WSGI를 기반으로 한 마이크로 웹 프레임워크다양한 웹 엔진과 붙여서 쓸 수 있다.코드가 비교전 단순해서 API 서버를 만들기에 편리하다.웹 경로는 데코레이터를 사용해서 연결한다. DjangoWSGI 애플리케이션이지만, 3.0버전부터는 ASGI도 지원한다.MVT 패턴Model은 데이터베이스와 연동되며 ORM(객체 관계형 매퍼 Object-Relational Mapper)을 기본적으로 제공하다.관리자 페이지를 기본적으로 제공하다.웹 경로는 ..

Python 2025.01.01

[도커] 도커 컴포즈

도커 컴포즈란?단일 서버에서 여러 개의 컨테이너를 하나의 패키지로 묶어서하나의 서비스처럼 관리할 수 있는 작업 환경을 제공하는 관리 도구.yaml 파일을 사용. 도커 컴포즈란의 장점데이터베이스, 웹 서버, 캐시 서버 등의 여러 컨테이너를 한 번에 실행하고 관리할 수 있게 되어개발 및 테스트 환경을 구성하는데 유용하다.도커 컴포즈를 사용하면 로컬에서 여러 개의 서비스를 동시에 실행하고 테스트 할 수 있는 환경을 쉽게 구성할 수 있다. 도커 컴포즈란의 사용법도커 컴포즈는 도커와 함께 제공되므로 도커를 설치하면 자동으로 함께 설치되어별도의 추가 설치가 필요하지 않다.따라서 도커를 설치하면 컴포즈를 사용할 준비가 완료된다.

컴퓨터 지식 2024.12.28