반응형

전체 글 169

[intellij] No candidates found for method call ""

가끔 intellij build.gradle 파일에서 No candidates found for method call "" 에러가 뜰 때가 있습니다. 정확한 원인은 파악하지 못하고 해결을 해버렸습니다. 제 생각으로는 설정값이 꼬여서 발생한 문제 같아보였습니다. ( 정확하지 않습니다. ㅠ ) 해결 방법 Command + Shift + A 을 누릅니다. reload를 검색한 후 Reload All Gradle, sbt, BSP Projects 를 클릭해주세요. 그럼 정상적으로 돌아옵니다!

TroubleShooting 2020.11.22

flyway. DB 형상관리 및 다양한 기능을 제공! 재택근무 시 유용해요! 1탄

이번글에서는 flyway에 대해서 알아보겠습니다. 모든 소스는 github에 올려두었습니다. 요즘 코로나로 인해 재택근무가 많아지는 상황입니다. 저도 재택근무를 한번 해봤는데 집에서 로컬 db 환경으로 작업해야하는 상황이 있었습니다. 물론 슬랙으로 동료분들과 db 변경사항을 공유했지만 누락되는 내용도 있었고 각자 로컬 db 스키마 정보가 달라서 작업하는데 어려움이 있었습니다. 이럴경우 아주 유용한 것이 flyway입니다. flyway는 다양한 기능을 제공해줍니다. 하나씩 살펴보겠습니다. flyway 간단하게 데이터베이스 형상관리 툴이라고 생각하시면 됩니다. 다양한 환경에서 적용이 가능합니다. 전 spring boot, mysql 환경에서 적용해보았습니다. 작동원리 형상관리는 table로 이루어지고 있습니..

Develop/database 2020.11.21

조회수 100을 넘기며

어느덧 블로그를 시작한지 이주가 지나가네요. 처음 유입경로 구글을 보고 좋아했었는데 정확히 이주째에 조회수 100을 넘겼네요. 전 기억력이 좋지 않은편이라고 생각했고 정리하는 김에 나중에 내가 다시봐도 최대한 이해하기 쉽게 써야겠다고 다짐하면서 글을 작성했습니다. 개발자는 코드로 말하는 직업이니 예제소스도 힘닿는데까지 넣고 있습니다 :) 앞으로도 1일 1블로그를 목표! 얼마나 갈지...

MindControl 2020.11.20

[ObjectMapper] Convert!! snake to camel, camel to snake

Restful API를 사용하다 보면 내가 만든 vo와 값이 다르게 넘어올 때가 있습니다. 그땐 vo.set.. vo.set.. vo.set... ObjectMapper를 사용하면 편리합니다. 모든 소스는 github에 있습니다. 개발자는 코드로 보는게 이해가 빠를 듯하여 코드위주로 작성하겠습니다. build.gradle plugins { id 'org.springframework.boot' version '2.3.4.RELEASE' id 'io.spring.dependency-management' version '1.0.10.RELEASE' id 'java' } group = 'com.example' version = '0.0.1-SNAPSHOT' sourceCompatibility = '1.8' co..

Develop/java 2020.11.19

실전 자바 소프트웨어 개발 정리 - 3

모든 소스는 github에 올려두었습니다. 문서 관리 시스템 목표 문서 관리 기능 설계의 핵심은 상속 관계, 즉 어떻게 클래스를 상속하거나 인터페이스를 구현하는가에 달렸다. 문서관리 기능을 제대로 설계하려면 리스코프 치환 원칙을 알아야한다. 언제 상속을 사용해야 하는지와 관련해서는 '상속보다 조합' 원칙도 알아야한다. 유지보수가 쉽고 좋은 테스트를 만드는 방법을 활용해 기존에 배운 자동화된 코드 구현 지식을 확장한다. 설계 다양한 방법으로 설계가 가능하므로 다양한 설계와 모델링 중 한 가지를 선택한다. 테스트 주도 개발(TDD)은 프로그램을 시작하는 아주 좋은 방법 중 하나이며 이미 예제를 풀어보면서 사용한 방법이다. 임포터 다양한 종류의 문서를 임포트하는 것이 문서 관리 시스템의 핵심 기능이다. 파일의..

Study/java 2020.11.18

