main() 메써드에서 테스트 코드를 작성하던 시대는 지났다. 아직도 적지 않은 Java 개발자가 습관상 main() 메써드 안에서 자신이 작성한 소스 코드를 테스트한다. 하지만 JUnit이 등장하면서 소스 코드를 테스트하기 훨씬 편해졌다. 테스트 클래스를 생성하고 메써드 앞에 @Test 어노테이션을 부여하면 간단하게 코드 테스트가 가능하다. 그렇다면 테스트 코드는 어디에 작성해야 할까? 프로젝트 구조를 변경하자. Eclipse에서 Java Project를 새로 생성하면 기본적으로 아래 구조로 프로젝트가 생성되며 src 폴더 밑에 새로운 패키지를 생성하여 소스 코드를 작성하게 된다. src org.jsonobject.someproject 하지만 최근 추세는 메인 소스 코드와 테스트 소스 코드를 분리하여 ..
영원한 고민거리, Java에서의 데이터베이스와 SQL 접근 Java 개발자에게 있어 데이터베이스와 SQL 접근은 영원한 고민거리이다. 요즘같이 생산성이 중요시되는 시대에 공부 목적이 아닌 이상 java.sql.* 패키지만을 사용하여 Plain JDBC로 데이터베이스 접근 코드를 구현하는 사람은 적을 것이다. Plain JDBC만을 사용하면 간단한 SQL 쿼리 결과를 얻기 위해 불필요한 Boilerplate Code(보일러플레이트 코드)가 너무 많아 프로젝트의 규모가 조금만 커져도 생산성의 발목을 잡게 된다. MyBatis, JdbcTemplate, Hibernate... 이러한 생산성을 향상시켜주는 라이브러리가 존재한다. 먼저 너무나도 유명한 MyBatis는 iBatis의 전신으로 국내 프로젝트 환경에서..
다른 프로세스가 파일을 사용 중이기 때문에 프로세스가 액세스 할 수 없습니다. 우리는 종종 PC를 사용 중에 특정 파일이나 폴더를 지우거나 이동할 때 위와 같은 메시지를 목격한다. 실행 중인 프로그램을 종료하거나 리부트하면 해결되기도 하지만 리부트 후에도 문제가 해결되지 않을 때가 있다. 상당히 답답한 노릇이다. Unlocker, 어떠한 파일도 지워준다. 위 문제는 운영체제에서 실행 중인 특정 프로세스가 해당 파일을 사용하고 있기 때문에 나타나는 증상으로 작업관리자만 봐서는 어떤 프로세스가 사용 중이기 당장 모르기 때문에 골치 아픈 경우가 많다. 이런 문제를 깔끔하게 해결해주는 툴이 있다. 프랑스인 프로그래머가 개발한 Unlocker라는 무료 툴이다. 위 문제가 발생하는 원인을 찾아내어 사용자가 원하는 ..
Google Chrome(크롬) 브라우저에는 다양한 무료 확장 프로그램이 존재한다. 오늘 소개할 프로그램은 TTS(Text to Speech) 기능을 제공하는 SpeakIt!이다. 인터넷 영문 기사, 가끔은 원어민 발음으로 들어보고 싶다 우리는 새로운 소식을 먼저 접하기 위해, 또는 영어 공부를 위해 인터넷의 영문 기사 및 블로그 글을 읽는다. 인터넷 세계에서 한글과 영문은 컨텐츠의 양에서 비교가 되지 않는다. 영어라는 매개체를 통해 전세계의 최신 정보가 인터넷 상에서 실시간으로 교류되고 있다. 대학생들의 해외연수가 일상화된 시대지만 아직도 대부분의 한국인은 영문 기사를 완벽히 소화하기 벅찰 때가 많다. 모르는 단어나 표현은 영어사전을 본다지만 가끔 기사 전체 또는 일부분을 원어민이 속시원하게 읽어줬으면..
- Total
- Today
- Yesterday
- 로드바이크
- chrome
- spring
- 평속
- CentOS
- Kendo UI
- Eclipse
- MySQL
- Tomcat
- Docker
- jsp
- DynamoDB
- java
- kotlin
- 로드 바이크
- 알뜰폰
- Spring Boot
- JavaScript
- 태그를 입력해 주세요.
- jstl
- bootstrap
- jpa
- maven
- JHipster
- 구동계
- graylog
- Spring MVC 3
- node.js
- Kendo UI Web Grid
- 자전거
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |