gson은 json 파일의 내용을 읽어서 java 객체로 만들어주는 라이브러리다. implementation 'com.google.code.gson:gson:2.8.9' 위와 같이 build.gradle에 의존성을 추가하면 사용 가능하다. 그러나 해당 라이브러리를 참조하는 과정에서 오류가 생길 때가 있었다. intellij등의 IDE를 통해 자바 프로젝트를 실행하면 라이브러리를 잘 참조했으나, jar 파일로 만들어 실행하면 다음과 같은 에러가 뜨는 것이었다. Exception in thread "main" java.lang.NoClassDefFoundError: com/google/gson/Gson at Potatonet.PortScan.application.APICaller.getIpListWithPo..
Spring Boot로 외부 메인 서버에 서버를 띄웠을 때, 분명 서버도 잘 올라가 있고 내부망에서는 API 송수신이 되는데, 간혹 외부 접속은 아예 불가능 한 경우가 있었다. 그때의 해결 방법들을 모아보자. 다음 먼저 개발 환경은 다음과 같다. Spring Boot 버전 3 이상 Linux Ubuntu 20.04 스프링 설정에서 외부 접근 권한이 막혔을때 application.properties에 다음 내용을 추가한다. server.port=8080 server.address=0.0.0.0 server.port 설정은 내가 서버를 열 포트를 지정한다. (default는 8080) server.address=0.0.0.0 는 모든 IP에서의 접근을 허용한다. 스프링 부트의 port가 외부 접근이 막혔을 ..
크롬 deb 파일이 있는 경우, 다음 명령어로 크롬을 설치해준다. sudo dpkg -i google-chrome-stable_current_amd64.deb 그리고 리눅스의 경우 보통 /usr/bin 하위에 크롬이 위치하므로, 다음 옵션을 추가해 크롬의 위치를 지정해준다. options.binary_location= "/usr/bin/google-chrome" 그리고 Selenium과 관련된 대부분의 문제는 버전 문제일 확률이 높다. 버전과 관련된 스택오버플로 글들을 찾아보자. 필자는 4.4.3 버전만을 사용한다. (버전이 높을 수록 지원하지 않는 문법이 많다) reference https://jo-coder.tistory.com/45
크롤링을 할때 사용하던 크롬 드라이버가 작동하지 않는 오류 chromedriver가 업데이트되면서 DevToolsActivePort를 찾을 수 없다고 한다. 이때는 웹 드라이버에 다음과 같이 옵션들을 추가해준다. options = Options() options.add_argument('--headless') # headless 모드 활성화 options.add_argument('--no-sandbox') options.add_argument('--disable-gpu') options.add_argument("--single-process") options.add_argument("--disable-dev-shm-usage") 위 세가지 옵션은 기존에 존재하던 옵션들이고, 아래 두개 옵션이 이번에 새롭..
해당 자료형을 java.util.Date 로 변경해주면 해결된다. reference https://coderanch.com/t/515027/databases/SerializationException-deserialize
문제 상황 젠킨스에서 빌드를 할 때, 내려받고자 하는 레포지토리에 lfs 파일이 있다면 (사이즈가 굉장히 큰) 내려받지 못하고 다음과 같이 에러가 발생했다. stderr: Downloading google-chrome-stable_current_amd64.deb (86 MB) Error downloading object: google-chrome-stable_current_amd64.deb (d6bb13a): Smudge error: Error downloading google-chrome-stable_current_amd64.deb (d6bb13aad7c0a2b026b8b36d2e8a74f9bf66fe64610ce12fbbd23b4325699da7): batch request: git@github.co..
Nginx로 웹서버를 구성한 프로젝트를 진행 중 끔찍한 에러를 만났다. 바로 502 Bad Gateway (nginx/1.8.2) 라는 페이지만 보이고, 아무 화면도 보이지 않았다. 인터넷에는 다양한 해결법이 있어서 여러가지 시도를 해보았는데, 다음 방법들이 있었다. Nginx 502 Bad Gateway가 뜨는 근본적인 문제는 대부분 Nginx가 가리키는 포트에서 서버가 정상적으로 동작하지 않을 때인데, 로그를 반드시 잘 확인해봐야 한다. sudo tail -f /var/log/nginx/error.log 터미널에 위 명령어를 입력해 에러 내역을 확인하고, 자신에게 맞는 해결법을 적용하자. 인터넷 서핑을 하면서 찾아본 해결법들을 정리해보겠다. nginx.conf 파일 수정 (실패) sudo nano /..
스프링 프로젝트 초기 설정 도중, 테스트를 돌리자 variable userRepository not initialized in the default constructor 에러가 발생했다. 생성자를 Lombok을 이용하여 만들었는데, variable not initialized in the default constructor라는 에러가 발생했다면, Lomnok이 정상적으로 동작하지 않는다는 뜻으로 다음과 같은 상황을 의심해봐야한다. Gradle 버전 확인 Gradle을 통해서 롬복 의존성 라이브러리를 추가해주었지만 동작하지 않는다면 자신의 Gradle 버전이 5.x 이상인지 확인해야한다. 그 이유는 Gradle 버전이 올라가면서 Lombok 의존성을 추가하는 방법이 바뀌었기 때문이다. Gradle 버전은 ..