🛠️ 개발 환경 🍃 Spring : Spring Boot 3.1.3 🛠️ Java : Amazon corretto 17 🛠️ 구현 Jsoup 적용 우선 Jsoup 공식 문서에 적힌 글을 확인해보자! jsoup is a Java library for working with real-world HTML. It provides a very convenient API for fetching URLs and extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors. Jsoup이란, 실세계 HTML과 연동하기 위한 자바 라이브러리로, HTML5 DOM method와 CSS selector 등을 사용하여 URL 가져오..
개발 환경 💻 OS : M1 Mac Ventura 13.1 / EC2 Amazon Linux 🍃 Spring : Spring Boot 2.7.7 🏭 Env : Gabia(가비아), Nginx, Certbot/SSL Gabia 도메인 구매 앞으로 DNS를 사용할 것이기 때문에, 가비아에 들어가 도메인을 구매하자! 본인이 원하는 도메인을 검색한 뒤, 신청 구매 과정에서 따로 건들이는 것 없이 구매! 도메인 설정 메인화면 우측 상단에 있는 My가비아 버튼 클릭 방금 구매한 도메인의 관리 버튼 클릭 DNS 정보 탭에 들어가서 DNS 관리 버튼 클릭 방금 구매한 도메인의 가장 우측 설정 버튼 클릭 사진과 같이 레코드 수정을 눌러 편집 www, @ 총 2개의 호스트를 각각 지정해준뒤, TTL은 3600으로 지정해준..
개발 환경 💻 OS : M1 Mac Ventura 13.1 🍃 Spring : Spring Boot 2.7.7 🛠️ Java : Amazon corretto 17 📦 Stack : AWS : S3, CodeDeploy, EC2(Amazon Linux), RDS 해당 글은 개발 과정을 기록하기 위한 글입니다. 필요한 부분은 본인의 개발 환경 및 상황에 맞게 바꿔서 작성해야 합니다. CI/CD Flow 1️⃣ : 배포 브랜치에 Push 될 때, Github Actions 실행 2️⃣ : Actions를 통해 빌드한 후 AWS IAM 인증을 거친 뒤, 전체 파일을 .zip 파일로 묶어 S3에 업로드 3️⃣ : S3에 올라간 파일명을 토대로 CodeDeploy에 배포 요청 4️⃣ : 배포 요청을 받으면 S3에서..
Effective Java 3/E를 공부하며 작성한 글입니다. 혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀 .equals() 메소드는 함정이 많아 자칫하면 끔찍한 결과를 초래한다. 문제를 회피하는 가장 쉬운 방법은 아예 재정의하지 않는 것이다. 그냥 두면 그 클래스의 인스턴스는 오직 자기 자신과만 같게 되는 것이다. 아래 중 하나라도 해당된다면 재정의하지 않는 것이 최선이다. 각 인스턴스가 본질적으로 고유하다. 인스턴스의 '논리적 동치성'을 검사할 일이 없다. 상위 클래스에서 재정의한 equals가 하위 클래스에도 딱 들어맞는다. 클래스가 private이거나 package-private이고, equals 메소드를 호출할 일이 없다. 재정의하는 경우 객체 식별성(object..
Effective Java 3/E를 공부하며 작성한 글입니다. 혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀 item8에서 공부한 것과 같이 AutoCloseable을 구현한 뒤, close() 메소드를 통해 직접 닫아줘야 하는 자원이 많다. try-finally public class TryTest { private String firstLineOfFile(String path) throws IOException { BufferedReader br = new BufferedReader(new FileReader(path)); try { return br.readLine(); } finally { br.close(); } } @Test void tryFinallyTest()..
Effective Java 3/E를 공부하며 작성한 글입니다. 혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀 객체를 생성하는 new라는 키워드가 있듯이, 자바는 두 가지 객체 소멸자를 제공한다. finalizer cleaner 하지만 이 두 기능은 예측할 수 없고, 상황에 따라 위험할 수 있어 일반적으로 불필요하다. finalizer finalizer 메소드는 Object 클래스 내부에 있어, @Override를 통해 재정의할 수 있다. @Deprecated(since="9") protected void finalize() throws Throwable { } 하지만 해당 메소드를 살펴보면, 위와 같이 finalze는 Java 9 버전부터 Deprecated 처리된 것을 알..