[Zsh] Oh My Zsh 자동완성 플러그인 추가 및 단축키 변경하기

Intro Shell Unix Shell은 MacOS나 리눅스 같은 유닉스 계열의 OS에서 Command Line user Interface 를 제공해주는 Command Line Interpreter 입니다. 운영체제에서 쉘 스크립트를 사용하여 시스템의 실행을 제어 하기 위해 사용하는데요. 보통은 내장 Terminal 이나 iTerm 같은 터미널 에뮬레이터를 사용하지만, 보통 서버에서는 Secure Shell (SSH) 을 통해 이루어지기도 합니다. Shell은 대표적으로 Bourne Shell(sh), Bourne Again Shell(bash), C Shell(csh), Z Shell(zsh) 등이 있는데요, 그중 zsh는 sh 를 기반으로 Bash, ksh, tcsh 등의 기능을 포함하여 여러가지 ..

IT ⁄ Computer/Mac 2022.09.29
[Kotlin] 코틀린에서 Mockito 사용시 final class 문제 해결

Intro 코틀린으로 코드를 작성하다보면 간혹가다가, 자바에서는 별 문제 없던게 의도대로 동작하지 않을 때가 있습니다. 이번에는 테스트 코드를 작성하다가 스터빙을 하려고 하는데 문제가 있었는데요, 아래와같이 테스트를 하려고 했습니다. // When val memberContext = Mockito.mock(MemberContext::class.java) Mockito.`when`(memberContext.member).thenReturn(member) quizService.edit(memberContext, quiz.id!!, quizEditDto) // Then val findById = quizService.findById(quiz.id!!) assertThat(findById.description)..

Programming/Kotlin 2022.09.25
[Kotlin] 코틀린에서 queryDSL 설정하기

Intro 자바에서도 QClass 생성은 처음 하면 꽤나 당황스러운 과정인데, 코틀린은 또 과정이 달랐기에 결과물을 기록으로 남기고자 합니다. 2022년 9월 19일 기준의 최신 라이브러리들에서 잘 작동하고 있는 방법 입니다. 설정 build.gradle.kts plugins { ... kotlin("kapt") version "1.7.10" } dependencies { ... implementation("com.querydsl:querydsl-jpa:5.0.0") kapt("com.querydsl:querydsl-apt:5.0.0:jpa") } 소스코드는 딱 위의 변경 사항만 있었습니다. 의존성 변경 후에 Shift + Command + I 키를 입력 해서 Load Gradle Changes를 해 주..

Programming/Kotlin 2022.09.19
[Spring] @PageableDefault 혹은 @SortDefault 여러 컬럼으로 정렬하기

Intro 컨트롤러를 통해 페이지 정보를 받고, 서비스 레이어 및 Persistence Layer를 통해 여러개의 데이터를 조회 할 때 종종 @Pageable Default 어노테이션을 사용합니다. 예를 들어 컨트롤러에서 @PageDefault를 아래와 같이 설정 하면 Kotlin @GetMapping fun findAll(@PageableDefault(sort = ["id"]) pageable: Pageable): ApiResponse { return ApiResponse.ok(quizService.findAll(pageable).map { quiz -> QuizDto.of(quiz) }) } Java @GetMapping public ApiResponse findAll(@PageableDefault(..

Programming/JPA ⁄ Spring 2022.09.17
[MacOS] The application can't be opened. 게이트키퍼 해제

Intro 인터넷에서 다운로드 받은 어플리케이션을 설치 할 때 마다 자주 겪는 문제가 있습니다. 바로 The application can't be opened 인데요. 보통은 간단하게 해결 되지만 그렇지 않은 경우도 있기 때문에 한번 다루어 볼 까 합니다. 보통은 동시에 위와 같은 경고가 뜨게 되는데요. Apple이 악의적인 프로그램인지를 체크 할 수가 없으니 맥북이 스스로 방어를 해 내는 것 입니다. 일반적인 소프트웨어들을 다운받아서 사용할 때는 왠만해서는 볼 일이 없지만, 개발자용 베타 프로그램등을 사용 하다 보면 종종 볼 수 있습니다. 저도 이번에 사용하던 Mac Mouse Fix 가 새로운 3.0.0 BETA 버전이 나왔길래 테스트 해 보려고 하다보니 해당 문제에 봉착 했습니다. 해결 Op..

IT ⁄ Computer/Mac 2022.09.17