분류 전체보기 460

객체지향의 사실과 오해 - 역할, 책임, 협력 관점에서 본 객체지향 | 조영호

2년 전에 읽었던 객사오를 다시 읽고, 책의 내용을 정리한 글입니다. [목차] 협력하는 객체들의 공동체 객체란 무엇일까 협력하는 사람들 협력 속에 사는 객체 메세지와 메서드 이상한 나라의 객체 객체와 소프트웨어 나라 객체와 상태 상태 캡술화 행동이 상태를 결정한다. 타입과 추상화 추상화를 통한 복잡성 극복 객체지향과 추상화 객체의 일반화와 특수화 역할, 책임, 협력 책임의 분류 대체 가능성 책임 주도 개발 책임과 메세지 다형성 유연하고 확장가능하고 재사용성이 높은 협력의 의미 객체 인터페이스 인터페이스와 구현의 분리 도메인 모델 1. 협력하는 객체들의 공동체 1) 객체란 무엇일까 ✔️ 객체란 현실 세계에 존재하는 사물에 대한 추상화이다. ✔ 객체 지향의 목표는 실세계를 모방하는 것이 아닌, 오히려 새로운..

육각형 개발자 - 시니어 개발자로 성장하기 위한 10가지 핵심 역량 | 최범균

최근에 진행하게 된 스터디에서 읽게된 책인데 편하게 잘 읽히고 기억하고 싶은 내용이 있어 기록으로 남겨보고자 합니다. 1장 들어가며 1) 개발이란 ✔️ 서비스 기업에서의 개발은 사용자에게 기능을 제공하는 일이다. ✔️ 고객의 요구를 파악하고 원하는 것을 충족하는 기능을 만드는 것이 개발이다. ✔️ 개발은 단순히 경력을 쌓거나 관심 있는 기술을 사용하기 위한 과정이 아니었다. ✔ 개발은 회사와 나에게 돈을 벌어주는 기능을 만드는 과정이기도 했다. 내가 만든 결과물은 직간접적으로 회사의 수익과 연결된다. ✔️ 회사 규모가 작을수록 개발 결과물이 회사가 생존하는 데 큰 영향을 준다. ✔️ 코딩과 구현 기술은 개발의 일부이지 개발의 전부는 아니다. ✔️ 개발자가(저자가) 성장한다는 느낌을 받지 못한 이유 중 하..

Spring Rest Docs Enum class 문서화 하기

개발환경 : Java 17, Spring 3 현재 사이드 프로젝트에서 Rest Docs + Swagger UI 를 사용 중 입니다. (참고 → restdocs + swagger ui 같이사용하기) 보통 상태나 선택 특정 목록같은 딱딱 선택지가 정해져있는 상태값은 Enum 으로 관리하는 걸 선호하는 편인데, 이게 RestDocs 를 사용하지만, Open API 를 사용하여 바로 Swagger UI 에 적용되는 json 파일을 자동적으로 만들어주다보니, Enum 클래스에 대한 문서 지원이 되지않아 (찾지못해) 신경이 좀 쓰였습니다. 그래서 이번 글에서는 Rest Docs 와 Open API를 이용한 Swagger UI 적용환경에서 ENUM 클래스를 어느정도 문서화하기 편한 상태로 만든 방법에 대해 공유하고자..

Spring/Spring Boot 2024.03.19

알고리즘 학습 플랫폼 코드 트리 후기

안녕하세요 오늘은 1달동안 사용해본 알고리즘 학습 플랫폼 코드트리를 소개해보고자 합니다. https://www.codetree.ai/ 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai Code Tree 코드트리는 백준, 프로그래머스와 같은 알고리즘 학습 플랫폼입니다. 코드트리는 백준과 같이 GitHub 와 바로 연동되어 학습한 문제가 바로 Git 에 Commit되기도 하고 프로그래머스처럼 단계별 알고리즘 학습이 체계적으로 나뉘어져 있어 굉장히 좋았습니다. 또한 두 학습 플랫폼과 다르게 문제에 대한 해설과 틀린 테스트 케이스를 공개한다는 점이 저는 제일 ..

AWS EC2 auto scaling 이해하기

AWS 단일 EC2 서버에 Auto Scaling 을 적용하기전 공식문서를 읽고 정리한 글 입니다. AWS 생태계에서 EC2 Auto Scaling 은 작은단위의 서비스로써, AWS의 다양한 서비스에 거의대부분 적용되는 서비스 같다. 모듈식으로 서로서로 연계되는 AWS에서 Auto Scaling 알아보자! [목차] Auto Scaling 을 사용하고자 하는 이유 Scale up 과 Scale Out Blue Green 배포 Auto Scaling 이란 Auto Scaling 특징 및 장단점 AWS EC2 Auto Scalig Group 적용 하기 1. Auto Scaling 을 사용하고자 하는 이유 Scale up 과 Scale Out 인프라를 확장하는 2가지 개념 scale up : 인프라 자체의 성능..

Infra/AWS 2024.02.28

