일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
31 |
- 데이터베이스
- docker
- 라우팅프로토콜
- 스노트 룰
- Linux
- 리눅스
- osi7layer
- Router
- 라우터
- Cosmos
- TDD
- MySQL
- Python
- 프로그래머스
- 코딩 테스트
- 트레바리
- 코딩테스트
- Container
- programmers
- db
- 라우팅
- snort
- Routing
- 컨테이너
- coding test
- 도커
- OSI7계층
- 스노트
- database
- Snort Rule
- Today
- Total
목록Simple is IT/Programming (35)
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를 설정했다고 치자. 내 경험 중에서 가장 형편없었던 버그는 부주의하게 두 번째 수표의 값을 변화시키는 바람에 첫 번째..
Programming Language를 해석하고 실행시킬 때 방식이 대표적으로 2가지가 있습니다. Compile, Interpret 둘은 아주 다르기 때문에 많은 언어들이 둘 중 한 가지 방식을 통해 언어를 실행하도록 설계돼요. Compiler에 의해 실행돼요. Programming Language를 Runtime 전에 컴퓨터가 알아들을 수 있는 언어로 해석하는 방식이에요.(기계어) Interpreter에 의해 실행돼요. Runtime 이후 Row 단위로 해석해 프로그램을 구동시키는 방식이에요. Compiler는 소스코드 전체를 한 번 훑어 컴퓨터가 실행할 수 있도록 바로 기계어로 변환합니다. Interpreter는 언어를 Itermediate code(중간 코드)로 변환하고 이를 각 행마다 실행합니다...