다른분들 코드리뷰를 보다가 static 메서드를 사용하는거를 보고 "static 메서드를 사용하는 이유가 뭔지 알 수 있을까요?" 라는 리뷰가 달렸는데 제가 관련자는 아니지만 만약 내가 답변이 남긴다면 뭐라고 남길가 해봤는데 논리적인 근거를 가지고 명확하게 설명을 못하는 저 자신을 발견했습니다. 저도 옛날에 공부하고 어느덧 다 휘발되고 관성적으로 쓰고 있었습니다. 마치 한국어 문법 모르는 부분을 사용하는 데 느낌적으로 이게 맞다라고 생각하고 쓰듯이 말이죠 그래서 이참에 정리해보았습니다. 혹시 여러분들은 잘 설명하실 수 있나요? 🚀 정적 팩토리 메서드 정적 팩토리 메서드(Static Factory Method)는 객체의 생성 방식을 단순화하고 제어하기 위한 패턴으로, 클래스의 생성자를 직접 호출하..
분류 전체보기
미션 1 : 아래 코드와 설명을 보고, [섹션 3. 논리, 사고의 흐름]에서 이야기하는 내용을 중심으로 읽기 좋은 코드로 리팩토링해 봅시다.https://github.com/Ryan-Dia/readable-code/tree/main/src/main/java/cleancode/day04 미션 2: SOLID에 대하여 자기만의 언어로 정리해 봅시다.1. 단일 책임 원칙 (Single Responsibility Principle)하나의 클래스나 모듈은 오직 하나의 책임만 가져야 합니다.코드를 작성할 때 각 클래스가 명확한 역할을 갖도록 하는 것이 중요하다고 느낍니다. 이렇게 하면 유지보수가 쉬워지고, 수정해야 할 때 영향을 최소화할 수 있습니다. 2. 개방-폐쇄 원칙 (Open/Closed Principl..
Amazon Linux 2023 레포지토리에는 fail2ban이 포함되어있지 않습니다. (Amazon Linux 2에는 포함)만약 들어있었다면 간단하게 `sudo dnf install fail2ban`로 설치 할 수 있었지만 우리는 직접 설치해줘야합니다. (현재 패키지 요청은 2023 6월 21일에 되어있으나 공식 답변은 없는 상황이다.)(미래 보시는 분들은 지금 추가되었나 확인하고 싶으시면 Amazon Linux 2023 release notes를 확인해보세요)(정말 엄청난 삽질을 하고 제대로된 설치 방법을 알아냈습니다. 여러분의 시간을 아껴드립니다) 1️⃣ python3-devel 패키지 설치`python3-devel`패키지는 python 소스를 빌드하고 개발하는 데 필요한 헤더 파일과 라..
올해도 어김없이 돌아온 slash 24 그동안 온라인으로만 즐겼는데 드디어 오프라인으로 즐길 기회가 생겼습니다. 2024년 9월 12일 목요일 삼성동 코엑스에서 진행됩니다. 관심있으신 분들은 바로 신청해보세요!https://toss.im/slash-24 토스 개발자 컨퍼런스 SLASH24참가 신청 8.23-9.2 / 본 행사 9.12 COEXtoss.im 저는 벌써 시간표도 다 짜놓았습니다.
은근 프로젝트를 하고나면 놓치기 쉬운게 종속성 관리입니다. 하나의 프로젝트에 정말 수십 수백개의 의존성이 있습니다. 이것을 모두 관리하기란 쉽지 않습니다. 우리가 자주 접하는 spring-boot만 해도 매 업데이트마다 의존성 업데이트가 있습니다.물론 규모가 엄청 커서 그럴수도 있지만 여러분의 프로젝트도 규모가 커질수록 다양한 기능이 추가될수록 더 많은 의존성을 추가하게 될 것이고 점점 관리해야할 패키지들이 많아질 겁니다. 새로운 기능을 사용하기위해 종속성을 업데이트 할 수 있지만 그것 보다 더 중효한 것은 치명적인 에러 그로인한 보안적인 이유가 발생했을 때 패치된 버전을 빠르게 올려줘야합니다. 하지만 모든 종속성을 트레킹하며 어떤 중대한 오류가 있었는지를 확인하기는 어렵습니다. ..
(예고 : 결론부터 말하자면 Query DSL에서 LocalDate는 아무 문제 없습니다. ^^ ) 역시 오늘도 에러가 터졌습니다. 그냥 지나가는 날이 없는 것 같습니다. ㅎㅎ예예~~ 1️⃣ 증상 현재 저희서비스에서는 뉴스레터 보관함은 수 많은 필터가 존재하기에 JPQL로 작성하면 엄청 복잡해지기에 해당 로직은 query dsl을 사용해서 구현했습니다. 여러가지 필터, 읽은 아티클 숨김, 검색등을 한 번에 처리하기에는 query dsl이 좋다고 생각되어 사용하였습니다. 하지만 최근에 문제가 발생하였습니다. 8일전?? 9일전???왜 그러지 where문이 동작을 안하나???? LocalDate가 이상한가?? 혹시 프론트가 표기를 잘 못했나 ?? 일단 서버 로그를 먼저 확인해보았는데 아뿔..
이전에 fe할때는 AWS에서 도메인을 구매하고 route 54과 ACM, ALB을 이용해서 배포 했는데 nginx로 하는 방법을 훑어보니 훨씬 쉬웠다. 뭔가 블로그들이 다 쉬운걸 어렵게 설명한 느낌이 있어서 내가직접 쉽게 할 수 있도록 작성해보자 해서 이렇게 작성중입니다. 만약 이러한 과정이 처음이라면 아래 접은 글을 확인해주세요. 더보기웹 서버 나라에 Nginx라는 친절한 경비병이 살고 있었습니다. Nginx 경비병은 여러 웹사이트 마을을 안전하게 지키는 역할을 맡고 있었어요.어느 날, 웹사이트 마을 사람들은 인터넷 강도들이 가로챌 수 없는 안전한 통신을 원하게 되었습니다. 그래서 마을 사람들은 Nginx 경비병에게 안전한 HTTPS 보호막을 만들어 달라고 요청했습니다.Nginx 경비병은 H..
프론트를 할때 미약하게나 해봤지만 자세하게 공부하는 건 이번이 처음이다. 먼저 아래와 같이 구성을 해보았다. 미래에 과금이 되더라도 jenkins를 사용할 예정이지만 아직 공부하는 단계이니 비용이 발생하지 않고 이전에 사용해봐서 익순한 Github Actions를 사용하기로 했다. 장점Docker 기반으로 서비스를 운영할 때 가장 간단하게 구성할 수 있는 인프라 구조단점무중단 배포를 구현하거나 여러 EC2 인스턴스에 배포를 해야하는 상황이라면 직접 Github Actions에 스크립트를 작성해서 구현해야 한다. 1️⃣ EC2 생성 및 세팅 저는 프리티어에 맞게 세팅을 하고 OS는 AWS Linux 2023으로 진행했습니다. 기존에 프리티어이신분들이 많이 사용하는 건 AL2이지만 미래와 효..
📢 요약여러분이 위와 같은 에러를 만난다면 여러가지 경우의 수를 확인해보셔야합니다. 1️⃣ Gradle 설정확인 Gradle 설정 파일이 제대로 구성되었는지 확인해주셔야합니다. 2️⃣ Q 클래스 생성 확인Q클래스가 올바르게 생성이 되었는지 확인하셔야합니다.(build/generated/sources/annotationProcessor/java/main 디렉터리에 생성되어있어야 합니다.) 3️⃣ query를 올바르게 작성하였는지 확인해주세요. 📖 오류 회고 1️⃣ Gradle 설정확인 configurations { compileOnly { extendsFrom annotationProcessor }}dependencies { implementation 'com..