반응형

전체 글 411

[작업] 홈 서버를 설치하던 중 SSD 135GB가 Free가 되었다.

[요약]1. 기본 설정으로 OS를 설치하면서 할당되지 않았던 135GB를 논리 볼륨으로 /data 경로에 마운트하였다.2. 파티셔닝->물리볼륨->볼륨그룹->논리볼륨->포매팅->마운트의 과정 중 논리볼륨생성부터 마운트까지 진행하였다.3. PV, VG, LV의 개념을 잘 몰랐었는데 파티션을 직접 마운트 하는 것 보다 더 유연하게 설정을 바꿔줄 수 있는 것 같다.[관련 명령어]#> fdisk -l#> vgdisplay#> lvdisplay#> pvdisplay#> lsblk#> mkfs.ext4#> mount[과정]새벽 2시 경 미니pc에 ubuntu-server를 설치하고 잠들었다.아침에 설치가 되어 있길래 방화벽 및 네트워크 설정을 건드리고 disk를 확인해보았는데 ssd 볼륨이 작게 잡혀 있었다.ssd가..

[작업] 홈 네트워크를 구축하던 중 포트포워드가 안 되었다.

홈네트워크에 VNC 및 SSH 서버를 구축하는 과정에서 벌어진 일.[문제 상황 요약]1. Windows노트북에 TigerVNC설치 및 구동2. 맥북에서 내부IP로 VNC 접근 가능3. 그러나 공인IP로는 불가능4. Ubuntu 미니PC에 SSHD 설치 및 구동5. 맥북에서 내부IP로는 SSH 접근 가능6. 그러나 공인IP로는 불가능[단서]1. 열린포트를 확인하는 외부 사이트에서는 'open'상태로 확인됨.  tcpdump로 패킷 덤프 시 내부 서버에 패킷 인입 확인2. 그러나 맥북에서는 공인IP로 아무리 해도 안 됨 (vnc, ssh, tcping, curl 포트 확인 등 불가, ping은 됨) [해결]1. 홈 네트워크 내부망에서 공인IP로 포트포워딩 서비스 포트로 접근할 경우 포트포워딩이 되지 않는 것..

[개발]점이 사각형 안에 있는지 판단하기

좌표 공간에 사각형을 그리고 점(Point)가 사각형의 내부에 있는지 외부에 있는지 판단하는 로직을 만들고자 하였다.  기존 회사에 있던 로직은 타겟 포인트의 x,y좌표가 사각형의 4개 꼭지점의 x,y좌표 사이에 있으면  사각형 안에 점이 있다고 판단하였다. 이 로직이 제대로 동작하려면 축과 평행한 직각사각형이어야만 한다. 하지만 실제로 사용자가 그리는 사각형은 축과 평행하지 않을 수 있고 찌그러진 사각형일 수도 있다.이 문제의 해결 방법은 다시 고등 수학이라는 책을 통해 알 수 있었다. 고등학교 시절 수학을 멀리하였으나 개발자가 되고 나서 논리력을 기른다는 관점에서 수학의 필요를 느꼈다. 그래서 중,고등학교 수학 교재와 함께 구매하여 틈틈이 보던 책이 이 책인데 명제부터 시작해서 삼각비나 벡터 같은 개..

개발/개발 2025.03.01

[개발관련] BootJar 서비스 등록, 리눅스에서 application.properties, logback.xml 수정

들어가며주기적으로 외부 API에서 데이터를 수집하여 DB에 적재하고, 알람 목적으로 웹 애플리케이션 백엔드 단의 웹소켓 용 API에 데이터를 전달하는 소스를 작성하였습니다. java17, Spring boot 기반이며 application.properties 파일에 외부 API의 URL과 토큰, 그리고 기타 설정 정보를 저장해두었습니다. 빌드한 파일을 고객사에 미리 전달하면 작업 서버로 파일을 옮겨주시는 방식이기 때문에 리눅스에서 bootJar 내의 application.properties 파일을 수정할 필요가 있었습니다. 이는 간단하게 zip 명령어로 수정이 가능합니다. 같은 방식으로 logback.xml을 수정하여 log 파일의 저장 주기나 경로도 즉석에서 변경할 수 있습니다.현 회사에서 이전에는 b..

개발/개발 2024.08.08

[개발관련] ssh 리모트 터널링과 로컬 터널링

