반응형

Programming 362

Querydsl DTO 조회하는 방법(Projection, @QueryProjection)

Projection 연산이란, - 한 Relation의 Attribute들의 부분 집합을 구성하는 연산자입니다. - 결과로 생성되는 Relation은 스키마에 명시된 Attribute들만 가집니다. - 결과 Relation은 기본 키가 아닌 Attribute에 대해서만 중복된 tuple들이 존재할 수 있습니다. => 쉽게 Projection이란, '테이블에서 원하는 컬럼만 뽑아서 조회하는 것'이라고 할 수 있습니다. * Relation 데이터를 원자 값으로 갖는 이차원 테이블 * Column = Attribute (프로젝션 대상이 하나일 때는 그 대상의 타입으로 반환되지만, 프로젝션 대상이 둘 이상일 때는 Tuple 또는 DTO로 변환할 수 있습니다.) Querydsl DTO로 조회하는 방법(Projec..

Linux 리눅스 파일 권한에 대한 이해와 권한 변경(chmod)

'다중 사용자 운영체제에서 권한이 필요한 이유' 주로 개인이 일반적으로 사용하는 '단일 사용자 운영체제'(Single-User Operation System, 대표적으로 Windows)와는 다르게 여러 사용자들에게 서비스를 제공해주는 서버에는 '다중 사용자 운영체제'(Multi-User Operation System)가 사용됩니다. 다중 사용자 운영체제의 대표적인 것이 유닉스(Unix) 운영체제와 유닉스에서 파생된 리눅스(Linux) 운영체제이며, 다중 사용자 운영제체는 여러 클라이언트 컴퓨터에서 하나의 서버 컴퓨터에 접속을 하는데 사용되기 때문에 파일 및 디렉터리의 접근 권한을 클라이언트 계정별로 엄격하게 관리되어야 한다는 특징이 있습니다. * 리눅스에서 디렉토리는 그 디렉터리가 포함하는 파일과 하위 ..

Programming/Linux 2021.12.09

Querydsl 개념 및 Gradle 환경설정 (gradle-7.x.x)

- Querydsl 개념 및 Gradle 환경설정 QUser user = QUser.user; List result = queryFactory .select(user) .from(user) .where(user.name.eq("Jan")) .fetch(); // SELECT * FROM user WHERE user.name = 'Jan' 'Querydsl 이란?' Querydsl은 HQL(Hibernate Query Language) 쿼리를 타입에 맞게 안전하게 생성 및 관리할 수 있게 해주는 프레임워크입니다. 쉽게 자바 코드를 기반으로 SQL 쿼리를 작성해준다고도 이야기할 수 있습니다. Querydsl을 사용하는 이유는 무엇일까요? SQL은 문자이기 때문에 type-check가 불가능하고, 실행해보기 ..

Java Optional Class 기본적인 이해

java.util.Optional (Java8부터 도입) Optional is primarily intended for use as a method return type where there is a clear need to represent "no result" and where using null is likely to cause errors. A variable whose type is Optional should never itself be null. it should always point to an Optional instance. (Java SE 9 & JDK 9 / Optional API Note 참조) 옵셔널은 주로 "결과 없음"을 나타낼 필요가 분명하고 null을 사용하면 오류가 발생할..

Programming/Java 2021.12.06

Java 조건문 - if문과 switch문의 핵심

'if문과 switch문의 핵심' if문 조건식과 문장을 포함하는 블럭'{ }'으로 구성되어 있습니다. 조건식의 연산 결과에 따라서 실행할 문장이 달라지기 때문에 프로그램의 실행 흐름을 변경할 수 있습니다. -1 블럭 내의 문장이 하나뿐일 경우 괄호 '{ }'를 생략할 수 있지만 생략하지 않고 쓰는 것이 좋습니다. 이유는 나중에 새로운 문장들이 추가되면 다시 '{ }' 괄호로 문장들을 감싸줘야 하는데, 이때 괄호를 추가하는 것을 잊어버리기 쉽기 때문입니다. -2 위 이미지의 왼쪽의 코드와 같이 상반된 관계에 있는 조건식을 'if - else' 문으로 바꿨을 때의 장점은 '하나의 조건식만 계산하면 된다'는 것입니다. -3 'if - else if - else' 문에서 마지막 'else' 블럭은 생략할 수 ..

Programming/Java 2021.12.06

Java 삼항식, 삼항연산자(Conditional Operator) 사용하는 방법

삼항연산자는 전체 프로그래밍에서 언어를 불문하고 많이 사용되는 코드입니다. 프로그래밍을 하다 보면 if else 분기문을 사용하게 되는 경우가 많은데, 이때 단순한 if 문을 사용할 경우 if else 문을 대신하여 심플한 분기문을 만드는데 특화된 방식입니다. // if else 문 int bigger; if (num1 > num2) { bigger = num1; } else { bigger = num2; } // 삼항연산자 int bigger = (num1 > num2) ? num1 : num2; 예를 들어 다음과 같이 두 수를 비교하는 간단한 if 문의 경우에 삼항연산자를 사용하게 되면 코드의 라인 수가 눈에 띄게 줄어들게 됩니다. 삼항연산자는 '(조건문) ? 참 : 거짓' 형식의 문법을 가지게 되는..

Programming/Java 2021.12.02

JPA와 Spring Data JPA 구분하기

해당 포스팅은 JPA에 대해 세부적으로 다루기보다는 전체적인 개념과 함께 JPA와 Spring Data JPA를 구분하는데 초점을 두었습니다. 참고 부탁드리겠습니다. - ORM(Object Relational Mapping) JPA에 대해 알아보기 전 더 큰 개념인 ORM 부터 간단하게 살펴보겠습니다. 객체 관계 매핑(Object Relational Mapping)이란? 객체와 관계형 데이터베이스의 데이터를 ORM 프레임워크가 중간에서 자동으로 매핑해주는 것을 말합니다. (대부분의 대중적인 언어에는 ORM 기술이 존재) 객체를 객체대로 설계하고, 관계형 데이터베이스는 관계형 데이터베이스대로 설계했을 때 객체 모델과 관계형 모델 간의 불일치가 존재하는데, 이때 ORM을 통해 객체 간의 관계를 바탕으로 SQ..

NoSQL mongoDB란? (+ macOS mongoDB 설치 명령어)

- NoSQL SQL이 없다는 의미의 No가 아닌 'Not Only SQL'라는 의미로 기존 RDBMS(관계형 데이터베이스)의 한계를 극복하기 위해 만들어진 새로운 형태의 데이터베이스입니다. 빅데이터를 다룰 때 RDBMS만으로 트래픽을 감당하기 어려워져서 이를 해결하기 위해 만들어진 것으로 NoSQL은 더 유연한 방법을 통해 데이터를 관리하는 방식으로 소프트웨어 개발에 혁신으로도 불립니다. NoSQL을 사용하는 곳 중 잘 알려진 회사로는 여행 예약 사이트인 Expedia가 있습니다. * RDBMS(Relational Database Management System) 관계형 데이터베이스 관리 시스템 행과 열로 된 2차원의 Table로 데이터를 관리하는 시스템으로 Oracle, Mysql, MariaDB 등..

SpringBoot 웹소켓(WebSocket) 채팅 프로그램 파헤치기

HTTP 통신과 Socket 통신에 대해서 간단하게, HTTP(HyperText Transfer Protocal) 통신이란, HTML 파일을 전송하는 프로토콜이라는 의미로 초기에는 HTML 파일을 전송하는 것이 목적이었으나, 현재는 JSON, Image 등의 파일들도 전송이 가능합니다. HTTP 통신은 클라이언트에서 서버로 요청을 보내고, 서버가 요청에 응답하는 방식으로 통신이 이뤄집니다. 즉, 클라이언트의 요청이 있을 때만 서버가 응답하는 '단방향' 통신입니다. 반면에 Socket 통신은 두 프로그램이 서로 데이터를 주고 받을 수 있는 양쪽 프로그램 모두에 생성되는 통신 단자를 사용하는 '양방향' 통신입니다. 채팅이나 주식, 게임처럼 실시간으로 데이터를 주고 받는 경우 Connection을 자주 맺고 ..

네이버 클라우드 플랫폼 문자 발송 API 사용하기 (Spring Boot)

Simple & Easy Notification Service SMS, PUSH, 카카오 알림톡 등을 사용할 수 있는 서비스입니다. SMS의 경우 건당 9원, PUSH의 경우 건당 0.02원, 알림톡의 경우 건당 7.5원 등 비용이 발생합니다. (자세한 비용은 네이버 클라우드 플랫폼에서 확인 가능합니다.) * 월 무료 구간 (SMS 50건, PUSH 2000건)이 있기 때문에 토이프로젝트를 하며 사용해봤습니다. 문자 발송 API를 사용하기 위해 먼저 서비스에 가입을 해야합니다. 이후 Simple & Easy Notification Serive에서 프로젝트를 생성합니다. SMS API - SENS api.ncloud-docs.com 플랫폼에서 제공하는 API 사용 가이드입니다. 실제 예시 코드와 필수, 옵..

반응형