Jenkins → GitHub Action 이전기 (GitHub Action으로 AWS CICD 구축 하기)

이번글은 GitAction 의 사용 방법에 대한 기록입니다. 서두 현재 사이드 프로젝트의 CI/CD 프로세서 구조는 Jenkins 를 활용하고있습니다. GItHub Merge → Jenkins (Main Branch Build & Jar file deploy) → ec2 shell script 실행 의 구조인데 Jenkins 를 사용하면 몆가지 불편한 점이 생겨 Git Action을 사용하는 방안으로 변경해보고자 합니다. 불편했던 점 EC2 프리티어가 끝나고, test 코드가 많아지면서 빌드시간과 용량이 커져 비용이 늘어가는게 보인다. Jenkins 서버가 메모리 과부하로 종료되는 경우가 발생해 복구하는게 번거롭다 Jenkins 자체적으로 Job의 다양한 구성방식이 존재해 여러 Job 의 관리가 번거롭다..

Infra/CI, CD 2024.02.21

개발자의 다이어그램 익숙해지기

3주만에 쓰는 글입니다 ㅎㅎ 요즘 글쓰는게 조금씩 부담감이 커져, 점점 안쓰게되는데.. 다시 가벼운 마음으로 가볍게 가볍게 포스팅을 이어나가볼까 합니당 최근 스터디로 [육각형 개발자 - 최범균] 책을 읽고있는데, 코드 이해를 위한 도구 중 하나로 "다이어그램"이 나와 이에 대해 스터디 팀원들과 이야기를 해보았습니다. 책의 요지는 다음과 같았습니다. 서비스는 사회 환경의 변화에 맞춰 함께 변화되어야한다. 그러기위해서는 코드비용(코드를 변경하는데 드는 인건비)이 적어야한다. 개발자가 코드를 변경할때는 [(1)코드 이해], [(2) 코드 수정] 이 2가지 단계를 거친다. 이 중 "코드를 이해하는 시간"을 줄이기 위해서는 2가지 역량이 요구된다. 코드를 제대로 이해할 수 있는 역량 이해하기 쉬운 코드를 작성하는..

[Spring] FCM 푸시 알림 연동하기 (AOS, IOS)

오늘은 현재 진행중인 '채팅 서비스' 사이드 프로젝트에 적용할 목적으로 💡 Spring 기반의 Server 에서 푸시알림을 전송하는 방법에 대해 공부해보고자 합니다. 우리가 흔히 아는 어플리케이션 Push 기능을 쉽게 구현하기 위해서 시중에 나와있는 서드파티 솔루션들을 이용할 수 있는데 가볍게 찾아보았을때 가장 많이 나오는 솔루션을 2가지로 추릴 수 있었습니다. Amozon SNS (Simple Notification Service) FCM (Firebase Cloud Messaging) 위의 2가지 솔루션 모두 믿음직스러운(?) 대기업에서 제공하는 기술이지만 FCM 이 조금 더 적용하기 쉬워보였고 (공식문서가 잘나와있음) 또, '무.료.' 라는 점 (아마존은 알림 1백만 개당 0.50 USD) 안드로이..

Spring/Spring Boot 2024.01.07

[Docker] 컨테이너 내부 데이터 영속적으로 관리하기 (Docker volume, mount)

Docker 에서 생성되는 데이터를 영속적으로 관리하기 위한 효과적인 방법으로 볼륨과 마운트가 있습니다. 도커에서 제공하는 이 2가지 기능을 이요하여 로컬(Host)의 폴더와 컨테이너의 내부 폴더를 동기화 시킬 수 있습니다. Docker Volume Docker Bind Mount 이번 포스팅에서는 이 2가지 기능에 대해 정리해보고자 합니다. [목차] Docker Container 내부에서 Data 저장 과정 Docker 의 영속적 데이터 저장 방법 1) Volumes (1) 익명 볼륨 - Anonymous Volumes (2) 이름이 있는 볼륨 (명명된 볼륨) - Named Volumes (3)❗️ Volume의 메모리 저장 위치 (Mount Point) 2) Docker Bind Mount - 바인드..

Docker 이미지 & 컨테이너 이해하고 사용하기

[Infra/Docker(도커)] - Docker - 도커란 이전 글에서 Docker의 개념에대해 살짝 정리해보았습니다. 이번 글에서는 Docker 실질적으로 사용하기위한 개념인 컨테이너와, 이미지에 대해 학습 정리를 하고자 합니다. [목차] Docker Images, Container 차이점 Contanier 이미지 사용하기 (이미지 만들기) 외부 빌드된 이미지 - Docker Hub 이미지 가져오기 커스텀화된 이미지 - DockerFile 로 이미지 빌드하기 도커 이미지 레이어 이해하기 도커 이미지 지우기 Docker hub 에 커스텀 이미지 올리기 Docker 로 EC2에 배포하기 1. Images vs Containers Docker 환경에서의 이미지와 컨테이너의 차이점 > 도커는 컨테이너 격리 ..

반응형