[TIB] spock으로 테스트를 짜고 있는데
·
devlog/TIL
TIB = Today I Babble 일단 groovy 스크립트는 매우 생소하다. 자바같이 생겼는데.. 조금 다른것 같기도하고. spock 은 where 절 쪽 빼면 사실 간결한걸 잘 모르겠다. 내가 아마 이제 막 사용하기 시작해서 그러는 것 같다. 흠 일단 문제에 봉착한것은 이것: groovy script 에서 kotlin test class 를 사용하기. 생각보다 설정이 복잡? 한것같다. 자꾸 unable to resolve class 라고 한다. 뭐가 잘못되었는지 모르겠따. compileTestGroovy 할때 kotlin test class 경로도 잘 잡아줬는데.. 무엇이 문제일지 감도 안온다. 일단 도움은 해당 stackoverflow 포스트에서 받았는데. 해결은 뭐 안되었다. https://s..
Spring Data JPA Property Expressions
·
BE/spring
궁금증이 들게한 코드 fun findByMallNoAndIssuableConstraintPromotionCode(mallNo: Int, promotionCode: String): ListJPA 에서 객체안의 필드들로 조건을 걸려면 _ (언더스코어) 로 해야한다고만 알고있었는데 아니었다. 알고보니 위와 같이 조건-객체필드 조합으로 작성하면 객체안의 필드를 조건으로 걸 수 있다.  조건-객체필드 조합으로 작성하면, 내부적으로는 다음과 같이 필드를 탐색한다.  탐색대상: findByMallNoAndIssuableConstraintPromotionCode객체 필드1차 findByMallNoAndIssuableConstraintPromotionCode2차 findByMallNoAndIssuableConstrai..
[Hashkell] 하스켈이란? 하스켈 설치방법, 실행방법
·
devlog/programming language
하스켈 이란? 순수한 함수형 프로그래밍 언어이다. 함수형 프로그래밍 언어는 컴퓨터에게 해야하는 작업을 알려주는 것이 아닌 (명령형 프로그래밍 언어), 작업이 무엇인지를 알려주는 언어이다. 예를 들면 팩토리얼은 1부터 N까지의 숫자를 모두 곱하는 작업이라고 알려주는 것처럼, 이러한 작업들을 함수로 표현할 수 있다. 함수형 프로그래밍에서는 변수의 값을 변경할 수 없다. 그렇기 때문에, 함수가 하는 일은 주어진 작업을 계산하고 그 결과를 반환하는 일만 하면 된다. 절차형 프로그래밍 언어처럼 변수의 값을 변경할 수 없고, 함수는 결과를 반환하는 일만 하면 되므로 주어진 매개변수가 동일하다면 동일한 결과를 보장하는 특징도 가진다. (=참조 투명성) 하스켈은 느긋한 언어이다. 이것은 함수의 결과값이 표현되어야 할때..
[AWS-EC2] EC2 에 접속이 불가능 할때 서버 이전 방법
·
DevOps/aws
AWS EC2를 사용하다가 보면 알 수 없는 이유로 서버에 접속이 불가능 해지는 경우가 종종 있다. 나의 경우는 지금까지 두가지 케이스를 경험했는데, 1. public key 가 변조되어 접속할 수 없음. 2. port 22가 닫혀있음. 잘 사용해왔고, 정상접근이 어제까지만 해도 가능했던 서버였는데 갑자기 이런 경우가 발생할 수 있다. 접근권한을 잃게 된 서버에 대해서는 AWS에서 해결방법이 딱히 없다. 아마 free-tier나 고객지원 서비스를 사용하지 않는 경우에는 그런 것 같다. 나의 경우에는 현재 free-tier를 사용하고 있기 때문에, 내가 가이드를 읽고 문제 해결을 하였다. 1번의 경우는 해킹으로 의심되는 사항으로 나의 ssh key가 변조되어 서버 접근권한을 잃은 경우였다. 그때도 2번의 ..
갑자기 travis-ci 배포가 되지 않을 때.
·
DevOps/cicd
그렇다. 맹세코 아-무것도 수정하지 않았는데 어느날 부터 배포신호에 빨간불이 들어오기 시작했다. 이유를 찾을 수가 없었다. .travis.yml 파일은 배포설정 초기에 만진것 이외에는 사실 고칠일이 전혀 없는 파일이기 때문이다. 문제 해결 시도 -> travis-ci 문의 예전에도 비슷한 장애?경험을 한 지라 망설이지 않고 바로 travis-ci customer support에 문의를 보냈다. 그들은 언제나 그랬듯 친절하게 대답해줬다. v2를 사용하기 위해서는 edge:true 프로퍼티를 추가해서 다시 빌드를 돌려봐 달라는 대답이 왔다. 여기서 말하는 v2란, 현재 글을 쓰는 시점에는 major release로 나가지 않은 버전이다. (참고: https://docs.travis-ci.com/user/de..
[TIL] ExecutorService / Event Driven Programming / Bulk Insert / DiscriminatorValue / AuditingEntityListener
·
devlog/TIL
TIL = Today I Learned | 알게된 내용, 현재로서는 잘 모르겠는 내용을 적는 포스트 Event driven programming - contd 이것에 대해서 잘 모르겠다! 일단은 이 article을 봤음 https://engkimbs.tistory.com/827 ExecutorService (let's deep dive) 코드리뷰를 하다가 이런 클래스를 봤다. threadpool을 정해진 개수만큼 유지하고, concurrent programming 을 할 수 있도록 도와주는 service 인 것 같다. java.util.concurrent 패키지에 있는 것을 보고 추측함. newFixedThreadPool 이거는 정해진 thread count 만큼 pool 을 유지하고 (shared un..
서버에서 rm 커맨드가 없다고 할때 / rm command not found
·
DevOps/devops
[ec2-user@### apps]$ rm filebeat-7.3.0-x86_64.rpm -bash: rm: command not found [ec2-user@### apps]$ echo $PATH /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/ec2-user/.local/bin:/home/ec2-user/bin 무슨 이유에서 인지 aws ec2서버에서 rm command가 없다는 것을 알게 되었다. 띄워진 instance의 OS는 CentOS. 아래의 command를 실행하면 coreutils에서 빠진 것을 리스트 해준다. [ec2-user@### travis]$ rpm -V coreutils missing..
It is currently in use by another Gradle instance
·
devlog/TIL
해결방법 에러로그에 찍힌 해당 .lock 파일을 직접 제거해 준다. log level을 --info로 하고 console에 살펴보면 .lock 파일의 절대경로를 알려준다. 해당 파일을 제거해주고 다시 gradle 태스크를 실행하면 정상동작 하는 것을 확인 할 수 있다. 혹시 다른 .lock 파일들도 제거하고 싶다면 다음과 같은 command로 제거하면 된다 find ~/.gradle -type f -name "*.lock" -delete 출처: 다른 .lock파일 한꺼번에 제거 -> https://stackoverflow.com/questions/21523508/it-is-currently-in-use-by-another-gradle-instance