본문 바로가기
반응형

Language/☕️Java12

StringBuffer에서 Thread safe의 원리 및 Example Sample Code를 통한 고찰 Java에서 StringBuilder와 StringBuffer 중 사용 선택 목적은 보통 단일 Thread인지 Multi Thread인지에 따라 갈린다. 그런데 본인이 생각한 Multi Thread환경에서의 기대 값과 실제 값이 달라서 어떤식으로 Thread safe를 구현하고 있는지 예시코드를 작성하며 개념 좀 정리해보고자 한다. Multi-Thread Test StringBuilder public class SbTest implements Runnable { StringBuilder sb; public SbTest() { sb = new StringBuilder(); } public void run() { addChar(); } public void addChar() { for (inti = 0; i.. 2022. 8. 16.
JAVA로 카카오 메시지 API연동 토이프로젝트를 진행하던 중, 카카오 메시지 API연동이 필요하던 참이었다. 목적이 Spring scheduler를 이용해 일정 시간마다 필요한 정보를 나에게 메시지를 뿌려주는 것이기 때문에 따로 화면단이 필요 없었다. 좀 편하게 하려고 누군가 java로 카카오 API 연동한 사례를 찾아보려고 했는데, 아무리 찾아봐도 백엔드단에서 카카오 메시지 API 연동을 Java로 이용한 사례가 없기 때문에 직접 구현해서 공유해보려고 한다. ㅠㅠ 언젠가 누군가에겐 1g의 도움이 되길 바라며 작성해볼까 한다,, STEP1. Kakao Develpopers 가입 및 애플리케이션 추가 https://developers.kakao.com/ 해당 사이트에 가입한 후, 내 어플리케이션을 추가해준다. STEP2. 내 애플리케이션 .. 2022. 2. 25.
JVM 아키텍처 1탄 - Class Loader SubSystem GC에 대해 공부를 하다가 문득 이런 생각이 들었다. 나란 남자 JVM은 빠삭하게 이해하고 있는게 맞는걸까? 누군가 JVM의 아키텍쳐와 메커니즘에 대해 상세하게 설명해달라고 물어보면 눈동자가 흔들리고 자리를 피할 것이다. 그래서 JVM에 대해 좀 딥하게 파보기로 했다. JVM 이란? JVM은 java virtual machine으로, 말 그대로 자바가상머신이다. JVM은 자바 응용프로그램으로부터 전달받은 명령을 해당 운영체제가 이해할 수 있도록 변환하여 전달하는 역할을 하며 WORA(Write Once Run Anywhere) 한번 쓰면 VM을 통해 어디서나 실행가능한 개념으로 개발되었다. JVM의 역할을 크게 보면 아래와 같다. Bytecode 로드 및 해석 안전성 확보 자동 메모리 관리 그렇다면 JV.. 2021. 12. 8.
Java Collections 시간 복잡도 알고리즘을 풀며 문득 느낀게 있다. Java Collection들을 사용하며, 정확한 속도의 메커니즘을 모르니 이것 저것 써보며 속도가 줄어드나 확인해보곤 한다. 그래서 Java Collections의 속도를 비교하여 어떤 메소드를 사용할 때 어떤 Collection을 써야할지 판단하기위해 자료 정리를 하려한다. 1. List Add Remove Get Contains Data Structure ArrayList O(1) O(n) O(1) O(n) Array LinkedList O(1) O(1) O(n) O(n) Linked List CopyonWriteArrayList O(n) O(n) O(1) O(n) Array 검증결과 조회와 삭제의 빈도수를 고려하여 LinkedList를 사용할지 ArrayList.. 2021. 12. 3.
반응형