반응형

개발 및 코딩 241

[개발관련]JAVA_ Getter/Setter vs Field Direct Access 비교

회사에서 필드의 접근제한자를 private 가 아닌 public으로 사용하고, Getter/Setter 없이 직접 필드에 접근하여 연산처리하는 소스를 만났다. 아무래도 Getter/Setter 메서드를 호출할 때마다 Call Stack에 메서드가 쌓였다가 사라질 테니 필드에 직접 접근하여 연산하는 것보다 성능이 좋지 않을 것이라고 생각했다. 하지만, 은닉, 캡슐화를 위반하는 듯하여 이를 Getter/Setter로 변경하였을 때 성능이 얼마나 안 좋아질지 시간을 측정해보고자 하였다.대략 간단하게필드 직접 접근 10억번 반복 vs Getter/Setter 10억 번 반복을 비교해 보았다.package practice;public class GetterDirect { public static void m..

[개발관련] firewall-cmd, zone, service

보안 조치 때문에 firewall-cmd 명령어를 이것 저것 사용해보고 있다.목적은 기본적으로 모든 인바운드를 드랍하고 특정IP:특정서비스(port)만 허용하는 것.TCPWrapper인 경우 /etc/hosts.allow, /etc/hosts.deny 파일을 편집하여 설정하라고 하는데, Rocky8버전인지라 firewall-cmd 를 이용하여 ACL(Access Control List, 접근제어리스트) 을 설정해주어야 한다.firewall-cmd 를 사용해보면서 조금 알게된 부분을 기록한다.[이해]1. zone: 방화벽 정책 그룹 정도로 이해. public, dmz, drop, internal, external, home 등이 있다. NIC에 매핑할 수 있다. -> 공용 네트워크에서 갖추어야 할 보안 정..

[개발관련] Rocky8 비밀번호 5회 틀림 잠김 처리 (authselect, pam.d, faillock)

리눅스 보안 조치 중 비밀번호를 5회 이상 틀릴 경우 해당 계정이 잠기도록 설정할 일이 생겼다.이해 -> 조치 -> 실패 -> 다른 조치 -> 성공의 과정을 겪었다.결론은 rocky8 버전에서 직접 pam.d 디렉터리 하위의  파일을 수정하였을 때 제대로 동작하지 않았다.authselect를 이용하여 faillock 모듈을 enable 처리하고, faillock 모듈의 설정을 /etc/security/faillock.conf 에서 세팅해 주면 그대로 동작하게 된다.직접 설정 파일을 변경해주던 것에서 점점 전용 명령어(인터페이스)를 사용하게 되는 것 같다. EX) network-script -> nmcli 이해아래의 글을 보고 리눅스 PAM 모듈에 대해 이해하였다.출처:이글루 Security Issue리눅..

[개발관련] RTSP 응답 확인 중 3WHS ( tcpdump )

rtsp가 잘 되는지 확인하고자 tcpdump 를 켜두고 curl 요청을 날려보았다. rtsp 도 tcp 기반이었는지 seq, ack 같은 정보가 보인다. 3WHS 과정으로 보인다. tcpdump 를 이용하여 3WHS, 4WHS, SSL HS 등을 볼 수 있는 기회다. (터미널 2개 열고 아래 명령어) tcpdump -i any -nn -X port 554 curl -v rtsp://172.20.123.51:554 Flags[S] : Sync Flags[S.] : Sync+Ack Flags[.] : Ack RTSP 되는거 안되는거 차이

[개발관련] 간단한 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..

[개발관련] 공공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: ..

[개발관련] 수집 데이터 용량 확인 (하루 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가 될 것으로 보인다..

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

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

반응형