[상황]jar 파일을 실행시키는 start.sh 파일을 생성하여 service 등록을 하였는데, 정상적으로 동작하지 않는 기능이 생겼다. >> 서비스 등록 방법은 아래 글에 있습니다!https://yes-admit.tistory.com/57 [CentOs] 서비스 등록으로 서버 재부팅시 자동으로 프로그램 실행시키기테스트 중 서버를 자주 내렸다 올렸다 하는 경우가 생겼는데 그 때마다 서비스를 새로 올려줘야해서 불편했다. 하나만 올리는거라면 그나마 괜찮겠지만 나는 2개나 올려야 해서...너무 귀찮았다yes-admit.tistory.com 환경변수의 문제였는데 해당 기능이 정상적으로 동작 하기 위한 환경변수가 특정 사용자에게만 부여가 되어있기 때문이었다. 따라서 정상 실행을 위해서는 해당 사용자로 실행을 해야..
socket 통신을 통해 STT를 붙여야 하는 경우가 생겼다. 이전에도 여러번 socket으로 데이터를 주고 받은 적이 있기 때문에, 이 정도는 아무것도 아니지ㅋ 생각했는데, 업체로부터 제대로된 연동정의서가 아닌 C# 샘플 코드를 받았다. 흠 C#은 모르는데...?다행히 샘플 코드가 어렵지 않아 Java로 포팅하면서, 제대로 했다고 생각했는데....계속 잘못된 결과를 받았다. 그치..한번에 잘 될 일이 없지..ㅎ 그치만 아무리 봐도 뭐가 잘못인지 모르겠다.. 업체에 문의해봐도, 본인들도 그 결과는 처음본다고... 네..? 나에게 도움이 되는 답변은 아니었다.그래서 수석님에게 도움을 요청하니, 코드의 문제는 아닌거 같고, 엔디안 문제 아니냐는 힌트를 주셨다. 엔디안이요? 와 완전 처음 들어보는 말..엉엉..
Null의 문제점Java에서 null은 매우 오랜 시간 동안 객체가 없음을 나타내는 대표적인 방법이었다. 하지만 이 null이 시스템 전반에 걸쳐 여러 문제를 일으킬 수 있다. 1. NullPointerException (NPE)프로그램에서 객체가 null인 상태에서 그 객체에 접근하려 할 때, NPE가 발생하며 이는 개발자들이 자주 마주하는 에러 중에 하나이다.String name = null;System.out.println(name.length()); // NullPointerException 발생 2. 코드 가독성 저하null 처리를 위해 코드 전반에 if문을 사용해야하며 가독성이 떨어진다.if (user != null && user.getName() != null) { System.out..
동일한 ID를 가진 경우 A 테이블의 NAME 컬럼 값을 B 테이블의 NAME 값으로 변경해야 하는 상황이 생겼다. 아래와 같은 경우로, A테이블에 NAME 컬럼이 추가 되어 기본값 NULL 값으로 되어있는데, B테이블에서 해당 ID의 NAME을 찾아 업데이트를 해줄 것이다.이럴 때 UPDATE JOIN을 통해서 쉽게 변경이 가능하다.UPDATE TB_A A JOIN TB_B B ON A.ID = B.ID SET A.NAME = B.NAME WHERE 조건문 근데 이렇게 그냥 바로 되었다면 난 이 블로그를 쓰지 않았을 것이다.업데이트를 하는데 이상하게 Duplicate 키 에러가 발생하였다. 테이블 A의 PK는 ID와 REGIST_DATE인데 나는 이 컬럼들을 업데이트 하지 않았다.근데 왜 중..
나는 데이터베이스에 대해 아직 잘 모른다. 할 수 있는건...정말 단순 CRUD정도.. DB에 대해서 잘 몰라서 생겼던 문제점에 대해서 작성해보려고 한다. 채팅 내용을 저장하는 테이블을 설계 할 때 방 이름과 등록일을 primary key로 잡았었다.(해당 테이블은 이해를 돕기 위해 임의로 생성한 테이블이며, 실제로 사용 된 테이블이 아닙니다)CREATE TABLE `MESSAGE` ( `ROOM_ID` varchar(20) NOT NULL, `USER_ID` varchar(20) NOT NULL, `MESSAGE` varchar(100) NOT NULL, `REGIST_DATE` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), PRIMARY KEY (..
javascript에서 stomp.js를 사용하여 rabbitMQ에 연결하는 방법은 매우 쉽다.message를 queue에 발행하면 연결 된 웹소켓으로 queue 내용을 소비한다.Queue 생성 및 message 발행subscribe 가능한 destination 종류는 /temp-queue, /exchange, /topic, /queue, /amq/queue, /reply-queue 이렇게 있으나, 나는 간단히 javascript에서 바로 rabbitMQ를 붙을 수 있는지만 확인 하고자 하여 queue에 직접 붙었다. 1. Queue생성name : chat 을 작성하고 [Add queue] 버튼 클릭2. message 발행payload에 메세지를 작성 후 [Publish message] 버튼 클릭나는 j..
메세지큐메세지 큐는 서로 다른 어플리케이션끼리 메세지를 주고 받으며 효과적으로 상호작용 한다.메세지 큐는 도착지의 프로그램이 바쁘거나 연결이 되지 않은 경우에 임시적인 메세지 저장소를 제공한다. 이를 통해 메세지가 손실되지 않고 안전하게 전달 할 수 있다.메세지 큐는 producer, broker(the message queue software), consumer로 구성된다.메세지 큐는 어플리케이션 간의 비동기 커뮤니케이션을 지원하며, 이는 어플리케이션이 동시에 실행되지 않아도 서로 메세지를 주고 받을 수 있다는 것을 의미한다.RabbitMQ메세지큐의 일종으로 서로 다른 어플리케이션이 메세지를 송신/수신하며 중개자 역할을 한다.보통 AMQP(Advanced Message Queuing Protocol) ..
쿠버네티스를 사용하는 고객사에서 파일을 업로드 할 때 413 Request Entity Too Large 에러가 발생했다. 1MB를 갓 넘기는 파일이라 이게 대체 무슨일인가 보았더니, nginx에서는 업로드하는 파일의 용량을 기본적으로 1MB로 제한하기 때문이었다. 쿠버네티스에서도 ingress에서 설정을 해주지 않으면 nginx와 같은 기본값을 사용한다.Ingress 설정 방법ingress의 proxy-body-size를 설정하는 방법은 아주 간단히 어노테이션을 추가해주면 된다."nginx.ingress.kubernetes.io/proxy-body-size: 허용용량"apiVersion: networking.k8s.io/v1kind: Ingressmetadata: name: my-app annota..
- Total
- Today
- Yesterday
- 오토에버코테
- 톰캣
- tomcat
- 자바스크립트
- 스프링
- 전자정부프레임워크
- softeer java
- 코딩테스트
- 쿠버네티스
- softeer
- mysql
- javascript
- centos
- 도커
- 현대코테
- Kubernetes
- springboot
- react
- 현대오토에버
- Docker
- 아파치카프카
- 코테
- Spring
- 리액트
- java 코테
- 현대
- java
- 자바
- Linux
- 자바코테
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |