프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다.객체 지향 프로그래밍의 장, 단점 간단하게 설명해주세요장점▶코드 재사용이 용이남이 만든 클래스를 가져와서 이용할 수
REST API알기 위해선 REST부터 알아야한다.HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Opera
스프링 프레임워크(Spring Framework)는 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 간단히 스프링(Spring)이라고도 불린다. 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다. 대한민국 공공기관의 웹 서비스 개발 시 사용을
인덱스(Index)는 데이터베이스의 테이블에 대한 검색 속도를 향상시켜주는 자료구조이다. 테이블의 특정 컬럼(Column)에 인덱스를 생성하면, 해당 컬럼의 데이터를 정렬한 후 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장된다. 컬럼의 값과 물리적 주소를 (k
DI는 각자의 계층이나 서비스들 간에 의존성이 존재할 경우 스프링컨터에너로부터 주입받아 서로 연결시킵니다.DI는 IoC를 달성하기 위한 방법이라고 볼 수 있습니다.제어의 역전이 일어나는 것을 전제로 객체들간의 관계를 관리할때 사용됩니다.의존성을 낮출 수 있게 되고 즉,
MSA는 MicroService Architecture의 줄임말로, 소프트웨어 개발 기법 중 하나입니다.MSA는 작고, 독립적으로 배포 가능한 각각의 기능을 수행하는 서비스들로 구성된 프레임워크입니다.경량화되고 독립적인 여러 개의 서비스를 조합하여 애플리케이션을 구현하
자바에서 제네릭(generic)이란 데이터의 타입(data type)을 일반화한다(generalize)는 것을 의미합니다.제네릭은 클래스나 메소드에서 사용할 내부 데이터 타입을 컴파일 시에 미리 지정하는 방법입니다.이렇게 컴파일 시에 미리 타입 검사(type check
1\. List : 저장공간이 필요에 의해 자동으로 늘어난다 ( 순서가 있는 저장공간 )특징 : 순서가 있고, 중복을 허용(배열과 유사)장점 : 가변적인 배열9배열이 자동으로 늘어남)단점 : 원하는 데이터가 뒤쪽에 위치하는 경우 속도의 문제방식 : equals()를 이
실험 1. 커뮤니티 게시글 전체 조회.📌조건 : 1000명의 유저가 1초 동안 2번씩 요청한 경우 💡쿼리 수정 전💡쿼리 수정 후 결과 : 40ms -> 9ms로 개선실험 2. 마이페이지 조회 💡쿼리 수정 전💡쿼리 수정 후 결과 : 9ms -> 1ms로 개선
프로세스 : 자신만의 고유 공간과 자원을 할당받아 사용스레드 : 다른 스레드와 공간과 자원을 공유하면서 사용운영체제로부터 자원을 할당받는 작업의 단위이다.쉽게 말하자면 코드의 집합으로 이루어진 프로그램이 실행되는 것이 프로세스이다. 예를 들어 나는 컴퓨터를 키면 일단
트랜잭션은 데이터베이스의 상태를 변화시키기 위해 수행하는 작업 단위이다. 상태를 변화시킨다는 것은 SQL 질의어를 통해 DB에 접근하는 것이다. SELECT, INSERT,DELETEUPDATE가 있다.원자성(Atomicity)은 트랜잭션이 DB에 모두 반영되거나,
SpringBoot에서 JUnit을 사용하여 테스트 코드를 작성할 때@SpringBootTest 어노테이션을 자주 쓰게 되는데, 상황에 따라서는 @WebMvcTest를 쓰는게 좋을 때도 있다.📌Junit이란 자바 개발자의 93%가 사용하는 단위 테스트 프레임워크이며
포트 번호를 이용하여 주소를 지정한다.두 애플리케이션이 통신하기 위해 반드시 포트 번호를 결정해야 한다.IP가 제공하는 오류 체크 기능은 프로토콜 동작을 위해 반드시 필요한 부분에만 국한된다. 즉 IP헤더에 대한 오류는 체크하지만 데이터에 대한 오류는 체크하지 않는다.
JWT(JSON Web Token)은 당사자 간 정보를 안전하게 전송할 수 있는 방법을 JSON 객체로 정의한 개방형 표준(RFC 7519)입니다.이 정보는 디지털 서명을 사용하기 때문에 데이터 위/변조를 검증할 수 있으며, 신뢰할 수 있습니다.JWT는 (HMAC 알고
📌 스택의 개념스택(stack)이란 쌓아 올린다는 것을 의미한다. 따라서 스택 자료구조라는 것은 책을 쌓는 것처럼 차곡차곡 쌓아 올린 형태의 자료구조를 말한다.📌 스택의 특징스택은 위의 사진처럼 같은 구조와 크기의 자료를 정해진 방향으로만 쌓을수 있고,top으로 정
1\. 정적 페이지(Static Pages)Web Server는 파일 경로 이름을 받아 경로와 일치하는 file contents를 반환한다.항상 동일한 페이지를 반환한다.단순 HTML 문서, CSS, JavaScript, 이미지, 파일 등 즉시 응답 가능한 컨텐츠이다.
현재까지의 프로그래밍 패러다임절차지향 -> 객체지향 -> 함수형명령형 프로그래밍 : 무엇(What)을 할 건지를 나타내기보다 어떻게(How)를 할 건지 설명하는 방식절차지향 프로그래밍 : 수행되어야 할 기능을 순차적인 처리 과정으로 진행하는 방식객체지향 프로그래밍 :
시간 복잡도는 특정 알고리즘이 어떤 문제를 해결하는데 걸리는 시간을 의미합니다. 알고리즘이 진행되는데 걸리는 실행시간이 아니라, 연산횟수라는 것에 유의해야함. 공간 복잡도란 작성한 프로그램이 얼마나 많은 공간(메모리)을 차지하느냐를 분석하는 방법입니다.시간과 공간은
1\. 오버로딩(Overloading)메서드의 이름은 같고 매개변수의 갯수나 타입이 다른 함수를 정의하는 것을 의미한다.리턴값만을 다르게 갖는 오버로딩은 작성 할 수 없다.2\. 오버라이딩(Overriding)상위 클래스의 메서드를 하위 클래스가 재정의 하는 것이다.메
RDB(Relational Database)란 관계형 데이타 모델에 기초를 둔 데이타베이스입니다. 관계형 데이타 모델이란 데이타를 구성하는데 필요한 방법 중 하나로 모든 데이타를 2차원의 테이블 형태로 표현해줍니다. 관계형 데이타 모델의 개념은 표현 개체의 외부개념 관
AWS S3는 업계 최고의 확장성과 데이터 가용성 및 보안과 성능을 제공하는 온라인 오브젝트(객체) 스토리지 서비스이다. (참고로 S 앞글자가 3개라서 S3 이라고 한다.)쉽게 말하자면, 스토리지 즉 구글 드라이브 처럼 파일 저장 서비스이며, 데이터를 온라인으로 오브젝
1\. 동기(Synchronous: 동시에 일어나는)동기는 말 그대로 동시에 일어난다는 뜻이다. 요청과 그 결과가 동시에 일어난다는 약속이다.바로 요청을 하면 시간이 얼마나 걸리던지 요청한 자리에서 결과가 주어져야 한다.순서에 맞춰 진행되는 장점이 있지만, 여러 가지
기본으로 실행하는게 자바에서 실행하는게 아니라 그래들에 실행을 위임하는게 디폴트 설정이기때문에 해당 탭으로가서 다음과 같이 수정합니다.plugin lombok을 다운 받으신 후에 해당 설정에 체크를 꼭 해주셔야 정상 동작합니다.WHEREW절을 이용동적쿼리 만들기(Boo
AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 관점 지향은 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 모듈화 하겠다는 것이다.\*모듈화 : 어떤 공통된 로직이나 기능
인덱스(Index)는 데이터베이스의 테이블에 대한 검색 속도를 향상시켜주는 자료구조이다. 테이블의 특정 컬럼(Column)에 인덱스를 생성하면, 해당 컬럼의 데이터를 정렬한 후 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장된다. 컬럼의 값과 물리적 주소를 (k
DTO(Data Transfer Object)란 계층간 데이터 교환을 위해 사용하는 객체(Java Beans)이다.Entity를 통해 DB에서 데이터를 꺼내왔지만 한 가지 문제가 있다.요청을 받고 데이터를 처리하고 반환해주기 위해선 데이터에 접근해야 하는데 여기서 Co
즉시로딩이란, 데이터를 조회할 때, 연관된 모든 객체의 데이터까지한번에 불러오는 것 입니다.EX)@xxToxx(fetch = fetchType.EAGER)다음과 같이 Member 엔티티와 Team 엔티티가 N:1 매핑으로 관계를 맺고 있습니다.JPQL로 Member 1
connection 관련 문제는 보통 아래의 에러 메시지와 함께 문제가 발생한다.에러의 내용은 트랜잭션을 만드는데 실패했고, JDBC Connection을 획득할 수 없다. hikariPool에서 커넥션을 이용할 수 없고 요청 시간이 지났다는 의미이다. 종종 hikar
이번에 프로젝트 때 QueryDsl을 처음으로 사용해봤다.사용해보니 QueryDsl의 장점으로는 다음과 같은 장점이 있는 것 같았다.기존에 작성하던 문자 형태로 코드를 작성하는것이 아니라 코드로 작성하기 때문에 에러 검출이 쉽다.동적인 쿼리 작성이 가능하다SQL과 문법
단순히 QueryDsl은 동적 검색기능으로만 생각했다.하지만 조금만 깊게 찾아보니 내 생각이 잘못되었다는 걸 깨닫고 QueryDsl의 여러 사용방법 중 하나인 projection 사용 방법을 기록하고자 한다.총 3가지 방법이 있다.1.Projections.bean 방식