[Intellij] 유용한 plugin 소개

회사 복지(?) 덕분에 intellij 를 사용하고 있습니다.유용한 plugin이 개발 생산성을 크게 높여줍니다! 실제 제가 사용하는 plugin을 소개하겠습니다. 사용하는 플러그인 목록입니다.CodeGlanceCodotaGrep ConsoleRainbow BracketsSonarLint한개씩 살펴보겠습니다. CodeGlance코드 미니맵 기능이라고 생각하시면 됩니다. CodotaAI가 코드를 추천해줍니다. 자동완성 기능에 AI 기반으로 코드를 추천해줍니다. Codota 아이콘 모양의 3가지가 추천해주는 코드입니다.오른쪽에 퍼센트는 실제 개발자들이 사용하는 퍼센트를 보여주고 있습니다. String 입력 후 Get relevant examples 클릭하면 우측에서 예제소스를 보여주고 있습니다. 실제로 코딩..

Develop Tool 2020.11.17

Spring Data JPA, Querydsl 로깅처리. p6spy 원하는 로그만 출력하기

바로 여기로 오셨다면 이전 글을 참조해주세요. 왜 p6spy를 선택했는지와 분석하는 이유에 대해서 정리해놓았습니다. jpa, querydsl 적용 시 로깅 비교. querydsl로 작성한 쿼리 DBMS에서 쉽게 돌리는 방법. 1탄! jpa, querydsl을 사용했을 때 불편한 점과 해결 방법(로깅) 및 로깅의 종류에 간략하게 알아보았습니다. jpa, querydsl 적용 시 로깅 비교. querydsl로 작성한 쿼리 DBMS에서 쉽게 돌리는 방법. 2탄! p6spy 적용방법을 알아보았습니다. Spring Data JPA, Querydsl 로깅처리. p6spy pretty하게 설정하기 p6spy 로깅 출력을 pretty 적용 이번 글에서는 p6spy를 사용하는데에 편리한 설정들이 뭐가 있는지 알아보는 과..

Develop/spring-data 2020.11.16

실전 자바 소프트웨어 개발 정리 - 2

모든 소스는 github에 올려두었습니다. 입출금 내역 분석기 확장판 목표 코드베이스에 유연성을 추가하고 유지보수성을 개선하는 데 도움을 주는 개방/패쇄 원칙(open/closed principle (OCP)) 을 배운다. 언제 인터페이스를 사용해야 좋을지를 설명하는 일반적인 가이드라인과 높은 결합도를 피할 수 있는 기법도 배운다. 자바에서 언제 API에 예외를 포함하거나 포함하지 않을지를 결정하는 자바의 예외 처리 방법을 배운다. 메이븐, 그레이들 같은 검증된 빌드 도구를 이용해 자바 프로젝트를 시스템적으로 빌드하는 방법도 배운다. 개방/패쇄 원칙 특정 금액 이상의 모든 입출금 내역을 검색하는 메서드를 구현해보자. 간단한 findTransactions() 메서드를 포함하는 BankTransactionF..

Study/java 2020.11.15

실전 자바 소프트웨어 개발 정리 - 1

책을 읽으며 소스는 github에 올려두었습니다. 이 글에서는 프로젝트( 입출금 내역 분석기 )를 만들면서 SRP에 대해서 알아보겠습니다. KISS 원칙 keep it short and simple 응용프로그램 코드를 한 개의 클래스로 구현한다. 코드 유지보수성과 안티 패턴 코드 유지보수성을 높이기 위해 노력해야한다. 특정 기능을 담당하는 코드를 쉽게 찾을 수 있어야 한다. 코드가 어떤 일을 수행하는지 쉽게 이해할 수 있어야 한다. 새로운 기능을 쉽게 추가하거나 기존 기능을 쉽게 제거할 수 있어야 한다. 캡슐화(encapsulation)가 잘 되어 있어야 한다. 즉 코드 사용자에게는 세부 구현 내용이 감춰져 있으므로 사용자가 쉽게 코드를 이해하고, 기능을 바꿀 수 있어야한다. 새로운 요구 사항이 생길 때..

Study/java 2020.11.14

실전 자바 소프트웨어 개발

