공부/JAVA 31

메시징 시스템을 알아보자 (Active MQ, JMS, 이벤트 기반 아키텍처)

정의 1. 메시징 시스템 분산 컴퓨팅 환경에서 애플리케이션간의 효율적인 통신을 지원하는 시스템으로 이벤트 기반 아키텍처에서 사용됨 특징 : 비동기 통신 / 확장성 / 신뢰성 2. 메시지 브로커 메시징 시스템의 핵심 구성요소로 어플리케이션간의 메시지를 교환하도록 도와주는 중간 소프트웨어나 서버 특징 : 메시지 라우팅 / 메시지 큐잉 / 토픽 / 메시지 변환, 프로토컬 어댑터 3. JMS Java Messaging System의 약자로, Java에서 Messaging System을 사용하기 위한 API들의 모음 JMS의 메시지는 메시지헤더/프로퍼티/몸체(텍스트,오프젝트 포멧지원) 세가지로 구성된다. 메시지 헤더 : 메시지를 구분하기 위해 사용됨. 구독자 체크등이 있다. 프로퍼티 : 어플리케이션 몸체 : 메시..

공부/JAVA 2023.10.26

구글 자바 포매터 적용해보기(for eclipse)

구글 자바 포메터 설치(이클립스) 구글 자바 스타일가이드를 번역하면서 해당 포멧에 맞게 자동으로 소스를 변환해주는 플러그인에 대해 알게되서 이번에 적용해보려고 한다. 스타일가이드 : https://google.github.io/styleguide/javaguide.html 스타일가이드 번역 : https://janggiraffe.tistory.com/405 더 나은 개발 문화를 위해 #1 코딩 스타일 가이드(Google Java Style Guide 번역) 더 나은 개발 문화를 위해 #1 코딩 스타일 가이드(Google Java Style Guide 번역) 추석을 맞아 여유가 생겼다. 지금껏의 회사생활을 돌아보면 일하면서 여러 사람들과 같은 서비스를 유지보수할 때, 특 janggiraffe.tistory..

공부/JAVA 2023.10.10

더 나은 개발 문화를 위해 #1 코딩 스타일 가이드(Google Java Style Guide 번역)

더 나은 개발 문화를 위해 #1 코딩 스타일 가이드(Google Java Style Guide 번역) 추석을 맞아 여유가 생겼다. 지금껏의 회사생활을 돌아보면 일하면서 여러 사람들과 같은 서비스를 유지보수할 때, 특별한 규칙 없이 각자 유지보수 해왔던 것 같다. 그래서 팀원들과의 유대감이나 서비스에 대한 애정이 좀 덜 했던 것 같음. 이 상황에서 소위 말하는 네카라쿠배의 좋은 개발문화들은 너무나도 부러웠다. 좋은 개발문화를 정착시키고 싶다는 생각이 있었는데, 이젠 이 회사에서 짬도 찼고 부사수도 둘이나 있고 해서 이분들과 함께 한번 해보려구 함.(아직 부사수들의 생각은 안물어봐서 조금 걱정되긴 하다.😢) 내가 생가하는 우리 회사에 필요한 부분은 크게 3가지 + 숙제.. 코드 스타일 가이드 : 아직 시작 ..

공부/JAVA 2023.10.03

# SpringBoot 서버와 AJAX 통신 시 시간이 이상해요⏰

SpringBoot 서버와 AJAX 통신 시 시간이 이상해요⏰ SpringBoot 2.0 이상에서의 직렬화 처리 - timeStamp 단어 뜻 직렬화 데이터 구조나 오브젝트 상태를 동일하거나 다른 컴퓨터 환경에 저장하고 나중에 재구성할 수 있는 포맷으로 변환하는 과정 자바 직렬화란 자바 시스템 내부에서 사용되는 객체 또는 데이터를 외부의 자바 시스템에서도 사용할 수 있도록 바이트(byte) 형태로 데이터 변환하는 기술과 바이트로 변환된 데이터를 다시 객체로 변환하는 기술(역직렬화)을 아울러서 말합니다. 시스템 적으로는 JVM(Java Virtual Machine)의 메모리에 상주(heap 또는 stack) 되어 있는 객체 데이터를 바이트 형태로 변환하는 기술과 직렬화된 바이트 형태의 데이터를 객체로 변환..

공부/JAVA 2023.09.22

트러블 슈팅을 위한 JVM 공부 (1일차)

