일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Python
- Router
- Cosmos
- programmers
- 도커
- 라우터
- 코딩 테스트
- Routing
- 스노트
- Snort Rule
- coding test
- docker
- TDD
- 스노트 룰
- database
- 코딩테스트
- db
- 데이터베이스
- 컨테이너
- OSI7계층
- 프로그래머스
- 트레바리
- 라우팅프로토콜
- snort
- 라우팅
- osi7layer
- MySQL
- Linux
- Container
- 리눅스
- Today
- Total
목록Simple is IT (165)
Simple is IT, 누구나 보고 누구나 깨닫는 IT
Planetary orbital calculator 태양계의 모든 행성들의 궤도 데이터를 담는 객체가 필요했습니다. @Test void 궤도를_생성합니다() { Orbit actual = Orbit.of(LONG_RADIUS, ECCENTRICITY, INCLINATION, LONGITUDE_OF_ASCENDING_NODE, AVERAGE_LONGITUDE, PERIHELION_LONGITUDE); assertThat(actual).isInstanceOf(Orbit.class); } 날짜별 행성의 위치 계산에 필요한 궤도 데이터가 정의되어야 했기에, 제가 필요한 데이터들을 생성자로 넣어줬습니다. 그리고, 그 객체가 Orbit 인지 확인했죠. 처음엔 빠르게 통과시키기 위해, 빈 객체를 반환했습니다. 통과하..

Fibonacci 첫 번째 테스트는 fib(0) = 0 으로 시작합니다. @Test void fibonacci() { assertThat(Fibonacci.fib(0)).isEqualTo(0); } 어차피 확인할 값이 0 뿐이라, 빠르게 성공시키기 위해 0을 바로 반환합니다. public static int fib(int n) { return 0; } 두 번째 테스트는 fib(1) = 1 입니다. @Test void fibonacci() { assertThat(Fibonacci.fib(0)).isEqualTo(0); assertThat(Fibonacci.fib(1)).isEqualTo(1); } 돌려보면, 당연히도 실패하겠죠. 저는 빠르게 테스트를 성공시키기 위해 아래와 같은 '범죄'를 저지를 것입니다...
상황 객체를 생성하고, 해당 객체의 getter 를 이용해 비교 테스트를 진행했습니다. @Test void create() { Post actual = Post.of(ANY_ID, ANY_TITLE, ANY_CONTENT, ANY_DATE, ANY_STATUS); assertThat(actual.getId()).isEqualTo(ANY_ID); assertThat(actual.getTitle()).isEqualTo(ANY_TITLE); assertThat(actual.getContent()).isEqualTo(ANY_CONTENT); assertThat(actual.getDate()).isEqualTo(ANY_DATE); assertThat(actual.getStatus()).isEqualTo(ANY_S..
Url Rules 맨 끝엔 / 를 포함하지 않는다. Bad https://api.currenjin.com/users/ Good https://api.currenjin.com/users Underbar(_) 대신 Dash(-) 를 사용한다. 단, Dash(-)의 사용도 최소한으로 설계한다. 불가피한 경우에만 사용한다. Bad https://api.currenjin.com/users/phone_number Good https://api.currenjin.com/users/phone-number 소문자를 사용한다. Bad https://api.currenjin.com/users/phoneNumber Good https://api.currenjin.com/users/phone-number Method 는 Url..

JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가. JVM 이란 자바 코드 컴파일 자바 코드 실행 바이트코드란 JIT 컴파일러란 무엇이며, 어떻게 동작하는가 JVM 구성 요소 JDK 와 JRE 의 차이 JVM 이란 JVM(Java Virtual Machine, 자바 가상 머신) 은 OS 위에서 동작하며, 컴퓨터가 Java Program 을 실행할 수 있도록 도와준다 . 이는 특정 OS 의 영향을 받지 않으면서 Java Program 을 실행할 수 있도록 하기 위함이다. OS 위에서 Java Program 을 실행할 수 있도록 도와준다. 이는 특정 OS 또는 하드웨어에 구애받지 않고, 코드를 동작시킬 수 있다는 것을 뜻한다. Byte code 를 실행한다. JVM 에 대한 흥미로운 배경 JAVA 는 썬..
값 객체 패턴(value object pattern) TDD(Test driven development)에 대해 연마하다가 값 객체 패턴이라는 단어를 발견했어요. 각 객체 패턴은 객체를 값처럼 쓸 수 있다는 것입니다. 제약사항 중 하나는, 객체의 인스턴스 변수가 생성자를 통해서 일단 설정된 후에는 변하지 않음을 보장하죠. 값 객체를 사용하면 별칭(aliasing) 문제에 대해 걱정할 필요가 없다는 장점이 있어요. 테스트 주도 개발의 저자 켄트 벡(Kent Beck)은 이 별칭 문제에 대해 경험담을 꺼냈습니다. 수표가 하나 있는데 여기에 $5를 설정하고, 또다른 수표에도 아까 설정했던 $5를 설정했다고 치자. 내 경험 중에서 가장 형편없었던 버그는 부주의하게 두 번째 수표의 값을 변화시키는 바람에 첫 번째..

GraphQL 공식 학습 문서의 내용을 빌린 글입니다. GraphQL의 동작 방식과 사용법을 다루는 포스팅이며, 매력적인 이 기술을 많은 분들이 보시고 도움을 받으셨으면 좋겠어요! GraphQL은 API를 위한 쿼리 언어입니다. 데이터의 타입을 미리 지정하는 타입 시스템을 이용하여 쿼리를 실행하는 서버사이드 런타임이죠. GraphQL은 특정 DB 또는 스토리지 엔진과 관계되어 있지 않아 기존 코드와 데이터에 의해 대체될 수 있어 접근성, 호환성 모두 좋습니다. GraphQL은 타입과 필드를 정의해요. 그리고 각 타입의 필드에 대한 함수로 구현되죠. 예를 들어, 로그인한 사용자가 누구인지(me)와 해당 사용자의 이름(name)을 가져오는 GraphQL 서비스는 다음과 같습니다. type Query { me..

psql 접속 중 오류가 발생했어요. 잘 사용해 왔는데, 갑자기 왜 이럴까... 궁금해졌죠. 이유는 간단해요! 내부 postmaster.pid 파일이 발생시키는 Process 충돌 때문입니다. 아래 명령어로 간단하게 해결이 가능해요! $ brew services stop postgresql Stopping `postgresql`... (might take a while) ==> Successfully stopped `postgresql` (label: homebrew.mxcl.postgresql) $ rm /usr/local/var/postgres/postmaster.pid $ brew services start postgresql ==> Successfully started `postgresql` (l..