서버 이중화(Redundancy)
이중화 (Redundancy) 이중화는 시스템의 구성 요소를 2개(n개)로 중복시켜 한 구성 요소가 실패하더라도 다른 구성 요소가 그 역할을 대신 할 수 있도록 하는 것을 말합니다. 그러면, 어떤 구성 요소를 중복해야 할까요? 바로 SPoF(Single Point of Failure)에 해당하는 구성 요소입니다. SPoF는 시스템, 네트워크 또는 프로세스에서 단일 구성 요소가 실패할 경우 전체 시스템의 기능이 중단되는 지점을 의미합니다. 이렇게 하나의 구성 요소가 실패하여 전체 서비스를 중단시킬 수 있는 부분을 이중화해야 합니다. 이중화는 시스템의 고가용성(High Availability), 결함 감내(Fault Tolerance)를 보장하여 서비스의 연속성을 유지하고, 장애 발생 시 신속하게 대응할 수 있는 장점을 갖고 있습니다....
[도서 서평] - 맡겨진 소녀 - 클레어 키건
책 제목: 맡겨진 소녀 저자: 클레어 키건 번역: 허진 출판사: 다산책방 발간일: 2023년 4월 21일 https://product.kyobobook.co.kr/detail/S000201621680 책을 읽기 전, 이 책을 읽게 된 계기는 평소 좋아하는 영화 평론가인 이동진님이 추천한 영상을 통해서였다. https://youtu.be/ZZuD0EDOfwY?si=RLoqI3B5ZAvrQAhN&t=415 이 책의 저자인 클레어 키건은 감정적으로 섬세한 문장이 두드러진다고 이 영상에서는 설명한다. 그리고 대부분 책의 분량이 길지 않다는 것도 특징이었다. 오랜만에 소설을 읽고 싶었던 시기여서 더욱 매력적인 책으로 다가왔었다. 이 책의 원재는 ‘foster’이다. 이 의미를 ChatGPT에게 물어보면 다음과 같은 대답을 볼 수 있었다....
2024년 Weekly Log
3월 3주차 2024년 3월 3주차 주간 기록입니다. 처음 작성한 것이다보니, 언제든지 형식은 변경될 수 있습니다. 그리고 3주차 이전에 했던 것들도 이 글에는 작성될 수 있습니다. 개발 “프로세스는 만들 때는 최대한 많은 고민을 통해 공들여야 한다. 프로세스를 실행할 때는 극단적으로 아무 생각없이 돌려도 문제가 없어야 한다.” [책] 구글 엔지니어는 이렇게 일한다. 매일 읽는 책으로 이 책을 선정하였다. 책을 산지는 1년 가까이 된 것으로 기억하는데, 개발을 한지 만 3년이 넘어간 시점에서 어떤 개발자가 될지 고민이 되어 이 책을 읽게 되었다....
[MyBlog] 게시글에 이미지 삽입하기
Github 블로그와 같은 static 블로그를 운영할 때, 불편한 점 중 한 가지는 이미지를 삽입하는 과정이 번거롭다는 것이다. 먼저, 마크다운에서 이미지를 가져오는 문법에 대해서 알아보자. ![image_name](URL or Path) 이미지의 URL 또는 이미지 파일이 저장되어있는 Path 둘 다 사용할 수 있다. 그러다보니, 보여주고 싶은 이미지를 설정하는 방법 또한 두 가지이다. 외부 저장소에 올려서 URL 가져오기 삽입할 이미지를 외부 저장소에 올린 후, 생성된 URL을 사용하는 것이다. 여기서 외부 저장소는 대부분 Github를 사용한다. 특히, 현재 블로그는 Github 리포지토리를 활용하고 있어서 같은 곳에 저장을 하고 있으면 관리하기가 좋다....
ChatGPT 활용하기 - Part 2
1편에서는 GPT 모델과 ChatGPT에 대해서 전반적으로 살펴보고, 이를 효율적으로 사용하기 위해 필요한 프롬프트 기법에 대해서 다루었습니다. ChatGPT 4가 나오면서 답변의 퀄리티가 향상된 것은 물론, 흥미롭고 편리한 기능들이 추가되었습니다. ChatGPT 4를 사용하기 위해서는 ChatGPT Plus 구독이 필수적으로 필요합니다. (월 20$) 이번 2편에서는 ChatGPT 3.5와 비교하여 4 버전에서는 어떤 점이 달라졌는지와 추가된 기능, 그리고 이를 활용하는 방법에 대해서 알아보겠습니다. 마지막에는 ChatGPT 5 소식과 ChatGPT 외의 다른 LLM 서비스는 어떤 것이 있는지 간단히 살펴볼 예정입니다....
TDD, 클린 코드 with Kotlin 7기 후기
Next step에서 진행하는 ‘TDD, 클린 코드 with Kotlin 7기’ 강의를 들은지 벌써 2달이 지났다. 후기를 작성을 빨리 하고 싶었지만, 업무를 병행하면서 미션을 모두 진행했다는 뿌듯함에 너무 오랫동안 미루게 되었다. 이제야 부랴부랴 작성해본다… (강의 링크: https://edu.nextstep.camp/c/Z9QeJlCi/) 코틀린은 백엔드 개발쪽에서도 자바와 비교하여 대체할만한 언어로 몇 년간 화두에 올랐었습니다. 그래서 계속 관심을 갖고는 있었지만 딱히 공부를 하지는 않았었습니다. 첫 째는 자바도 충분히 빠르게 발전하고 있었다고 생각하였고, 다니고 있던 회사에서도 코틀린은 거의 사용하지 않아서 동기부여가 되지 않았었습니다....
ChatGPT 활용하기 - Part 1
ChatGPT는 현재 어떤 분야에 있는 사람이든 한 번쯤은 들어보거나 직접 사용해보았을 것입니다. 요즘은 AI라고 하면 가장 먼저 떠올릴 만큼 대명사로 자리잡은 것으로 보입니다. 그만큼 AI에 대해서 사람들이 이제는 피부로 느껴질 만큼 일상생활에 영향을 주고 있습니다. 저 역시 작년부터 꾸준히 사용해오고 있는 사용자로서, 무엇보다 놀라운 점은 ChatGPT가 저의 개발 스타일에도 큰 변화를 준 것입니다. 써보신 분들이라면 공감할 수 있겠지만, 구글링한다거나 스택 오버플로우에 접속하는 시간이 매우 적어졌습니다. 내가 원하는 것을 말로 표현하면, (심지어 추상적으로 간단히만 표현해도) 그에 맞게 적절히 정리해주고 답변을 주기 때문에 시간이 많이 단축되고 효율적이었습니다....
2023년 마무리
개발 스터디 2월 ~ 5월: [사내 스터디] 인프런 강의 - 토비의 스프링 부트 - 이해와 원리 4월 ~ 8월: [Over-10 스터디] 책 - 이벤트 기반 마이크로서비스 구축 7월 ~ 11월: [사내 스터디] 인프런 강의 - 카프카 완벽 가이드 - 코어편 10월: [Monday9PM] 글 작성 및 발표 - 소프트웨어 테스트 12월: [Monday9PM] 글 작성 및 발표 - 객체를 다루는 다양한 방식 (with Java) 작성 글 2월 Hugo 블로그 생성 과정 (theme PaperMod) Java 11 vs Java 17 자바 웹 기술 역사 5월 [Kafka] 101 - 카프카에 대한 소개와 주요 설정 Spring Boot에서 카프카 사용하기 8월 MyBatis 필드 및 파라미터 매핑 (with....
객체를 다루는 다양한 방식 (with Java)
이번글에서는 객체지향언어, 특히 자바에서 객체를 다루는 다양한 방식에 대해서 알아봅니다. 1. Object References 객체(Object)를 생성해서 사용하려면, 언어에서는 필연적으로 변수에 객체를 담아야합니다. 이 변수에 담기는 것은 객체를 참조(Reference)하는 주소값입니다. 이를 Object Reference라고 부르고, 객체를 다루는 언어에서 객체를 사용하는 방법입니다. 간단한 영화 예제를 살펴보겠습니다. // Movie Object public class Movie { private String title; private String directorName; private int runningTime; // 생성자 생략 } // Object Reference Movie movie = new Movie("오펜하이머", "크리스토퍼 놀란", 180); 생성한 Movie 객체는 메모리 어딘가에 저장이 될 것이고, movie 변수는 이 저장된 메모리의 시작 주소값을 할당받습니다....
소프트웨어 테스트
소프트웨어를 개발하면서 테스트에 대한 중요성은 많이 알려져있습니다. 테스트는 크게 수동 테스트와 자동화된 테스트 두 가지로 나뉩니다. 수동 테스트는 말그대로 손으로 직접 테스트를 하는 것으로 기능을 직접 실행하여 테스트합니다. 이는 테스트 환경을 설정하거나 테스트 과정을 직접 따라하는 과정의 시간이 오래 걸리고, 같은 테스트를 반복하기가 어렵습니다. 그리고 사람의 눈으로 확인하는 것이기 때문에 실수할 확률이 높아 신뢰도가 떨어집니다. 반면에 자동화된 테스트는 일련의 스크립트를 작성하여 이 스크립트를 실행하는 것만으로 테스트가 완료됩니다. 스크립트를 잘 작성해야하는 어려움이 있지만, 한 번 작성한 테스트는 실행 한 번으로 모든 테스트를 할 수 있고 쉽게 반복할 수 있습니다....