본문 바로가기

분류 전체보기270

자바 싱글톤 VS 스프링 싱글톤 자바의 싱글톤 생성자를 private로 선언 = 외부에서 클래스의 인스턴스 생성 불가 static 선언 = 어느 영역에서든 접근 가능 classloader에 의해 어플리케이션 runtime시 단 한번만 인스턴스화 한다. Thread Safety를 보장하는 싱글톤 구현 public class Singleton{ private static Singleton instance; // 생성자 private Singleton(){} // thread safety getter public static synchronized Singleton getInstance(){ if(instance == null){ instance = new Singleton(); } return instance; } } 자바 싱글톤은 get.. 2020. 10. 22.
[ActiveMQ] ActiveMQ 란? (feat. 여러 MQ 정리) JMS, MOM 나도 드디어 MQ를 사용한 프로젝트를 할 일이 생겼다..! 그렇다면 MQ에 대해서 공부를 해야겠지? ㄱㄱ 메세지 큐를 사용하는 이유 기존의 동기식 통신 방식은 사용자로부터 받은 요청을 전부 처리할 때까지 Blocking 상태에 빠지게 된다. 요청이 전부 처리되어야 사용자에게 응답을 주고 다시 요청을 받을 수 있다. 하지만 메세지 큐 사용 시 요청을 큐에 넣기만 하면 다음 사용자의 요청을 받아들일 수 있게 된다. activeMQ JMS(Java Message Service) 클라이언트와 함께 자바로 작성된 오픈 소스 메시지 브로커 하나 이상의 클라이언트나 서버로부터 통신을 조성시키는 엔터프라이즈 기능들을 제공 자바 및 기타 여러 언어 간 클라이언트 지원 - 위키피디아 - JMS 자바 기반의 MOM API .. 2020. 10. 19.
[AWS] error='메모리를 할당할 수 없습니다' (errno=12) 에러 error='메모리를 할당할 수 없습니다' (errno=12) 에러 aws에 git을 설치하는 과정에서 아래와 같은 에러가 발생했다. OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00007f5dbbe00000, 262144, 0) failed; error='메모리를 할당할 수 없습니다' (errno=12) 에러 순간 싸늘한 기운이 뇌리를 스쳤다..! 프리티어 인스턴스의 메모리 한계가 여기까지인가? 다행히 해결 방법이 존재했다. 원인은 당연히 메모리 공간이 부족하여 설치하지 못한다는 에러였다. SWAP 공간을 통해서 메모리를 파티셔닝 함으로써 여유 공간을 확보 할 수 있다. 내 서버의 SWAP 공간이 0B였고 git을 설치하기에는 턱없이 부족한.. 2020. 9. 6.
[Spring] SpringBoot + Gradle(5.x && 6.x) + Querydsl Setting SpringBoot + queryDsl Setting 총정리 스프링 버전 : 2.2.6 그래들 버전 : 6.4.1 QueryDsl 의존성을 추가해주고 프로젝트를 빌드했지만, 아래와 같은 에러가 빈번했다. 큐 클래스가 생성이 안됨 cannot find symbol q class 2.큐 클래스가 생성은 됐지만, 중복됨 duplicate class 장장 5일정도는 셋팅만하느라 시간을 허비한 것 같다. 처음 queryDsl 설정은 이동욱님의 블로그를 보고 참고해서 작성했었다. 첫 셋팅은 대략 아래와 같았다. 구글링을해봐도 거기서 거기인듯하다. buildscript { ext{ springBootVersion = '2.2.4.RELEASE' querydslPluginVersion = '1.0.10' } repos.. 2020. 9. 6.
[Git] 새로운 Repository에 현재 Repository를 복사하는 방법 질문을 하기위해서 에러가 발생했던 시점에 대해 새로운 Repository를 만들어 링크를 공유해줘야 할 일이 생겼다. 아무 생각없이 새로운 Repo를 만들고, 해당 시점 커밋을 체크아웃받았다. 잠깐만, 변경 사항이 없으니까 이대로는 못올리잖아? 구글링 gazzzuaaa 역시 나와 같은 사람들이 많았다. ㅎ git에서 mirror라는 명령어를 제공해준다. 거울 처럼 똑같이 복사한다는 뜻에서 만들어 놓은 것 같다. 명령어 git push --mirror https://github.com/n1tjrgns/postgresqlQ-A.git 끝~ 2020. 8. 13.
[Spring] SpringBoot + Gradle + NPM Build 셋팅하기 프론트엔드 라이브러리의 경우 url을 사용해서 참조하는 경우가 많은데, 해당 서버에 장애가 발생하거나 url이 변경되는 경우에 나의 프로젝트에까지 영향을 미치게된다. 그래서 이번시간에는 해당 라이브러리들을 npm install로 다운 받아 gradle 내에서 같이 build 되도록 하는 방법을 공유하려한다. 버전 OS : Mac 스프링 : 2.2.4 RELEASE 그래들 : 6.4.1 프론트엔드 라이브러리 설정 NPM 선호 고려해야하는 사항 빌드, 버전관리, 시큐리티 설정 프로젝트 resources/static 경로로가서 npm init 엔터를 입력하다보면 init이되고 package.json이 생성된다 npm install bootstrap //bootstrap 설치해주고 설치를했으면 css를 boot.. 2020. 8. 12.