웹서버와 같은 멀티스레드 환경에서 singleton을 사용하려면 항상 thread-safe 한지 고려해야 한다. 찾던 중 initialization on demand holder idiom 이라는 기법이 있어서 이곳에 적어놓는다. public class InitializationOnDemandHolderIdiom { private InitializationOnDemandHolderIdiom () {} private static class Singleton { private static final InitializationOnDemandHolderIdiom instance = new InitializationOnDemandHolderIdiom(); } public static InitializationOn..
다른 저장소에서 작업하다가 history를 합쳐서 push 할 일이 생겼다. project-a, project-b가 있을때, a를 b에 병합하려면 아래와 같이 하면 된다. cd path/to/project-b git remote add project-a path/to/project-a git fetch project-a git merge --allow-unrelated-histories project-a/master # or whichever branch you want to merge git remote remove project-a * 참고https://code.i-harness.com/ko/q/15c1e4
DB 연결시 필요한 정보를 따로 저장하기 위해 properties 파일을 사용할 수 있다. .properties 확장자로 프로젝트 내에 만들면 되며, 아래 코드처럼 사용할 수 있다. InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("application.properties"); Properties prop = new Properties(); prop.load(inputStream); DB_URL = prop.getProperty("database.url"); DB_USER = prop.getProperty("database.username"); DB_PASSWD = prop.getProp..
Event Listener 등록Event Listener를 DOM load 후에 등록하여 조건에 따라 UI가 바뀌게 해야한다. document.addEventListener("DOMContentLoaded", function() { var list = document.querySelectorAll("div"); for(var i = 0 len = list.length; i < len; i++) { list[i].addEventListener("click", function() { console.log(list[i]); }); } });위와 같이 "DOMContentLoaded"를 매개변수로 넣어서 document에 event listener를 등록할 수 있다. 추가로 querySelector 함수를 이용..
이클립스에서 동적 웹 프로젝트를 생성해서 개발하다보면, 경로가 http://도메인/프로젝트이름/나머지 처럼 잡히는 것을 볼 수 있다. 이 때 프로젝트이름으로 잡히는 경로를 변경하려면 아래와 같이 하면 된다. 1. 이클립스 프로젝트 탐색기에서 Servers -> Tomcat -> server.xml을 연다. 2. server.xml에서 검색(ctrl + f)을 이용하여 Context 태그를 찾는다. 여러 개가 있는데, 이중 docBase가 프로젝트 이름과 같은 것을 찾으면 된다. 3. path를 원하는 것으로 수정한다.
1. JDBC Java Database Connectivity의 약자이다. Java를 이용해서 데이터베이스에 접속하고 SQL을 수행하고, 결과로 얻어진 데이터의 핸들링을 제공한다. SQL문을 Java 프로그램 내에서 실행하기 위해 API를 제공해준다. 2, 환경 설정 JDBC를 사용하기 위해선 Maven에 아래와 같은 의존성을 추가하면 된다. 만약 다른 빌드 환경을 사용하고 있다면 알아서 찾아보길 바람.. mysql mysql-connector-java 5.1.45 3. JDBC를 이용한 프로그래밍 1. import java.sql.*; 2. Driver 로드 3. Connection 객체 생성 4. Statement 객체 생성 및 SQL 실행 5. ResultSet 객체 생성 및 결과 저장 6. 모든 ..
Maven을 이용하여 프로젝트를 만들면 종속성을 관리하기가 아주 쉬워지므로 여기에 정리한다.Maven 웹 프로젝트 생성이클립스에서 File -> New -> Other에서 Maven -> Maven Project를 선택한다. Next를 하다보면 아래 그림 2처럼 Archetype을 선택하는 창이 나온다. Archetype은 일종의 프로젝트 템플릿이라고 할 수 있다. 어떤것을 선택하느냐에 따라서 자동으로 여러가지 파일들을 생성하거나 라이브러리를 셋팅해준다.maven-archetype-webapp을 선택하고 Next를 누르자. 아래 그림 3처럼 여러가지 값을 적는 창이 나타난다.Group Id는 프로젝트를 진행하는 회사나 팀의 도메인 이름을 거꾸로 적는다. Artifact Id는 해당 프로젝트의 이름을 적는..
이클립스에서 아래 그림 1처럼 마우스를 클래스 위에 올려놓고 shift + alt + j 를 누르면, 미리 만들어진 javadoc 주석이 나타난다. 이 때 자동으로 만들어지는 주석의 템플릿을 설정할 수 있다. Eclipse에서 Window > Preferences > Java > Code Style > Code Templates에 가면 아래 그림 2처럼 템플릿을 설정할 수 있는 창이 나온다. 여기서 Comments > Types를 선택하고 Edit 버튼을 누르면 클래스 주석의 패턴을 수정할 수 있다. Edit 버튼을 누르면 패턴을 작성할 수 있는 창이 그림 3처럼 나타난다. 이 때 user, date와 같은 다양한 변수를 사용할 수 있는데, 무엇무엇이 있는지 확인하고 싶다면 Insert Variable...
- Total
- Today
- Yesterday
- JavaScript
- thymeleaf 변수 인식
- spring
- Linux
- MySQL
- nodejs
- Closure
- mybatis
- @Autowired
- Bin
- chunk
- @Component
- spring batch
- Express
- Tasklet
- @Bean
- npm
- @Qualifier
- 클로저
- thymeleaf cannot resolve
- unity
- Barycentric coordinates
- Check point within polygon
- Bean
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |