본문 바로가기

분류 전체보기

(593)
마음챙김 세상에서 한 인간으로 살아가기, 참 내 마음대로 되는 것도 별로 없고 여간 쉬운 게 아니다. 내가 주말 동안 공들여 아무리 멋들어진 계획을 세워도 월요일 회사에서 이리 치이고 저리 치이다 보면 내가 하려고 했던 게 뭐였는지 가물가물해진다. 30대 대장정의 초입에 서 있는 나에게 이런 느낌은 비단 월요일 회사에서만 느껴지는 건 아니다. 사실 나의 20대 전부의 시간이 멋들어진 계획과 그 즉시 물거품 되는 계획들의 반복이었다. 그러다 보니 건진 건 하나 있어서, 적어도 내가 앞으로 (그러니까 30살인 현재부터) 어떻게 살아가고 싶은지에 대해선 어느 정도 방향을 잡았다. 즉, 인생 살이에서 무엇을(WHAT) 중요시할지에 대해서는 감을 잡았다. 하지만 어떻게(HOW)라는 부분에 있어서는 이제부터 알아가야 한다...
Gitlab의 용량이 Full이 되었을 때 해결법 이 글은 내가 관리하던 회사 Gitlab의 용량이 Full이 된 후 겪게 된 삽질을 다룬다. 때는 지난주 금요일, 함께 일하는 동료가 나에게 Gitlab 접속이 되지 않는다며 확인해달라고 한 게 시작이었다. Gitlab 웹 페이지에 접속을 시도하니 정말 5XX 에러가 뜨고 있었다. Putty로 Gitlab이 운영되고 있는 Ubuntu 서버에 접속해서 이것저것 확인해보니 디스크 용량의 Usage가 100%를 치고있던 것이었다…! 더욱이 이 하드 디스크의 용량은 고작 500GB밖에 되지 않았다. 지금까지 500GB 짜리 하나 믿고 Gitlab을 쓰고 있었다니… 곧바로 회사의 남는 하드 디스크를 공수하기 시작했다. 다행히 4TB짜리 놀고 있는 하드 디스크가 있어서 곧바로 Gitlab, 더 나아가서는 이 Git..
Java Coding Convention 1. 문자열은 UTF-8 로 통일 2. 윈도우의 CRLF가 섞이지 않도록 에디터와 GIT 설정 3. import 시 static import 가 아닌 이상 * 말고 패키지 명을 모두 명시 4. Indent는 스페이스 4개가 아닌 하드탭 사용, 에디터에서 스페이스와 탭을 구분하여 보여주도록 설정 5. 최대 줄 너비 120으로 줄바꿈을 강제하여 사용한다. 단, package, import 문은 중간에 바꾸지 않고 한 줄로 쓴다. 6. 줄바꿈 허용 위치 - extends 선언 후 - implements 선언 후 - throws 선언 후 - 시작 소괄호( '(' ) 선언 후 - 콤마(,) 후 - . 전 - 연산자 (+, -, *, / 등) 전 7. import 선언 문의 순서도 별도의 Convention이 존재..
우테캠 Pro 2기 TDD 야구게임 * 이 글은 우아한테크캠프 Pro 2기의 프리코스로 진행된 "야구게임 TDD 구현 영상"을 수강하고 메모한 글입니다. 1. 단축키 활용을 잘하자 1) 테스트 코드를 먼저 짜고 구현 클래스는 단축키로 생성하자. 2) 상수로 뺄 값들도 일일이 static final을 타이핑하지 말고 단축키로 빼자. 2. 되도록 객체가 자기 자신이 아닌 놈의 private 필드를 참조하지 않게 하자. 3. TDD로 진행할 때 문제는 가능한 한!!! 작은 단위로 쪼개라. 쉬워진다. 단순해진다. 야구 게임의 경우 공 하나에 대한 개념까지 단위가 쪼개졌다. 4. enum 도 객체다. 객체 취급할 수 있다. 값을 직접 비교하는 대신 객체간의 메시지를 주고받는 식으로 구현하는 것도 좋은 방법이다. 되도록 객체한테서 직접 값을 꺼내지 ..
HTTP 기본 /* 이 글은 김영한님의 "모든 개발자를 위한 HTTP 웹 기본 지식" 인프런 강좌를 듣고 정리한 글입니다. 강좌 링크> www.inflearn.com/course/http-%EC%9B%B9%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/dashboard */ 1. IP 프로토콜의 한계 A. 비연결성: 패킷을 받을 대상이 없거나 서비스 불능 상태여도 보낸 쪽에서 패킷이 잘 도착했는지 알 수가 없음 B. 비신뢰성: 중간에 패킷이 사라지거나 패킷이 순서대로 안 와도 받는 쪽은 모른다. C. 한 IP를 여러 프로그램이 사용하면 문제가 생긴다. 2. IP의 한계를 TCP, UDP에서 해결해준다. A. TCP (Transmission Control Protocol, 전송 제어 프로토콜) i. 연..
JUnit 5 기본 /* 이 글은 White Ship 님의 '"더 자바, 코드를 테스트하는 다양한 방법" 인프런 강좌를 듣고 정리한 글입니다. 강좌 링크> www.inflearn.com/course/the-java-application-test/dashboard */ [ 1 - JUnit 5 환경 ] A. 세부 모듈로는 Jupiter, Vintage, Junit Platform이 있다. B. 우리가 쓰는 @Test 어노테이션은 Junit Platform의 지원이 있기 때문이다. C. Java 8 이상에서 작동하며 대부분의 기능은 Jupiter 안에 있다. [ 2 - JUnit 5 기본 ] A. 테스트 클래스와 테스트 함수에 굳이 public 키워드를 붙일 필요가 없다. B. @BeforeAll, @AfterAll 어노테이션..
Clean Architecture (로버트 C. 마틴) - 3 이 글은 로버트 C. 마틴의 'Clean Architecture'를 읽고 정리한 문서이며, 총 3부작으로 구성되어 있습니다. Clean Architecture (로버트 C. 마틴) - 1 Clean Architecture (로버트 C. 마틴) - 2 [ CHAPTER 5 ] 아키텍처 [ 15장 – 아키텍처란 ? ] #1. 무엇보다도 소프트웨어 아키텍트는 프로그래머이며, 앞으로도 계속 프로그래머로 남는다. 소프트웨어 아키텍트라면 코드에서 탈피하여 고수준의 문제에 집중해야 한다는 거짓말에 절대로 속아 넘어가서는 안 된다. 소프트웨어 아키텍트는 코드와 동떨어져서는 안 된다. 소프트웨어 아키텍트는 최고의 프로그래머이며, 앞으로도 계속 프로그래밍 작업을 맡을 뿐만 아니라 동시에 나머지 팀원들이 생산성을 극대화할 ..
Clean Architecture (로버트 C. 마틴) - 2 이 글은 로버트 C. 마틴의 'Clean Architecture'를 읽고 정리한 문서이며, 총 3부작으로 구성되어 있습니다. Clean Architecture (로버트 C. 마틴) - 1 Clean Architecture (로버트 C. 마틴) - 3 [ CHAPTER 3 ] 설계 원칙 [ 7장 – SRP: 단일 책임 원칙 ] #1. 하나의 모듈은 하나의, 오직 하나의 액터에 대해서만 책임져야 한다. #2. SRP는 서로 다른 액터가 의존하는 코드를 서로 분리하라고 말한다. [ 8장 – OCP: 개방 폐쇄 원칙 ] #1. 소프트웨어 개체는 확장에는 열려 있어야 하고, 변경에는 닫혀 있어야 한다. #2. OCP는 시스템의 아키텍처를 떠받치는 원동력 중 하나다. OCP의 목표는 시스템을 확장하기 쉬운 동시에 ..