들어가며ssh 터널링 명령어를 정리해보았습니다.-L(로컬)옵션과 -R(리모트)옵션의 한 글자 차이이지만 상당히 다르게 동작하며 사용의 목적도 달라집니다.ssh -L localhost:12345:192.168.0.1:22 mabb@121.10.10.10 -p22022ssh -R localhost:12345:192.168.0.1:22 mabb@121.10.10.10 -p22022  1. 로컬 터널링ssh 명령어를 실행하는 현재 서버가 121.10.10.10 서버의 입장이 되게 합니다. 현재 서버에서 localhost:12345를  121.10.10.10 서버가 접근할 수 있는 192.168.0.1:22로 터널링 해줍니다. ssh 포트로 터널을 만들어 원격지의 다른 포트나, 다른 서버(포트)에 직접 연결하는 ..

개발/개발 2024.07.25

[개발관련] Java_ 대량의 CSV Insert, 그리고 OutOfMemoryError 발생!

들어가며약 1.3MB 정도 되는 CSV 파일 (약 4000줄) 5천 개를 데이터베이스에 적재하려고 시도하였습니다.  OutOfMemory가 발생하였습니다. 1 record 당 1 instance로 List에 담았기 때문입니다. 객체 2,000만 개를 만들고 List에 담아 GC도 되지 않는 코드를 작성해 버린 것입니다. 1) CSV 한 줄 씩 읽고 객체 만들어 List에 add 하기2) 2000만 길이의 List (이 단계에서 OOM 발생!)3) 2,000만 길이의 Batch쿼리 4) 한 방에 Insert 시도 Heap GC 상태 확인PID를 찾는 동안 잠시 대기를 시켜줍니다. PID가 39205입니다.  35394는 PPID로 인텔리제이입니다.인텔리제이의 부모는 MAC에서의 1번 프로세스인 launch..

개발/개발 2024.07.07

[개발관련] @ForceInline 테스트

들어가며Properties.java를 들여다보던 중 Objects의 requiredNonNull 메서드에 붙어있는 @ForceInline 어노테이션을 살펴보게 되었습니다. 메서드 인라인을 강제하는 어노테이션 정도로 이해하였고, 이것이 성능을 위한 조치인 지 잘 이해가 되지 않았습니다. 문의를 해보니 스택트레이스 출력 때문인 것 같다는 의견이 있었습니다. 그래서 검증을 해보고자 테스트해보았습니다.메서드가 인라인화 되어 메서드의 본문이 참조되니까 스택트레이스에는 해당 메서드를 호출한 스택 상위의 메서드까지만 스택 트레이스가 출력될 것으로 예상하였습니다. 문제의 @ForceInline 어노테이션이 붙어있는 requireNonNull 메서드입니다. 1. 어노테이션을 붙이지 않고 예외를 던져 스택 트레이스를 확인..

개발/개발 2024.07.03

[개발관련] JAVA_ IPv4 String to Int 변환 (2의 보수, 비트 연산)

들어가며네트워크 스캔 기능이 필요하여, DB에 저장된 특정 네트워크("192.168.0.0/24"), 또는 IP 범위("192.168.0.34/24~192.168.0.100/24") 내의 Host IP 문자열 리스트를 반환하는 간단한 메서드를 만들어 보았습니다. 만들면서 비트 연산자, 2의 보수 등도 복습하게 되어 함께 정리합니다. 목표1) 특정 네트워크 내의 모든 Host IP의 List 을 반환하는 메서드 만들기2) IP 범위 내의 모든 Host IP의 List 을 반환하는 메서드 만들기 IPv4 주소와 Java의 intIPv4주소는 32bit로 표현합니다. 따라서 2³²개인 총 4,294,967,296 개의 IPv4 주소가 존재합니다.  이는 Java의 4byte 정수형인 int로 표현할 수 있는 ..

개발/개발 2024.06.22

[개발관련] Docker_ MariaDB Container 만들기

들어가며Database(MariaDB)가 필요할 때 다음과 같은 절차로 서버에 직접 설치하곤 하였습니다.1) MariaDB설치 (패키지매니저 설치, 오프라인 환경에서는 준비한 RPM으로 설치)2) my.cnf세팅3) 데이터디렉터리 변경4) 데이터베이스 생성5) 유저생성6) 스키마 및 코드데이터 세팅만약 설치한 데이터데이스를 다른 서버에 옮겨야 한다거나, 여러 대의 서버에 위의 작업을 반복한다고 하면 귀찮고 힘든 작업이 될 것입니다. 목표MariaDB 설정, 유저 및 데이터 베이스 생성, 스키마 및 코드데이터가 세팅된 도커 이미지를 만들어보겠습니다. 이 이미지의 컨테이너를 가동하기만 하면 서버에 직접 MariaDB를 설치할 때의 번거로운 절차가 한 번에 해결됩니다.  Dockerfile아래와 같이 도커파일..

개발/개발 2024.06.01
반응형