일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 고릴라볼링장
- nginx
- 전나라동동공주
- Hook
- BDD
- react
- Replacation
- 오삼철판볶음
- 신미낙지
- SpringCamp2019
- SpringCamp
- State
- 오뚜기숯불소금구이
- SetMail
- 양살치살
- react component
- Java
- SpockFramework
- 진1926
- NVM
- MariaDB
- DockerCompose
- 판교
- useEffect
- 강다니엘
- NapuCon2016
- SpringCamp2017
- 바스트로37
- Spring
- docker
- Today
- Total
목록전체 (45)
Note
Intro 개발 경력이 많지는 않지만 백엔드 개발을 하며 느낀 분석, 설계, 문서화에 대해 기술한 포스트입니다. 의식의 흐름대로 작성한 내용이라 부족한 부분이 많을 수 있는데 잘 못된 내용이나 수정되어야하거나 추가되어야 할 내용이 있다면 글을 읽고 지적 부탁드리고, 문의를 남겨주시면 최대한 답변드리도록 하겠습니다. 인간은 망각의 동물이다. 본인이 개발을 하더라도 시간이 지난다면 왜 그런식으로 개발을 했는지 잊어버리는 경우가 많다. 본인의 개발을 한 내용에 대해서도 그런데 다른사람이 개발한 내용은 어떠할까? 그 사람이 개발한 내용을 알기 위해 개발한 당사자를 찾아가서 왜 그런식으로 개발했는지, 어떤 이유가 있어서 이런 행위를 하는지 히스토리 확인을 해야된다. 이것도 그 사람과 알고있다는 가정하에 아주 좋은..
JVM? 정의된 스펙을 구현한 하나의 독자적인 프로세스 형태로 구동되는 Runtime Instance Java 프로그램의 모든 것들을 실행시키는 기본 데몬 Class 파일을 로딩하고 ByteCode를 해석하는 과정을 거쳐 메모리 리소스를 할당하고 관리하며 정보를 처리 Thread 관리 및 Garbage Collection과 같은 메모리 정리 용어 Java Source | 사용자가 작성한 Java 코드 Java Compiler | Java Source 파일을 JVM이 해석할 수 있는 Java Byte Code로 변경하는 Compiler Java Byte Code | Java Compiler에 의해 수행될 결과물(.class 파일) Class Loader | JVM 내로 .class파일들을 Load 하여 L..
기본 용어 @RequestMapping DefaultAnnotationHandlerMapping에서 매핑 url과 컨트롤러 메소드 매핑정보 생성 클래스, 메소드 레벨에 사용 가능 url, method, parameter, header 정보를 통해 구분 가능 url에 ANT스타일의 와일드카드 사용 가능 상속 가능 @RequestMapping("/home") @RequestMapping("/home*") @RequestMapping("/home/**/action") @RequestMapping("/user/{userId}") @RequestMapping({"/", "/index"}) @RequestMapping(value="/user/{userId}", method=RequestMethod.GET) @Req..
Spock Framework? Spock Framework는 Groovy 언어에서 동작하는 명세 프레임워크로 BDD를 편하게할 수 있도록 도와준다. Spock은 Java와 Groovy 어플리케이션을 위한 명세 프레임워크로 Groovy(DSL)로 작성하므로 간결하고 직관적인 장점이 있다. 또한, 기존의 Java의 JUnit, Hamcrest, Mockito를 전부 다 학습하는 것보다 손쉽게 학습할 수 있고, Mock, Stub, Spy등 사용이 편리하고 명세를 작성하기 편리하다. Java와 Groovy 어플리케이션을 위한 프레임워크이므로 Java환경에서도 사용할 수 있다. Lifecycle setup: 메소드 실행 전에 실행(given) when: 행위에 대한 명세를 작성 then: 행위에 대한 예측을 작..
BDD(Behavior-Driven Development)란? BDD는 TDD에서 파생된 개발 방법론으로 테스트에 대한 집중보다는 명세와 행위에 대해 비중을 두고 있다. TDD TDD는 Test Case(이하 TC)를 작성하고 실패를 확인 후 실제 비즈니스 코드를 작성, TC 성공확인을 하나의 반복주기로 잡고, 이를 반복해서 진행하는 것을 요구한다. 하지만 TC를 작성하는데 의문점이 있다. 코드가 없는데 무엇을 테스트할 것인가? TDD를 보면 무엇을 테스하는지에 대한 명시는 되어있지 않다. 또한, 보통 테스트라 하면 제품이 나오면 그 제품을 사용해보면서 제대로 작동하는지 확인을 해보는 과정인데, 제품이 나오지도 않았는데 테스트를 한다라는 것부터 모순이 생긴다. 이를 개선한 것이 BDD라고 생각을 한다. ..
개요 ``AOP``는 스프링의 기반 기술 중 하나로 이해하기 힘든 용어와 개념을 가졌다. ``AOP``는 자바의 ``Reflection API``를 활용해서 구현을 하게되고, 주로 비즈니스 요구사항이 아닌 부분들을 처리하기 위해 사용한다. Reflection API 자바의 Reflection API는 컴파일 레벨에서 실행될 클래스를 정하는 것이 아닌, 런타임에 실행할 클래스 파일을 정하게 할 수 있다. 또한, 런타임에서 클래스의 공개되지 않은 필드에 대한 정보를 볼 수 있고 조작할 수 있다. 주로 JDBC나 MyBatis에서 많이 사용한다. 예시는 아래와 같다. Reflection API Example package kr.pe.nuti.home.api.core.annotation; import java...
개요 자바 계통 언어에서는 오류를 표현하는 2가지 방법이 존재한다. 첫 번째는 Error 클래스인데 Error 클래스를 상속받는 하위 클래스는 시스템 오류를 표현하게 된다. 두 번째는 Exception 클래스로 어플리케이션 레벨에서 개발자가 예외사항을 표현하기 위해 사용한다. 이번 포스팅에서는 Error와 Exception에 대해서 작성한다. Error Error 클래스는 시스템 오류를 표현하는 것으로 주로 JVM에서 사용한다. 어플리케이션 레벨에서 사용하는 경우도 있기는 한데 거의 사용되지 않고, try~catch로 처리할 수 없다. 시스템 오류를 표현하는 것이므로 어플리케이션 개발자가 관여하게될 가능성이 매우 낮다. 흔히 볼 수 있는 Error 클래스의 구현체는 OutOfMemoryError와 Sta..
Dockerfile? Dockerfile은 Image 설정 파일로 Image를 생성할 내용을 작성한다. Options FROM: 어떤 이미지를 기반으로 생성할지 설정한다. : 형식으로 설정한다. MAINTAINER: 메인테이너 정보를 작성한다. ENV: 이미지의 환경변수를 설정한다. RUN: 쉘 스크립트 혹은 명령어를 실행한다. VOLUME: 호스트와 공유할 디렉토리를 지정한다. CMD: 컨테이너가 시작됐을 때 실행할 실행 파일 혹은 쉘 스크립트를 지정한다. ADD: 호스트에서 이미지로 복사할 파일을 지정한다. EXPOSE: 호스트와 연결할 포트 번호를 지정한다. Example FROM centos:centos6.8 MAINTAINER HyeonilJeong ENV V_NGINX=1.12.1 \ V_TO..