레디스 이것저것
·
Programming
지난 1년간 레디스를 실무에서 처음 접하면서 여러 가지 작업을 했다. 뭔가 명확한 정보를 전달한다기보다는 경험과 트러블슈팅을 기록한다는 느낌으로 끄적여본다.끄적 1, 레디스는 데이터를 메모리에 저장한다.레디스를 사용하는 가장 큰 이유 중 하나는 데이터를 디스크가 아닌 메모리에 저장하기 때문이다. 일반적으로 데이터베이스에 데이터를 저장하면 디스크에 이를 보관한다. 이 말은 디스크에 저장되어 있는 데이터를 조회하면 디스크와 메모리와 네트워크를 거친다는 말과 같다. 디스크, 메모리, 네트워크의 경계에서 발생하는 유저 & 커널 스레드 전환 및 버퍼에 데이터를 옮기는 과정 중 가장 느린 디스크에서 데이터를 옮기는 작업이 없으니 당연히 데이터 읽기 및 수정 요청의 응답 속도가 빠를 수밖에 없다. 물론 레디스도 AO..
몽고DB 이것저것
·
Programming
지난 1년간 몽고DB를 실무에서 처음 접하면서 여러 가지 작업을 했다. 뭔가 명확한 정보를 전달한다기보다는 경험과 트러블슈팅을 기록한다는 느낌으로 끄적여본다.끄적 1, 몽고DB는 NoSQL이다.몽고DB는 NoSQL이라고 불리는 제품 중에서 현재 가장 유명하고 범용적이다. 전통적인 RDB와 다르게 스키마 없이(Schema-Less) 사용하는 것이 가능하고 RDB의 단점 중 하나인 확장성(Scalability)을 적극적으로 지원한다. 여러 개의 노드로 구성된 클러스터에 데이터를 분산해서 저장하는 방식인 Sharded Cluster이 그것이다.끄적 2, 몽고DB 관련 도구는 Compass를 추천한다.터미널로 직접 접근해서 사용하는 것을 좋아하는 분들도 계시겠지만 나는 GUI 환경을 지원하는 도구를 사용하는 것..
코틀린 하나의 파일에 클래스 하나만 사용하기 vs 여러 개 사용하기
·
Programming
서론코틀린은 하나의 파일(. kt)에 원하면 여러 개의 클래스 파일을 선언할 수 있다. 하나의 파일(. java)에 하나의 클래스만 선언할 수 있는 자바와 다른 점이다. 연관된 클래스를 하나의 파일에 선언할 수 있다는 장점이 있지만 나는 이 부분에 대해서는 하나의 파일에 하나의 클래스만 사용하는 방식이 여러모로 좋다고 생각하는데. 이와 관련된 이야기를 해보려고 한다.이유 1. 하나의 파일에서 많은 코드를 다루는 것은 가독성 관점에서 좋지 않다단순히 생각해 봤을 때 하나의 클래스에 절대적인 코드량이 많다면 이를 이해하는 것이 쉽지 않을 것이다. 사람의 뇌는 한 번에 처리할 수 있는 정보의 양이 제한적이라고 한다. 내가 파일을 열었을 때 받아들여야 하는 코드 양이 적은 것이 많은 것보다 훨씬 집중이 되고, ..
한 편으로 끝내기 - 제네릭과 변성(공변성, 반공변성)
·
Programming
서론최근에 이펙티브 코틀린을 다시 읽고 있습니다. 처음 읽었을 때 이해가 잘 안 되어서 넘긴 내용이 이제는 조금씩 읽혀서 신기하기도 하고 다행이기도 하고 그렇습니다. 책에서 다루는 내용 중 "아이템 24. 제네릭 타입과 variance 한정자를 활용하라" 챕터에서 다루는 코틀린의 제네릭과 변성에 대해서 이해한 내용을 정리했습니다. 예시 코드는 코틀린으로 작성했지만 여러 프로그래밍 언어에서 다루는 개념인 만큼 이번 글을 통해 제네릭의 변성과 관련된 개념을 정확하게 이해하실 수 있도록 풀어보겠습니다.제네릭위키백과에선 제네릭 프로그래밍을 데이터 형식에 의존하지 않고, 하나의 값이 여러 다른 데이터 타입들을 가질 수 있는 기술에 중점을 두어 재사용성을 높일 수 있는 프로그래밍 방식이라고 설명합니다. 제네릭은 제..
[2023 ver.] 서버 개발자 mac 장비 설정
·
Programming
2021년에 비슷한 주제의 포스트를 작성했습니다. Mac 장비 지급 후 세팅 방법 정리21.10.08. 업데이트 Xcode homebrew iterm 폰트 바꾸기 한글 깨짐 해결 투명도 조절 color scheme 수정 oh-my-zsh 설치 테마 변경 플러그인 설치 호스트 이름 가리기 문단 줄바꿈 자주 사용하는 명령어 alias 설정doljae.tistory.com이번에 개인 장비를 새로 설정하는 과정을 단계 별로 정리했습니다.시스템 계정 생성전체 이름은 변경 가능하지만 유저 디렉토리 이름은 이후에 변경하기 조금 부담스러울 수 있습니다.네이밍 컨벤션 및 저의 경험 상 서버에서 많이 사용하고 있는 firstname.lastname 형식으로 설정합니다.macOS 환경 설정화면 모드스크롤 막대 보기: 항상데..
성능 테스트
·
Programming
지연 테스트(Latency test) 종단 트랜잭션에 걸리는 시간은? 처리율 테스트(Throughput test) 현재 시스템이 처리 가능한 동시 트랜잭션 개수는? 부하 테스트(Load test) 특정 부하를 시스템이 감당할 수 있는가? 스트레스 테스트(Stress test) 이 시스템의 한계점(breaking point)은 어디까지인가? 내구성 테스트(Endurance test) 시스템을 장시간 실행할 경우 성능 이상 증상이 나타나는가? 용량 계획 테스트(Capacity planning test) 리소스를 추가한 만큼 시스템이 확장되는가? 저하 테스트(Degradation) 시스템이 부분적으로 실패할 경우 어떤 일이 벌어지나?