Intellij 단축키 정리
네비게이션 및 검색 Search Everywhere 두 번의 Shift 키를 눌러 프로젝트 내 모든 파일, 클래스, 설정 등을 빠르게 검색할 수 있다. Find Action Ctrl + Shift + A 다양한 액션(명령어)을 검색 및 실행할 수 있다. Navigate to Class Ctrl + N 클래스 이름으...
네비게이션 및 검색 Search Everywhere 두 번의 Shift 키를 눌러 프로젝트 내 모든 파일, 클래스, 설정 등을 빠르게 검색할 수 있다. Find Action Ctrl + Shift + A 다양한 액션(명령어)을 검색 및 실행할 수 있다. Navigate to Class Ctrl + N 클래스 이름으...
CI/CD: 소프트웨어 개발의 혁신적인 변화 소프트웨어 개발의 속도와 품질은 개발자들이 항상 직면하는 중요한 과제이다. 그러나 코드가 복잡해지고 팀이 커지면서, 개발 과정에서 발생하는 문제들은 점점 더 어려워지고 있다. 이를 해결하기 위한 혁신적인 방법론이 바로 CI/CD이다. CI/CD는 지속적인 통합Continuous Integr...
PostgreSQL RAISE 란? PL/pgSQL에서 메시지를 출력하거나 예외를 발생시키는 데 사용된다. 디버깅, 로깅, 오류 처리 등을 효과적으로 할 수 있다. RAISE 문법 RAISE level 'message' [, parameter [, ...]] [USING option = value [, ...]]; level: 메시...
PostgreSQL Lock 이란? 데이터베이스에서 Lock은 여러 프로세스가 동시에 동일한 데이터에 접근할 때 발생할 수 있는 충돌을 방지하는 데 사용된다. PostgreSQL에서는 잠금을 통해 데이터의 일관성과 무결성을 유지하며, 동시에 가능한 높은 성능을 제공한다. PostgreSQL에서의 Lock 종류 ROW LEVEL LOCK ...
Information Schema 란? Information Schema는 모든 데이터베이스에 존재하는 information_schema라는 스키마에 테이블 형태로 저장된다. 이를 통해 사용자는 데이터베이스의 물리적 스키마와 관련된 메타데이터를 표준화된 SQL 쿼리를 통해 조회할 수 있다. information_schema는 보편적으로 사...
Git 명령어 정리 검사 및 비교 log : 커밋 로그를 보여준다. git log git log --oneline : 한 줄로 간략하게 커밋 메시지를 보여준다. git log --graph : 브랜치 구조를 그래프로 시각화해 보여준다. diff : 변경 사항 비교 ...
Git 명령어 정리 설정 및 구성 git git -v : git 버전 확인하기 config : git 설정을 관리한다. git config --global user.name "Your Name": 전역 사용자 이름을 설정한다. git config --global u...
SVN 정리 VCS 란? 문서나 설계도, 소스 코드 등의 변경 사항, 즉 버전을 관리해주는 소프트웨어이다 버전 관리란 소프트웨어의 변경점을 관리하는 것이다. 이를 지원하는 도구로 Git, SVN, CVS 등이 있다. VCS 의 장점 변경점 관리 어떤 내용을 누가 작성해서 어느 시점에 들어갔는지 확인할 수 있게...
스프링 6.0 -> 6.1 업데이트 가이드 최소 의존성 SnakeYAML 2.0 ↑ Jackson 2.14 ↑ Kotlin Coroutines 1.7 ↑ Kotlin Serialization 1.5 ↑ 6.1에서 제거될 예정인 API 6.2에서 제거될 예정인 API Parameter Name Retention Loc...
문제 정의 Loop를 이용하여 Truncate를 하는 도중 DeadLock 이슈 발생 원인 추론 Truncate는 데이터를 삭제하고, 테이블을 재설정하고 관련된 모든 트랜잭션 로그를 제거한다. 잠금 순서의 불일치 자동 커밋과 트랜잭션 관리가 필요 할 수 있다. 외래 키 제약조건에 의해 추가적인 잠금 때문에 발생 할 수 있다. ...
DbLink란? DbLink는 PostgreSQL 데이터베이스 간 또는 외부 데이터베이스와의 연결을 구축하고 데이터를 쿼리하며 상호 작용하는 데 사용되는 모듈이다. 간단히 말하면, 서로 분리된 데이터베이스에 있는 정보를 마치 하나의 데이터베이스인 것처럼 자유롭게 활용할 수 있도록 해주는 도구이다. 사용방법 --...
Distinct란? PostgreSQL에서 DISTINCT를 사용하면 결과 집합에서 중복된 값을 제거할 수 있다. 이를 통해 데이터를 정리하고 고유한 값만을 포함하는 결과를 얻을 수 있다. 사용방법 SELECT DISTINCT job_title FROM employee; 장점: 중복된 결과를 제거하여 데이터의 정확성을 유지한다...
z-index란? z-index는 요소의 쌓임 순서를 결정하는데 사용되며, 더 높은 z-index 값을 가진 요소는 더 앞쪽에 표시된다. 더 큰 z-index 값은 더 상위에 위치하게 된다. 쓰는 방법 z-index 속성은 auto 키워드 또는 값을 사용해 지정할 수 있다. /* 키워드 값 */ z-index: auto; /* <...
Docker Compose Docker Compose 란 단일 서버에서 여러 개의 컨테이너를 하나의 서비스로 정의해 컨테이너의 묶음으로 관리할 수 있는 작업환경을 제공하는 관리도구이다. Docker Compose 사용 이유 컨테이너를 하나씩 생성하는 번거로움을 줄일 수 있다. 다양한 환경에서 애플리케이션을 실행 할 때 일관된 ...
DockerFile 인프라 구성을 기술한 파일 도커 파일은 도커 이미지를 빌드하기 위한 스크립트로, 컨테이너 환경을 정의하고 구성하는 데 사용된다. 기본적인 도커 파일을 작성하는 방법 베이스 이미지 선택 도커 파일은 기본적으로 어떤 이미지를 기반으로 할지 정해야 한다. 예를 들어, Java 어플리케이...
Container 관련 명령어 정리 docker ps, docker container ls 실행 중인 컨테이너 목록을 표시한다. docker stop, docker container stop 실행 중인 컨테이너를 정지한다. docker start, docker ...
사용법 docker run -i –interactive 표준 입력을 활성화 하며, 컨테이너와 연결(attach)되지 않더라도 표준 입력을 유지한다. -t – tty TTY모드를 사용, bash를 사용하려면 이 옵션을 설정해야한다. –name ...
도커란? 도커(Docker)는 컨테이너 기반의 가상화 플랫폼으로, 소프트웨어를 패키지화하고 이를 실행하는 데 사용된다. 도커를 사용하면 응용 프로그램과 그에 필요한 모든 종속성을 독립적이고 이식성 있는 컨테이너로 감싸고, 이를 호스트 운영체제와 격리된 환경에서 실행할 수 있다. 도커를 사용하는 용도 빠르고 일관된 애플리케이션 제공 ...
로드 밸런싱 알고리즘 로드 밸런싱 알고리즘은 로드 밸런서가 서로 다른 클라이언트 요청 각각에 가장 적합한 서버를 결정하기 위해 따르는 규칙 세트이다. 로드 밸런싱 알고리즘은 크게 2가지 범주로 나뉜다. 정적 로드 밸런싱 정적 로드 밸런싱 알고리즘은 고정된 규칙을 따르며 현재 서버 상태와 무관합니다. 1. Roun...
로드 밸런싱 로드 밸런싱이란? 로드 밸런싱은 애플리케이션을 지원하는 리소스 풀 전체에 네트워크 트래픽을 균등하게 배포하는 방법 최신 애플리케이션은 수백만 명의 사용자를 동시에 처리하고 정확한 텍스트, 비디오, 이미지 및 기타 데이터를 빠르고 안정적인 방식으로 각 사용자에게 반환해야 한다. 이렇게 많은 양의 트래픽을 처리하기 위해 대부분...
1. 아파치(Apache) 자동 설치 1. dnf install httpd 명령어를 이용하여 쉽게 설치 가능 2. 선택지가 나오면 y 입력 2. 아파치(Apache) 수동 설치 1. ServerRoot : /usr/local/apache 2. 각 파일들 링크 클릭 후 다운로드 3. winscp 또는 filezilla와 같은 ftp 서버...
등장 배경 1. 접근 권한의 필요성 이전에는 사용자가 다른 애플리케이션에 대한 자격 증명(사용자 이름과 비밀번호)을 제공하여 로그인 해당 애플리케이션의 모든 기능에 액세스할 수 있음 그러나 이러한 방식은 보안 문제와 편의성 문제를 초래할 수 있음 2. 보안과 사용자 편의성의 균형...
TDD 정의 테스트 주도 개발(Test Driven Development)이라는 의미를 가짐 반복 테스트를 이용한 소프트웨어 방법론으로 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복 구현 짧은 개발 주기의 반복에 의존하는 개발 프로세스 애자일 방법론 중 하나인 eXtream Programming(XP)...
자바스크립트 변수 변수 변수는 데이터를 저장할 때 쓰이는 ‘이름이 붙은 저장소’이다. let, const 블록 스코프 함수, if 문, for 문, while 문, try/catch 문 등 var 함수 스코프 한번 선언된 변수를 다시 선언할 수 있다. var 는 선언하기 전에 사용할 수 있다. var는 브라우저의...
class ES 6에 추가된 스펙 new 를 통해서 호출할 때 내부에서 정의된 내용으로 객체를 생성한다. class라는 키워드와 내부에 constructor 가 있다. constructor는 객체를 만들어 주는 생성자 메소드이다. new 를 통해 호출하면 자동으로 실행된다. 객체를 초기하기 위한 값이 정의 되고 인수를 넘겨받을 ...
call, apply, bind JavaScript의 내장함수인 ‘Function’의 프로토타입 메서드이다. 따라서 모든 함수 객체에서 이들 메서드의 사용이 가능하다. 명시적으로 this 바인딩을 할 때 사용하는 메소드들이다. 인수를 전달할 수 있다. Function.prototype.call() ...
프로토 타입 정의 자바스크립트 라이브러리를 뭔가 해보겠다고 하면 깊이 있는 메서드를 찾아봐야한다. 일반적인 상속이랑은 다른 개념이다 자바스크립트에는 클래스 정의를 사용한 클래스가 없다 자바스크립트에서 ‘복사’를 통한 상속은 없다 프로토타입 체인을 이용한 속성의 상속은 있다. 프로토타...
스프링 소개 스프링의 탄생 배경 2002년 로드 존슨의 책 출간 EJB의 문제점 지적 EJB 없이도 충분히 고품질의 확장 가능한 애플리케이션을 개발할 수 있음을 보여줌 해당 책에 나오는 기술들 BeanFactory ApplicationContext POJO(Plain Old Java Objec...
Tomcat(톰캣) 아파치 소프트웨어 재단(ASF)의 오픈 소스 자바 서블릿 컨테이너이다. 톰캣은 서블릿, JSP, EL, JSTL, WebSocket 등 여러가지 JavaEE 기술을 구현한다. Java 코드를 실행하는 순수 Java HTTP 웹서버이다. (자바 웹 서버 - was) Tomcat Catalina 톰캣은 여러개...
자바 LTS Java의 LTS 버전으로는 Java 8, Java 11, Java 17 버전이 있다. LTS란 Long-Term Support라는 뜻으로 장기적인 지원을 받을 수 있는 버전을 말한다. 이러한 LTS 버전은 엔터프라이즈 환경 및 장기적인 프로젝트에 적합하며, 오랜 기간 동안 지원과 업데이트가 제공된다. JAVA 8 ...
Facade 패턴 라이브러리, 프레임워크 또는 다른 클래스들의 복잡한 집합에 대한 단순화 된 인터페이스를 제공하는 구조적 디자인 패턴이다. Facade 패턴을 통해 해결 할 수 있는 점 하나의 책임이 변경 되어도 다른 책임에는 영향을 미치지 않으며, 개념이 같은 클래스를 하나로 관리하여 버전에 따라 달라지는 것을 최소화 할 수 있다. ...
World IT 전시회 2023 후기 World IT 전시회 2023 World IT 전시회 2023 유튜브 후기 개발자 일정 을 보는데 WorldITShow 2023을 개최 한다는 소식을 듣고 나서, 취업 전에 기간을 이용하여 다녀오기로 마음을 먹었습니다. 4.19(수) – 4. 21(금), 3일간 개최를 하는 쇼이고 코엑스에...
의존 관계 역전 원칙 (DIP - Dependency Inversion Principle) 프로그램은 추상화에 의존해야지 구체화에 의존하면 안된다. 의존성 주입은 이 원칙을 따르는 방법 중 하나다 의존 관계의 문제? 수정에 취약한 코드가 된다. 추상화란? 유연성을 확보하기 위해 구체적인 것은 제거한다는 의미이다. 어떤 양...
인터페이스 분리 원칙 (ISP - Interface Segregation Principle) 클라이언트가 자신이 이용하지 않는 메서드에 의존하지 않아야 한다는 원칙이다 객체를 설계할 때 객체 외부에 노출되는 인터페이스와 객체의 내부에 숨겨지는 구현을 명확하게 분리해서 고려해야 한다는 것을 의미한다. 특정 클라이언트를 위한 인터페이스 여러 ...
인덱스(Index) SQL 명령문의 처리 속도를 향상시키기 위해서 컬럼에 대해서 생성하는 오라클 객체이다. 데이터를 빠르게 검색하기 위한 오브젝트이다. 인덱스는 테이블에 종속되어 있으며 하나의 테이블에 다수의 인덱스를 생성할 수 있다. 인덱스의 장점 검색속도가 빨라지고 시스템에 걸리는 부하를 줄여서 시스템 젂체 성능을 향상시킬 수...
Web Server란? 사용자에게 HTML 페이지나 jpg, png와 같은 이미지를 HTTP 프로토콜을 통해 웹 브라우저에 제공하는 서버로, 내부의 내용이 이미 만들어져 있는 정적인 요소들을 화면에 보여주는 역할을 한다. 정적인 페이지를 제공하는 것 HTML Web Server의 종류 1. Apache Apache Softwar...
리스코프 치환 원칙 (LSP - Liskov Substitution Principle) 정의 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다. 계약에 의한 설계를 참고해야 한다. 계약이란? 각 계약 당사자는 계약으로부터 이익(benefit)을 기대하고 의무(obligation)를 이행...
개방-폐쇄의 원칙 (OCP - Open-Closed Principle) 정의 소프트웨어 요소는 확장에는 열려 있으나 수정에는 닫혀 있어야 한다. 확장에 대해 열려 있다 이것은 모듈의 동작을 확장할 수 있다는 것을 의미한다. 애플리케이션의 요구 사항이 변경될 때, 이 변경에 맞게 새로운 동작을 추가해 모듈을 확장할 수 있다. ...
단일 책임의 원칙 (SRP - Single Responsibility Principle) 다섯 가지 SOLID 애자일 원칙 중 하나이다. 한 클래스는 하나의 책임만 가져야 한다는 원칙이다. 다르게 말하면 클래스를 수정할 이유가 오직 하나여야만 한다는 뜻이다. 책임이란? 어떤 객체가 어떤 요청에 대해 대답해 줄 수 있거나, 적ㄱ...
This post is to show Markdown syntax rendering on Chirpy, you can also use it as an example of writing. Now, let’s start looking at text and typography. Headings H1 - heading H2 - heading H3 - ...