www.yes24.com/Product/Goods/90533758 실전 자바 소프트웨어 개발 실전 프로젝트로 배우는 최신 자바 개발 기법 레벨업 가이드 이제 막 경력을 쌓기 시작한 자바 개발자가 최신 소프트웨어 개발 방법까지 알기란 벅찬 일이다. 테스트 주도 개발 같은 객체지향 www.yes24.com 실전 프로젝트에 쓰이고 있는 자바 다루는 방법에 대해 기술한 책입니다. 읽어보고 정리해보겠습니다!

Study/java 2020.11.13

Spring Data JPA, Querydsl 로깅처리. p6spy pretty하게 설정하기

바로 여기로 오셨다면 이전 글을 참조해주세요. 왜 p6spy를 선택했는지와 분석하는 이유에 대해서 정리해놓았습니다. jpa, querydsl 적용 시 로깅 비교. querydsl로 작성한 쿼리 DBMS에서 쉽게 돌리는 방법. 1탄! jpa, querydsl을 사용했을 때 불편한 점과 해결 방법(로깅) 및 로깅의 종류에 간략하게 알아보았습니다. jpa, querydsl 적용 시 로깅 비교. querydsl로 작성한 쿼리 DBMS에서 쉽게 돌리는 방법. 2탄! p6spy 적용방법을 알아보았습니다. 이번 글에서는 p6spy를 사용하는데에 편리한 설정들이 뭐가 있는지 알아보는 과정과 적용하는 것까지 정리하겠습니다. 작성된 글의 소스 코드는 github에 올려두었습니다. JPA, Querydsl 설정 방법은 아래..

Develop/spring-data 2020.11.13

jpa, querydsl 적용 시 로깅 비교. querydsl로 작성한 쿼리 DBMS에서 쉽게 돌리는 방법. 2탄!

이전 글 ( jpa, querydsl 적용 시 로깅 비교. querydsl로 작성한 쿼리 DBMS에서 쉽게 돌리는 방법. 1탄! ) 에서 jpa, querydsl을 사용했을 때 불편한 점과 해결 방법(로깅) 및 로깅의 종류에 간략하게 알아보았습니다. 이번 글에서는 최종적으로 선택된 로깅 방법인 p6spy에 대해서 정리하겠습니다. 작성된 글의 소스 코드는 github에 올려두었습니다. JPA, Querydsl 설정 방법은 아래 링크를 참조해주시면 됩니다! JPA에 대해서 궁금하시면? JPA란? JPA 시작 그리고 예제 JPA 테스트 코드로 알아보자! Querydsl에 대해서 궁금하시면? Querydsl란? Querydsl 사용해보자. ( 설정편 ) Querydsl plugin 실행방법 Querydsl 사용..

Develop/spring-data 2020.11.12

Querydsl 사용시 Mysql에서 생성한 Function 호출하는 방법

Querydsl 사용할 때 Mysql에서 생성한 Function을 호출해야할 경우가 있습니다. 어떻게 호출해야하는지 정리하겠습니다. 모든 소스는 github에 있습니다. 저 같은 경우는 기존 프로젝트를 MyBatis로 진행하여 Mapper.xml 에 쿼리를 작성하였습니다. 그리고 이제는 Spring Data JPA와 Querydsl 을 사용하기로 결정되었습니다. 그래서 과거에 Mysql function을 사용하던 것들을 자바 코드에서 해결을 해야했습니다. 처음엔 mysql function의 기능을 자바 코드로 옮길 생각이었으나, 그러면 관리포인트가 2개로 늘어나기때문에 querydsl에서 function 호출하는 방법이 필요했습니다. 그래서 정리하게 되었습니다. MySQL Function 만들기 crea..

Develop/spring-data 2020.11.11

[intellij] module not specified

한참 잘하고 있던 프로젝트의 명과 workspace 폴더명을 바꾸고 나서부터 실행이 안되는 현상입니다. 에러는 Module not specified 이었습니다. 여기서 아래의 그림을 보시면 Module을 찾을 수 없다는 문구를 볼 수 있습니다. no module로 표기된 셀렉트 박스를 클릭하여 선택하면 정상적으로 실행됩니다. workspace 폴더명을 바꾸면서 module 경로를 잃어버려서 생긴 문제였습니다!

TroubleShooting 2020.11.10
728x90
반응형