반응형

전체 글 414

[개발관련] 간단한 UDP 테스트 (java, nc)

java 로 간단히 udp server 를 만들고 테스트 해보았다. public static void main(String[] args) { try { String udpPort = "55551"; byte[] receiveData = new byte[1024]; String receiveMessage = ""; DatagramSocket udpSocket = new DatagramSocket(Integer.parseInt(udpPort)); DatagramPacket receivePacket; while(true){ receivePacket = new DatagramPacket(receiveData, receiveData.length); udpSocket.receive(receivePacket); by..

개발/개발 2024.04.10

[개발관련] 공공API 단기예보 JSON 포맷

JSON 포맷 참고용 Request 조건 String api = "http://apis.data.go.kr/1360000/VilageFcstInfoService_2.0/getVilageFcst"; String serviceKey = "서비스키"; String pageNo = "1"; String numOfRows = "1000"; String dataType = "JSON"; String base_date = Util.getCurrentTime("yyyyMMdd");//today String base_time = "0800"; String nx = "53"; //위치 x좌표 String ny = "96"; //위치 y좌표 Response 데이터 -시간당 12개의 값 1.TMP: 1시간 기온 2.UUU: ..

개발/개발 2024.04.07

[개발관련] 수집 데이터 용량 확인 (하루 432만 row)

센서에서 초당 50개의 row 데이터를 api로 받아 db에 적재시키고자 하고 있는데 초당 50개 이므로, 하루 432만 개의 데이터가 적재된다. 큰 데이터를 다루어 본 적이 없어 굉장히 큰 양으로 느껴져 하루에 적재되는 실제 용량은 어느정도 될 지 계산해 보았다. select table_name, table_rows, round((data_length+table_rows)/1024,1) from information_schema.tables where talbe_schema='db' 테스트로 적재한 200 row 의 용량이 48.2KB. 기본 테이블 용량이 16KB인 것으로 보여 200row에 32.2KB인 것으로 확인. 하루 기준으로 계산하면 약 679MB. 한 달이면 약 21GB가 될 것으로 보인다..

개발/개발 2024.04.01

[개발관련] 인텔리제이 특정 패턴 일괄 변경

api로 수신하는 센서의 데이터 샘플(json)을 포스트맨으로 전송하여 테스트하고자 하였다. rt데이터의 값에 ':'이 있어서 안 되었다. 데이터를 ""로 감싸줄 필요가 있으나 한 샘플에 rt데이터는 700개이므로 수동으로 바꾸기 힘들고 700개의 rt 값은 HH:mm:ss.fff 타입으로, 일괄로 변경해주기 위해서는 정규식 패턴을 활용하는 것이 좋다. 빠르게 변경하기 위해 샘플 데이터를 인텔리제이에 생성한 텍스트파일에 붙여 넣고 정규식 패턴을 이용하여 일괄적으로 변경해 주기로 한다. \"rt\"=(..:..:......) \"rt\"=\"$1\" .은 문자 한 개를 의미, .* 처럼 사용도 가능. 바꿀 패턴을 이스케이프 문자를 섞어가며 만들면 인텔리제이가 해당 정규식에 매핑되는 데이터들을 하이라이트 표..

개발/개발 2024.03.31

[개발관련] SNMP walk, bulkwalk 비교

snmpwalk 와 snmpbulkwalk의 차이가 궁금하여 알아보았다 결론. snmpwalk= snmp get-next-request 와 response 의 반복 snmpbulkwalk = getBulkRequest 와 response의 반복 .1.3.6.1.5.1.2021.4 (memory mib) OID 1.3.6.1.4.1.2021.4 memory reference info 1.3.6.1.4.1.2021.4.101 memSwapErrorMsg 1 1 Describes whether the amount of available swap space(as reported by 'memAvailSwap(4)'), is less than thedesired minimum (specif… oidref.com ..

개발/개발 2024.03.30

[개발 관련] 시스템 콜 확인 하는 방법- strace

strace java ./HelloJava.java 시스템 콜에 대한 이해,, 시스템 콜은 프로세스가 운영체제의 서비스를 이용하는 것 -> 운영체제(커널 영역)에 있는 서비스(함수, 기능)을 사용하는 것 -> 시스템 콜에도 매개변수와 반환 값이 있다. execve(매개변수) = 리턴값 HelloJava.java 를 컴파일 하는 단순한 명령어에도 시스템 콜이 이렇게나 많이 호출 된다. 리눅스 시스템콜 내용 확인 futex(2) - Linux manual page futex(2) — Linux manual page futex(2) System Calls Manual futex(2) NAME top futex - fast user-space locking LIBRARY top Standard C library..

개발/개발 2024.03.28

[개발관련] Spring Boot max-request-size (413 Request Entity Too Large)

multipart/form-data 로 이미지를 수신하는 API 를 개발하고 타 업체와 연동 테스트를 하던 중 413에러가 발생하였다. 413 Request Entity Too Large로 request 메시지의 용량이 스프링의 기본 request-max-size인 2MB보다 커서 해당 에러코드가 발생한 것으로 확인하였다. application.yml에 아래와 같은 세팅을 해준다. tomcat: max-http-form-post-size: 15MB ... servlet: multipart: max-file-size: 15MB max-request-size: 15MB inteliJ 에서 yml 파일에서 max 등, 타이핑을 하면 자동완성이 된다.

개발/개발 2024.03.27

[개발관련] wireshark, multipart/form-data http message 캡쳐

sensor업체의 데이터를 수신하기 위하여 스프링 부트로 간단하게 api를 만들었다. api는 multipart/form-data 로 json(필수param)과 이미지(선택param)를 request body로 받는다. 업체와 테스트 중, 요청 데이터 포맷 때문에 연동 테스트에 어려움을 조금 겪었다. 과정 요약) -json 및 이미지를 2개의 api 에서 각각 받으려고 하였으나 1개의 api로 합칠 것 지시 받아 수정. -mac에서 postman으로 요청 시 되는데 windows 에서 postman으로 요청 시 415가 발생하는 현상 -> boundary세팅 차이 때문으로 추정 중... -업체 테스트를 위하여 curl 샘플을 첨부하였으나 c# 유니티 (UnityHttpRequest) 를 사용하는 업체 환..

개발/개발 2024.03.27

[개발관련] 정말 중요한 메모리

벌써 개발자로 전직을 한 지 만으로 14개월이 되었다. 그중 현 회사에서는 6개월 간 정말 다양한 경험을 할 수가 있었고 최근에는 유독 메모리와 싸움을 벌이고 있다. 처음 메모리에 관심을 가지게 된 것은 소중한 데이터 수집 프로세스가 killed 된 것을 알게 되었을 때였다. 도대체 누가 왜 나의 프로세스를 죽였을까. 이 프로세스가 무엇을 그리 잘못했을까 궁금하여 메모리 사용량을 유심히 관찰하였으나 엄청나게 메모리를 많이 사용하지 않는데도 불구하고 주기적으로 프로세스가 killed 되는 것을 알게 되었다. killed의 주기가 정확하게 10분이라는 것이 의아하여 crontab을 확인해 보니 10분마다 프로세스를 종료시키는 스케줄링이 등록되어 있었다. 소스와 나뿐, 히스토리를 묻기 어려운 상황에 '아 뭔가..

개발/개발 2024.02.07
반응형