0. 들어가기 알고리즘 공부를 위해 오랜만에 c++을 다시 보고 있다.그러다 printf에서 이상한 점을 보았는데, printf는 정수 %d처럼 %s로 형식을 지정하여 문장을 출력할 수 있다.하지만 변수 자리에 string을 그냥 넣으면 실행 시 에러가 난다. 왜 그럴까? 1. string 인식이 안 되는 이유 - C언어: string이 뭔데?printf는 C++에서 생긴 것이 아니다. C에서 왔다.하지만 string 클래스는 C++에서 새로 생겼다.그래서 printf는 자기가 만들어질 때 없었던 string을 인식하지 못하는 것이다. 2. 해결법: C의 법을 따르자해결법이 무엇일까?이유를 알았으니 해결법을 생각해 보자.C언어에서 문자열은 무엇이었지? 문자의 배열이었다!printf가 %s를 처리할 때..
0. 들어가기필자는 개인적으로 공부를 할 때, 특히 개발을 공부할 때는 이름이 가장 중요하다고 생각한다. 많은 경우 이름에 핵심 개념이 들어있기 때문이다. JPA를 공부하면 가장 먼저 나오는 생소한 개념으로는 EntityManager가 있다.em.persist(entity) 이런 식으로 엔티티를 처음 저장할 때 entityManager를 사용해보게 되는데, entityManager란 무엇일까?또, EntityManagerFactory는 또 무엇일까?그리고, 왜 factory(공장)이라는 이름이 붙었을까? 쉽고 빠르게 정리해 보자. 1. EntityManagerFactoryEntityManagerFactory는 데이터베이스와 연결하기 위한 모든 무거운 설정(DB접속 URL, 유저 아이디, 비밀번호, di..
0. 들어가기JdbcTemplate을 공부하던 중, DI를 위한 리포지토리 생성자를 만들다가 문득 익숙하게 사용하던 패턴이 눈에 걸렸다.public JdbcTemplateItemRepositoryV3(DataSource dataSource) { this.template = new NamedParameterJdbcTemplate(dataSource); this.jdbcInsert = new SimpleJdbcInsert(dataSource) .withTableName("item") // 바로 이 부분 .usingGeneratedKeyColumns("id"); // .으로 계속 이어서 쓸 수 있다} 많이들 쓰는 StringBuil..
0. 들어가기 오랜만에 시간이 남아 블로그를 남긴다. 실무에서는 잘 쓰지 않지만, 강의를 듣거나 간단하게 페이지를 편집할 때 서버에 localhost:8080/hello.html 형식으로 요청해본 적이 있을 것이다. 그러면 서버(스프링)는 특정 폴더(여기서는 루트 디렉토리)에서 hello.html파일을 찾아 그대로 응답하는데, 이 때 .html 확장자를 가진 파일이므로 스프링은 이 파일의 종류(MIME Type)를 text/html이라고 판단한다.브라우저에게 파일을 응답할 때, HTTP Response 헤더에 "이 파일은 html 문서야"라는 내용을 넣어서 전달하고, 브라우저는 이를 통해 html파일이구나 알고 거기에 맞게 처리해서 읽어들인다. 이 때 헤더에 넣는 "이 파일은 OO type이야"가 Con..
0. 들어가기회사에서 내가 개발한 자바 코드를 개발서버에 반영하고 다시 켰는데 서버가 켜지질 않는다!서버를 아무리 껐다 켜도 제우스 서버가 RUNNING이 아닌, STANBY 상태였다. 0.1 JEUS STANBY?stanby 상태란 시작 중에 등록된 애플리케이션을 Distribute하던 중 실패한 것이 있어 RUNNING 상태로 이동하지 못하고 머무르는 상태를 나타낸다.이 상태에서 문제의 모듈을 수정하여 다시 시작를 하거나, 그 모듈을 무시하고 서비스를 하기 위해서는 force 옵션을 주고 start 명령을 수행할 수 있다. 내 코드를 반영한 후 나온 문제기에, 문제의 모듈을 찾아서 해결하기로 했다. 1. 로그를 확인하자 제우스 로그에서 해당 서버 로그를 찾아 확인해 본 결과Caused by: jav..