반응형 분류 전체보기580 [Spring] 메시지 컨버터를 이용하는 Ajax 컨트롤러 1. 메시지 컨버터 소개 - 메시지 컨버터는 HTTP 요청/응답 메시지 본문 자체를 메시지로 다룬다. - 메시지 컨버터는 AnnotationMethodHandlerAdapter를 통해 등록할 수 있다. 여러 개의 메시지 컨버터를 등록해두고 요청 타입이나 오브젝트 타입에 따라 선택되게 하는 것이 일반적이다. 2. 메시지 컨버터의 종류 1) 디폴트로 등록된 메시지 컨버터 (1) ByteArrayHttpMessageConverter - byte[] 타입의 오브젝트를 지원한다. - 미디어 타입은 모든 종류를 다 허용한다. - @RequestBody로 전달받을 때는 모든 종류의 HTTP 요청 메시지 본문을 byte[] 타입으로 가져올 수 있고, @ResponseBody로 응답할 때는 application/octe.. 2022. 9. 28. [Graph] 합승 택시 요금 - 2021 KAKAO BLIND RECRUITMENT 해결 방법 처음엔 BFS+DP로 시도해보았는데 시간초과가 나서 결국은 플로이드 와샬(Floyd Warshall) 알고리즘으로 해결했다. 플로이드 와샬 알고리즘은 각 정점끼리의 모든 최단 경로를 구해야할 때 사용되는 알고리즘이며, 구현하기 매우 쉽다는 장점이 있다. 자세한 동작을 알고싶다면 나동빈님의 블로그를 참고하길 바란다. https://blog.naver.com/ndb796/221234427842 24. 플로이드 와샬(Floyd Warshall) 알고리즘 지난 시간에는 다익스트라(Dijkstra) 알고리즘에 대해 학습했습니다. 다익스트라 알고리즘은 하나의 정점... blog.naver.com 소스 코드 #include #include using namespace std; int min_fare[201.. 2022. 9. 28. [팀 프로젝트] SQL 교육 사이트 - 20220925 안내 사항 1. 팀장 사전 작업 내용 - SQL 학습 토픽 선정 완료 - 학습하기 및 테스트 메뉴의 토픽 목록 디자인 학습하기 - 모든 토픽 및 디자인 반영 완료 테스트 - 디자인만 반영 완료 (나머지는 유저 정보의 구성을 확정한 뒤에 완성할 예정) 2. 역할 목록 1) 초반 작업 - 팀장의 지식 전수 (완료) - 전반적인 웹페이지 디자인(완료) 2) 중반 작업 - 학습 페이지 : 총 17Unit을 각자의 총 작업량을 고려하여 분배할 것 - 자유/버그 게시판 : 디자인은 동일하게 해도 좋음 - 로그인 기능 구현 : 패스워드 BCryptPasswordEncoder 암호화/복호화 3) 후반 작업 - 홈 화면 - 테스트 출제 - 자료실 페이지 3. 안내 사항 - 각자 중반 작업에서 해보고 싶은 작업을 정해올 것 (협업도.. 2022. 9. 25. [Spring] 프로퍼티 파일에서 BindingResult 메시지 관리하기 1. MessageCodeResolver 1) 기본 동작 - BindingResult에 저장될 에러 메시지의 키 후보를 생성해두고, messages.properties와 같은 프로퍼티 파일에서 해당 키 값을 찾아 그에 대한 메시지를 에러 메시지로 활용한다. - 기본 동작을 살펴보자. 아래 예시에서는 messages.properties에 담긴 field.required 값을 에러 메시지로 활용한다. ValidationUtils.rejectIfEmptyOrWhitespace(errors, "name", "field.required"); fields.required=field required 2) DefaultMessageCodeResolver - MessageCodeResolver가 기본적으로 사용하는 구현.. 2022. 9. 25. [Spring] JSR-303 Bean 검증 방식 LocalValidatorFactoryBean - JSR-303의 검증 기능을 사용할 수 있도록 하는 일종의 어댑터다. - JSR-303의 bean 검증 방식을 통해 오브젝트의 필드에 달린 제약조건 어노테이션을 이용해 검증을 진행할 수 있다. 예시 public class User { int id; @NotNull // null 값이 아님을 검증 @Size(min=1, max=50) // 빈 문자열 방지, 최대 크기 제한 String name; @Min(0) // 최소값을 0으로 지정 int age; } - 이 팩토리 빈이 생성하는 bean의 타입은 org.springframework.Validation.Validator다. LocalValidatorFactoryBean을 bean으로 등록해두고 이를 DI.. 2022. 9. 25. [완전탐색] 메뉴 리뉴얼 - 2021 KAKAO BLIND RECRUITMENT 해결 방법 단품 메뉴 조합에서 2개 이상을 고른 모든 조합을 모두 추출하고, 나타난 조합의 빈도를 계산하면 된다. map을 이용하면 이를 쉽게 계산할 수 있을 것이다. 의 next_permutation() 함수를 이용하면 간단하게 모든 조합을 구할 수 있다. 사용 방법은 아래 포스팅을 참고하길 바란다. https://kimcoder.tistory.com/118 next_permutation을 이용한 조합 구현 #include #include #include #include using namespace std; vector arr; vector check; void set_check(int n, int r){ for(int i=0;i next_permutation 함수는 배열을 순열해주는 함수이다. 일반적.. 2022. 9. 23. [Spring] 자주 사용되는 WebDataBinder 설정 항목 이전 포스팅에서는 WebDataBinder에 커스텀 프로퍼티 에디터와 컨버전 서비스를 등록하는 방법을 소개했다. https://kimcoder.tistory.com/521 [Spring] 프로퍼티 바인딩 방식(1) - PropertyEditor 프로퍼티 바인딩은 텍스트 형식의 값을 적절한 타입으로 변환해서 객체의 프로퍼티에 넣어주는 것으로, 대표적으로 XML 설정이나 HTTP 요청 파라미터 처리에 필요하다. 여러 개의 포스팅에 걸쳐 S kimcoder.tistory.com 이번에는 WebDataBinder에 지정할 수 있는 더 많은 유용한 바인딩 옵션들을 살펴볼 것이다. WebDataBinder은 DataBinder 클래스를 상속받기 때문에, 아래 두 문서를 같이 보면서 이해하면 좋을 것 같다. WebD.. 2022. 9. 22. [Spring] 프로퍼티 바인딩 방식(2) - Converter와 Formatter 1. Converter 1) Converter 소개 - Spring 3.0에서 PropertyEditor를 대신하기 위해 도입된 타입 변환 API다. 매번 바인딩을 할 때마다 새로운 오브젝트가 생성되는 것이 싫거나, prototype 스코프를 가지는 bean을 사용하기 불편한 경우에 적합하다. - Converter를 사용하면 바인딩 과정에서 메소드가 한 번만 호출되며, 상태를 인스턴스 변수로 저장하지 않는다. 따라서, 멀티스레드 환경에서도 singleton 스코프를 가지는 일반적인 bean을 사용할 수 있다. - PropertyEditor와 다르게 한 쪽 타입이 String으로 고정되어 있지 않고, 양 쪽 타입 둘 다 임의로 지정할 수 있다. 단, 소스 타입에서 타깃 타입으로의 단방향 변환만 지원한다. .. 2022. 9. 21. [시뮬레이션] 주차 요금 계산 - 2022 KAKAO BLIND RECRUITMENT 해결 방법 맵을 이용하여 을 map으로 표현했다. bill 구조체 주차중인지의 여부 : 출차 기록이 나와있지 않은 경우에는 23:59에 출차되었다고 간주해야 되기 때문에 현재 주차중인지도 표시해야 한다. 입장 시간 : 차가 하루에 2번 이상 들어오는 경우도 있기 때문에 입장 시간을 계속 갱신해줘야 한다. 누적 시간 : 최종 주차 요금은 나중에 일괄적으로 계산하기 때문에 누적 시간을 반영했다. 실수할 만한 부분 초과 요금 계산 : 기본 시간 밑으로 주차한 경우에는 초과 요금이 0이 되어야 한다. 올림 연산 : 실수형 타입(float, double 등)에 대해 올림을 수행해야 한다. ceil(excess_time/fees[2]) // X ceil((double)excess_time/fees[2]) // O .. 2022. 9. 20. 이전 1 ··· 6 7 8 9 10 11 12 ··· 65 다음