오늘 알게된 사실 1. java에서 (jvm의) native method를 이용해 특정 운영체제의 서비스를 확인할 수 있다.(java에서 c의 라이브러리를 호출하고 사용하는것이 가능함!) 2. java의 큰 변화는 2014년 오라클의 java인수와 java8(모던 자바) 출시 > 2018년 java11 출시 및 올해들어서 java11 기반의 프로젝트의 활성화 ! (java8 관련해서는 월말에 공부할 계획이라 java11은 좀 더 나중에 꼭 공부해보자!) 3. java8부터 jvm이 os로부터 메모리를 할당받아 쓰기보다는 os의 메모리를 사용하게 됐다(?이말이 맞나) - 아래 Heap 내용 참고 4. GC의 동작방식에 대해 알게되었고, CPU 사용량이 왜 늘어나는지를 이해했다. (아래 GC의 동작방식 참고..

공부/JAVA 2022.11.07

JNDI셋팅(tomcat,mysql) 중 발생한 에러 및 처리

tomcat - mysql - jndi 셋팅 중 에러 및 처리에 대한 기록입니다. 1. SqlSession Autowired 문제 sqlSession autowired가 안되 발생한 문제다. 에러 내용을 보면 datasource bean을 못찾는것. 실제로 소스를 확인해보면, sqlSessionFactory에 등록된 datasource가 찾을 bean이 없다.! testDao.java @Repository public class testDao { @Autowired SqlSession sqlSession; @SuppressWarnings("unchecked") public List getGospe() { HashMap input = new HashMap(); input.put("type", "AD"); ..

공부/JAVA 2022.09.28

JAVA PreparedStatement addBatch,executeBatch 사용 중 에러처리 (BatchUpdateException)

쿼리속도를 올리기 위해 preparedStatement 클래스의 addBatch,executeBatch 매서드를 이용하는 경우가 있다. 나도 대용량의 엑셀데이터를 DB에 넣기 위해 위 메서드를 이용했는데, 데이터를 인서트하다가 오류가 나는 경우가 있었는데, 문제는 배치를 사용했을 때 오류가 어디서 발생했는지 에러코드를 트래킹할 수가 없다는 점이다. executeBatch() 실행 중 에러발생 시 대략 이런식으로 나온다. com.ibm.db2.jcc.am.BatchUpdateException: [jcc][t4][102][10040][3.65.77] Batch failure. The batch was submitted, but at least one exception occurred on an individ..

공부/JAVA 2020.11.10

JSMOOTH로 JAVA파일을 EXE파일로 배포하기 !

안녕하세요, 장지랩입니다. JAVA파일을 EXE파일로 배포하는건 JAR파일을 뽑는것 처럼 이클립스에서 바로바로 뽑을 수 있을 줄 알았는데 그게 안되네요 .. 그래서 EXE파일로 뽑는 방법에 대해서 알아보았습니다. 먼저 jsmooth라는 java 유틸리티가 필요하니 아래 사이트로 가서 다운받아줍니다. https://sourceforge.net/projects/jsmooth/files/ JSmooth - Browse Files at SourceForge.net × sourceforge.net 간단한 설치과정을 거쳐 실행하면 다음과 같은 화면이 뜹니다. 만약 실행이 안된다면 자바를 설치하고, 환경변수를 설정해줘야합니다. 이제 Jsmooth의 메뉴에 대해서 알아봅시다. 먼저 Skeleton메뉴입니다. 여기서 무..

공부/JAVA 2019.08.23

자바 Exception printStackTrace를 String 객체에 담기

안녕하세요 장지랩입니다. 자바 프로그램을 만들다 보면 예상치 못한 오류가 발생하는데요, 그런 예외 처리를 위해 저희는 try-catch문이나 throw 또는 예외를 관리하는 메서드를 커스템해서 만들기도 합니다. 만약 에러가 발생하면 에러의 원인을 찾기 위해 익셉션 트레이스를 이용하는데요, 예시를 볼까요? try { String b = "Text"; Integer.parseInt(b); }catch(Exception e) { e.printStackTrace(); } String형 변수 b를 선언하고 Text라는 값을 해당 변수에 대입해줍니다. 그 후 Integer.parseInt()메서드를 사용해 String 변수 b를 int형으로 형변환 시켜줍니다. 이 때 에러가 발생합니다. 이걸 Exception의 p..

공부/JAVA 2019.08.01

자바 parseDouble 사용 중 주의할 점 - double형 지수 사용 안하기

안녕하세요, 장지랩입니다. 오늘은 회사에서 사수분이 알려준 주의할 점에 대해 공유하려고 해요. 자바 참조형변수(referrence Type) Double의 메서드인 parseDouble사용 중 주의할 점에 대해 알아보려고 합니다. parseDouble은 String타입의 문자열에 대해 double(기본형 변수-primitive Type,실수)으로 바꿔주는 기본 메서드인데요 사용법은 아래와 같이 간단합니다. Double.parseDouble(String); #다만 주의할 점이 있습니다. Double.parseDouble로 String을 double로 변환하고, 출력해보면 순수 숫자가 아닌 알파벳과 함께 표기되는걸 볼 수 있습니다. 아래처럼요. String strNum = "123456789.123"; St..

공부/JAVA 2019.07.12