thymeleaf를 사용하면 쉽게 controller를 통해 전달받은 model을 사용할 수 있다. 표현식(expression)을 이용해서 객체를 전달받아 사용할 수 있다. 그런데 만약 이런 경우에는 어떻게 해야할까? data.get('key')}"> 전달받은 data에서 key 값을 통해 다른 데이터를 받아야 할 경우, 때에 다라서는 key 값이 동적으로 변하기도 한다면? 이런 경우를 대비해 Thymeleaf의 표현식을 통해 controller 에서 넘어온 attributes등을 표시할 때, Thymeleaf는 preprocessing expressions 라는 것을 제공한다. preprocessing expressions을 통해 이미 사용되고 있는 expressions 안에 또 다른 표현식을 사용할 ..
가끔 이클립스를 통해 톰캣을 돌리다 보면 서버가 실행되지 않을 때가 있다. 바쁜 상황에서 갑자기 이런 상황에 마주치게 되면 당황하기 마련이라 해결 방법을 알고 있는 것이 좋다. 오늘은 그 중 Several ports required by Tomcat Server at localhost are already in use. 라는 메세지가 떴을 때 해결 방법을 알아보자. 이클립스에서 뜬 경고창이다. Several ports required by Tomcat Server at localhost are already in use. 라는 메세지가 떠 있고 내가 사용해야 하는 포트 (8005, 8080, 8009) 세 가지가 떠 있다. 사실 이런 경우 제일 빠른 방법은 서버 설정 페이지에서 사용하는 포트 번호를 바꿔..
한 며칠 고민하다가 답을 못 구할 것 같아서 문제 제목으로 검색했더니 KOI 초등부 문제였다. 초등부 문제도 못풀었다는 생각을 하니까 참 자괴감도 들고 내가 잘 하고 있는건지 자신감도 좀 떨어지는 것 같다. 이정도 수준의 동적계획법 문제는 초등학생들도 푸는구나... 문제는 이곳에서 볼 수 있다. 결국 동적계획법은 격자를 만들고 그 격자를 정의 해야 한다. 결국 이 점화식을 생각해 낼 수 있느냐 없느냐가 문제를 풀 수 있느냐 없느냐를 나누게 된다. 기본적으로 동적계획법 문제가 나오면 (일단 처음에는 그게 동적 계획법으로 푸는 문제인지 모르니까) 완전탐색 방법으로 문제를 생각해 본 후 -> 이미 계산했던 답을 재활용 할 수 있는지 생각해 본다. 재활용이 가능하다면 동적계획법을 활용할 수 있다. 이 문제에서도..
기본적으로 MVC모델은 위 그림과 같이 동작합니다. 클라이언트로 부터 들어온 요청을 모델객체를 통해 처리하고 그 결과를 view template을통해 전달합니다. view라는 것은 실제 사용자에게 보이는 프레젠테이션 로직입니다. 웹 애플리케이션에서는 HTML을 렌더링 하는 역할을 하는 것이겠죠. 이전까지는 JSP가 이 역할을 위해 표준적으로 쓰여 왔습니다만 여러가지 불편함과 문제점을 가지고 있었고 이를 해결하기 위해 다양한 view 템플릿 엔진들이 등장하게 되었습니다. JSP와 MVC 패턴에 대한 설명은 이전 포스팅을 참조 부탁드립니다. 템플릿 엔진(Template Engine)은 템플릿 양식과 특정 데이터 모델에 따른 입력 자료를 합성하여 결과 문서를 출력하는 소프트웨어를 말합니다. 그 중 웹 템플릿 ..
지난번 포스팅에서 클래스로더를 알아본다고 했는데 순서를 좀 바꾸겠습니다. 어떤 url을 입력 받았을 때 어떤 서블릿을 동작해야 하는지 어떻게 알 수 있을까요? 서블릿은 배포서술자(물론 애너테이션을 사용하는 방법도 있지만 이 프로젝트에서는 고려하지 않도록 하겠습니다)를 통해서 매핑됩니다. 컨테이너는 이 배포서술자 파일을 통해 url과 일치하는 클래스를 찾아서 로드하게 됩니다. 배포서술자는 보통 xml 파일로 만들어지고 다음과 같은 구조를 하고 있습니다. web.xml 이라는 이름을 가진 xml 파일에 배포와 관련된 여러가지 설정 정보들을 담게 됩니다. 사실 이 배포서술자 안에 기술될 수 있는 정보는 매우 많지만 이 프로젝트에서는 서블릿 매핑 부분만 구현해 보도록 하겠습니다. 이 배포서술자나 애너테이션에 대..
오늘의 미션, 만약 view 단에서 보여줘야 하는 데이터가 없으면(아마도 DB에서 삭제된 경우) 프론트단에 데이터를 보여주는 div 태그를 없애야 한다. 아 그야 식은 죽 먹기죠. data가 null인지 아닌지 판단해서 null이 아닐 때만 보여주면 되는거 아니겠습니까 아래 코드처럼요. ... 그런데 문제가 하나 더 있네요. 만약 null 값이 아니라 빈 문자열이 들어온다면 어떻게 해야 하죠? 그럼 코드가 이런식이 되어야 할 것 같은데... ... 데이터가 null 일수도 있고 빈 문자열일 수도 있을 때도 있다면 조건문을 두 개 써야 겠군요. 그런데 그냥 컨트롤러에서 처리해서 넘겨준다면 조금 더 편할 것 같습니다. if (examData.isEmpty()) { model.addAttribute("exam..
이름이 알려진 유명 IT 기업들 중 신입 개발자를 뽑을 때 코딩 테스트를 안 보는 곳이 드물다. 구글, 마이크로소프트 같은 글로벌한 공룡기업에서부터 우아한 형제들 같은 스타트업 까지 개발자를 뽑을 때 그 무엇보다 중요하게 보는 것이 바로 코딩 테스트이다. 카카오나 NHN, LINE 같은 국내 IT 대기업들은 아예 처음부터 온라인 코딩테스트를 통과하지 못한 사람에게는 기회를 주지도 않는다. 물론 NHN은 2차로 CS와 관련된 테스트를 하고 LINE은 코딩테스트와 함께 다른 컴퓨터 과학 문제를 풀어야 하지만 일단은 코딩 테스트는 기본이다. 이렇게 코딩테스트를 중요하게 보는 이유를 찾아보면 여러가지 답들이 나온다. 하지만 중요한 것은 일단 좋은 회사는 코딩 테스트를 무조건 본다는 것이다. 그래서 큰 회사에 입..
비전공 개발자로 CS공부를 하면서 가장 어려운 것은 역시 알고리즘이다. 나에게 알고리즘 문제는 마치 아이큐 테스트 같이 느껴진다. 공부를 해도 발전이 느껴지지 않는다. 그럼에도 대부분의 기업에서 알고리즘 문제로 코딩테스트를 보기 때문에 특히 좋은 회사일 수록 어려운 문제를 내는 경향이 뚜렷하기에 손에서 놓을 수가 없다. 이번에 푼 문제는 프로그래머스에서 제공하는 문제다. 혹시 저작권 문제가 있을지도 몰라 문제의 내용은 링크로 대체한다. 이번 풀었다고는 했지만 이 문제를 거의 2주일 동안 고민했다. 물론 매일매일 이어지는 야근 속에 깊이 고민할 시간이 대체로 부족하기는 했지만 그럼에도 2주 동안 답을 찾지 못하고 있었다. 그러다 오늘 아침 조금 일찍 출근해 문제를 풀다보니 실마리가 보였다. 순식간에 답을 ..
- Total
- Today
- Yesterday
- Markov
- Warning
- REST API
- CONVENTIONS
- java
- 마르코프
- Count
- 유지보수
- 크롬
- RESTful
- 로그
- Spring in Action
- 몰라서망신
- restful api
- was
- 자바스크립트개론
- GROUP BY
- DP
- 자바스크립트 개론
- 클린코드
- 경고
- 코딩의 기술
- html
- 마르코프 연쇄
- 문장 생성기
- 동적계획법
- 디자인패턴
- 야근
- markov chain
- 전략패턴
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |