전체 글

전체 글

    [QueryDSL] JPA에서 MySQL 비트연산하는 방법

    [QueryDSL] JPA에서 MySQL 비트연산하는 방법

    서비스를 개발하다보면 쿼리에서 비트 연산이 필요한 경우가 종종 발생합니다. 이 때 MyBatis를 사용한다면 문제가 되지 않지만, JPA와 QueryDSL을 사용하고 있다면 이들이 비트 연산 기능을 제공하지 않고 있기 때문에 문제가 발생합니다. 이번 포스팅에서는 제가 MySQL + JPA + QueryDSL 환경에서 비트연산을 구현하는 과정과 결과를 소개하려고 합니다. 예시 상황 요구사항 사용자는 자신이 관심있는 취미를 여러개 선택해 저장할 수 있습니다. 관리자는 특정 취미를 선택한 사용자 목록을 조회할 수 있습니다. 샘플 코드 취미 옵션(HobbyType) @Getter @AllArgsConstructor public enum HobbyType { READING(1), SPORTS(2), MUSIC(4..

    [코틀린 완벽 가이드] 3장 : 함수 정의하기

    [코틀린 완벽 가이드] 3장 : 함수 정의하기

    함수 코틀린 함수의 구조 import kotin.math.PI fun circleArea(radius :Double) :Double { return PI * radius * radius } fun main() { print("Enter radius : ") val radius = readLine()!!.toDouble() println("Circle area is ${circleArea(radius)}") } fun 키워드는 컴파일러에게 함수 정의가 뒤따라온다는 사실을 알려준다. 변수 이름과 마찬가지로 아무 식별자나 함수 이름으로 쓸 수 있다. 괄호로 둘러싸여 있는 콤마(,)로 분리한 파라미터 목록이 온다. 반환 타입(:Double)은 함수를 호출한 쪽에 돌려줄 반환값의 타입이다. 함수 본문은 {}로 감..

    [코틀린 완벽 가이드] 2장 : 코틀린 언어 기초

    [코틀린 완벽 가이드] 2장 : 코틀린 언어 기초

    기본 문법 주석 한 줄 짜리 주석 : //로 시작하며 줄이 끝나면 주석도 끝난다. 여러 줄 주석 : /*로 시작하고*/로 끝난다. KDoc 여러 줄 주석 : /**로 시작하고 */로 끝난다. 자바와 달리 코틀린에서는 여러 줄 주석을 여러 번 내포시킬 수 있다. /* * 여러 줄 주석 /* 주석 안에 내포된 주석 */ */ println("Hello") // 한 줄 주석 변수 정의 val timeInSecond = 15 val 키워드 : 값을 뜻하는 value 에서 유래했다. 변수 식별자 : 새 변수에 이름을 부여하고 나중에 이를 가리킬 때 사용한다. 변수의 초깃값 : = 기호 뒤에 온다. 코틀린에서는 줄 끝에 세미콜론을 생략해도 된다. 위 코드는 변수 타입을 지정하지 않았는데도 프로그램이 성공적으로 컴파..

    [코틀린 완벽 가이드] 1장 : 강력하고 실용적인 코틀린

    [코틀린 완벽 가이드] 1장 : 강력하고 실용적인 코틀린

    코틀린이란 무엇인가? 코틀린은 안전성, 간결성, 상호 운용성을 강조하는 다중 패러다임, 다중 플랫폼 프로그래밍 언어이며 자바 가상 머신(JVM), 안드로이드, 자바스크립트, 네이티브 애플리케이션 등과 같은 여러 플랫폼을 지원한다. 안전성 코틀린의 설계 목표 중 하나는 언어의 안전성에 관한 트레이트 오프의 황금비를 찾아내는 것이었다. 즉, 자바보다 더 안전성을 보장하는 언어를 설계하되, 자바보다는 개발자의 생산성을 덜 해치는 언어를 만드는 것이었다. 타입 추론(type inference)으로 인해 개발자가 명시적으로 타입을 지정하지 않아도 된다. Null 이 될 수있는 타입(nullable type)을 통해 null 의 사용을 제한할 수 있고, 악명 높은 NullPointerException 예외를 좀 더..

    막쓰는 기록

    막쓰는 기록

    #코로나_확진 결국 3월 말에 코로나에 걸렸다. 증상이 심하지는 않았고 목감기 정도였지만 강제로 일주일 넘게 방 안에 갇히니까 힘들었다. 코로나 아니어도 원래 집에서 잘 안 나오는데 자의가 아니고 갇히니까 나가고 싶어서 몸이 근질근질했다. 그리고 한창 증량중이었는데 체중도 2kg 정도 빠졌다. 후... 그나마 다행인 건 내장지방 위주로 감소했다는 거? 할 게 없어서 넷플릭스로 귀멸의 칼날을 정주행 했다. 사실상 호흡의 칼날이라고 부르는 게 맞는 듯. 재미는 있다. #격리해제 #여의도 #클라이밍 자가격리가 끝난 뒤가 마침 생일이라 친구들과 한강으로 놀러 갔다. 평일이었는데도 사람이 진짜 많았다. 아니 이 사람들은 출근 안 하나... 별거 한건 없고 그냥 돗자리 펴고 앉아서 먹고 떠들었다. 꽃은 많이 폈더라..

    Onion Architecture란?

    Onion Architecture란?

    Onion Architecture 란? Onion Architecture는 제어의 역전 원칙을 기반으로 도메인 및 서비스 계층을 애플리케이션의 중심에 배치하고, 인프라스트럭쳐를 외부에 배치하는 아키텍처입니다. Onion Architecture는 기존의 3 계층 아키텍쳐와 같이 데이터 계층에 의존하지 않고 실제 도메인 모델에 의존합니다. 기존의 3계층 아키텍처는 모든 계층이 Data Access 레이어 위에 존재해 해당 레이어에 변경사항이 발생하면 모든 레이어에 변경이 발생하는 단점이 있습니다. 반면, Onion Architecture에서는 데이터베이스 유형에 따라 달라지지 않는 저수준의 객체 모델만이 존재하며, 데이터베이스의 실제 유형과 데이터 저장 방법은 Infrastructure 계층에서 결정됩니다...

반응형