코드를 작성하다보면 내가 코드를 제대로 작성하는지, 어디를 고쳐야할지 잘 모르는 경우가 있다. 이는 자만이라기보다는 계속 코드를 보다보면 결국 코드에 익숙해져서 고칠 점을 못 찾는 것이데, 이럴 때 개발자들은 코드리뷰를 하곤 한다. 하지만 일일이 시간을 잡아서 누군가에게 코드 리뷰를 해달라고 할 여건이 안 될 경우에는 코드 리뷰를 잘 못한다. 그래서 자동으로 코드를 분석하고 코드의 수정할 점을 알려주는 앱들이 이것저것 세상에 나왔다. 그 중 하나가 Sonalint이다. SonarLint란 Sonalint, 소나린트는 코드를 분석해서 어디를 고치면 좋을 지 등 단순한 코드 리뷰를 해주는 앱이라고 생각하면 된다. 전체적인 로직에 대한 분석은 불가하고 코드 자체에 대한 정적인 분석만 진행하는 앱으로 단순히 말..
예전에 커스텀 어노테이션을 만드는 방법에 대해 글을 정리했었다. https://pamyferret.tistory.com/47 custom annotation(커스텀 어노테이션) 만들기 개발을 하다보면 AOP 적용을 위해서 별도로 커스텀 어노테이션을 만들어야할 일이 생긴다. 물론 AOP 적용을 패턴을 통해 적용시킬 수 있지만 같은 공통 기능을 사용해야하는 메소드들에 공통점이 pamyferret.tistory.com 그 때 만들었던 커스텀 어노테이션은 단순히 속성 값을 하나만 받는 어노테이션이었다. 하지만 만일 하나의 속성에 대해 값을 여러 개 받아야하는 경우 어떻게 해야할까? 그럴 때는 해당 속성의 타입을 배열로 지정하면 간단하게 끝날 일이다. 참고로 List와 같은 컬렉션은 어노테이션의 멤버로 설정이 불..
Aurora DB의 경우 프리티어로 사용이 불가해 실습은 할 수 없지만 Aurora DB 클러스터가 어떻게 동작하는지에 대해 정리하기 위해 이 글을 쓴다. Aurora란 aws에서 제공하는 rbd로 MySQL과 PostgreSQ과 호환되는 두 버전이 있다. aws에는 Aurora말고도 MySQL, MariaDB, PostgreSQL, Oracle, Microsoft SQL Server 이렇게 다른 rdb도 지원을 하지만(유료의 경우 라이센스 비용 별도) Aurora와는 차이가 있다. Aurora의 경우는 다른 일반적인 rdb들과 달리 DB 클러스터를 자동화해 제공한다는 차이점이 있다. 이 때 용량 유형을 프로비저닝과 서버리스 둘 중 하나를 선택할 수 있는데 프로비저닝을 선택하면 클러스터 용량을 수동으로 ..
mac에서 aws ec2에 ssh 접속을 하기 위해서는 터미널에 ssh 접속 명령어를 쳐서 접속해야한다. 윈도우에서는 putty를 사용해서 ssh 접속 정보를 저장해서 사용할 수 있는데 mac에도 putty와 같은 앱이 없을까 앱스토어에서 찾아보니 terminus라는 앱이 나왔다. terminus앱은 무료로 사용할 수 있고 추가적인 기능 사용을 원할 경우 유료로 결제해 사용하면 된다. 간단한 ssh 접속 및 포트 포워딩 기능은 무료로 충분히 사용 가능하다. terminus로 ssh 접속하기 mac에서 터미널로 ec2에 ssh 접속할 때마다 명령어를 입력해야해서 귀찮았던 부분이다. terminus를 이용하면 putty처럼 접속 정보를 저장해놓고 클릭으로 호출할 수 있다. 1. Hosts > NEW HOST..
작년에 처음 IntelliJ IDEA를 사용하기 시작하면서 이클립스와는 다른 단축키들을 익혔었다. 그 중 하나가 Gradle Project를 Gradle로 빌드 할건지 IntelliJ IDEA로 빌드할 것이지 설정이었다. 처음에는 기본 설정인 Gradle 빌드로 사용하다가 IntelliJ IDEA가 빠르다는 지인의 추천을 듣고 IntelliJ IDEA로 바꿔서 사용했다. (참고로 이 설정은 IntelliJ Preferences(mac 단축키: command + ,) > Build, Execution, Deployment > Build Tools > Gradle에서 확인할 수 있다.) 잘 사용하던 중 Deprecated 처리 객체들을 정리하고 프로젝트를 실행시키니 갑자기 전에 지웠던 객체에서 내가 방금 지..
gcp(Google Cloud Platfom)만 써보다가 현회사 및 앞으로 aws를 많이 써볼 것으로 예상되어 aws에 익숙해지고 aws의 여러 기능들을 직접 사용해보는 연습을 해봐야겠다는 생각이 들어 차근차근 해보기로 했다. AWS 프리 티어 우선 여느 플랫폼이 그렇듯이 aws에서도 일종의 트라이얼인 프리 티어를 제공한다. 즉, aws에서 정해준 기준 내에서 무료로 AWS를 사용할 수 있는 것이다. https://aws.amazon.com/ko/free/ 무료 클라우드 컴퓨팅 서비스 - AWS 프리 티어 Q: AWS 프리 티어란 무엇입니까? AWS 프리 티어는 고객에게 서비스별로 지정된 한도 내에서 무료로 AWS 서비스를 살펴보고 사용해 볼 수 있는 기능을 제공합니다. 프리 티어는 12개월 프리 티어,..
* 이 내용은 이펙티브 자바 12장 아이템 90의 내용을 토대로 작성되었다. 직렬화의 위험성 기본적으로 객체를 직렬화 한다면 implements Serializable을 많이 사용한다. implements Serializable을 사용해 자동으로 객체는 바이트 스트림으로 직렬화 하고 그것을 역직렬화 하는데 이 때 공격자는 바이트 스트림을 수정해 객체에서 외부에서 접근 불가하게 private으로 선언된 값을 참조할 수 있으며 수정해 불변식을 깨뜨릴 수 있다. 예를 들어 아래와 같이 기간을 저장하는 Period라는 클래스가 있다고 하자. public class Period implements Serializable { private final Date start; private final Date end; ..
- Total
- Today
- Yesterday
- 데이터베이스
- 공간데이터
- PostgreSQL
- DB
- mockito
- 스프링부트
- Spring
- cache
- enum
- 캐싱
- 이클립스
- springboot
- postgres
- 자바
- Caching
- 메시지큐
- MAC
- JPA
- HttpClient
- rabbitmq
- 어노테이션
- Intellij
- ssh
- 캐시
- annotation
- eclipse
- DATABASE
- 역직렬화
- Java
- k8s
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |