목록전체 글 (37)
프로그래밍 끄적끄적
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Q9S8y/btrM3aP8zAM/V0ogu1XkZlbHqqkkqhjzo1/img.png)
카탈랑 수(Catalan number)는 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, ... 로 이루어진 수열로, 조합론에서 빈번하게 나타나는 수열이다. 점화식으로 나타내면 다음과 같다. $$ C_{0} = 1, \, C_{n+1} = \sum_{i=0}^{n}{C_{i}C_{n-i}} \; (n \geq 1) $$ 이 점화식을 따르는 대표적인 예제로, 'n개의 괄호 쌍으로 나타낼 수 있는 올바른 괄호 조합 구하기'가 있다. (이때 올바른 괄호란, '('의 개수가 항상 많거나 같다가 마지막엔 '('의 개수와 ')'의 개수가 같은 식을 말한다.) 점화식을 위해 C(0) = 1이라고 설정한다. 1개의 괄호 쌍 1개의 괄호 쌍은 '()'으로..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/barqdC/btrKqPMY7zS/gKwSFQkwWmOG4OKLFKlkuK/img.jpg)
서울대에서 디자인 씽킹을 주제로 세미나를 들었다. 5명씩 조를 이루어 전동킥보드에 대한 디자인 씽킹을 진행했다. 디자인 씽킹은 아이디어를 도출하기 위해 총 5가지의 단계를 거친다. 첫 번째는 “공감”이다. 문제에 대해 아이디어를 내기 전에 먼저 고객의 문제에 대해 공감해야 한다. 이에 대한 대표적인 사례로 ‘Embrace Infant Warmer’가 있다. 아프리카에서 많은 미숙아 아이들이 저체온으로 인해 사망한다. 보통의 기업들은 이런 문제를 해결하기 위해 ‘인큐베이터’를 떠올렸다. 그리고 가능한 많은 인큐베이터를 보급하기 위해 단가를 어떻게 낮출 수 있을지 고민했다. 그러나 스탠퍼드 대학의 어느 학생들은 직접 현장에 뛰어들어 문제에 대해 공감하려 했다. 현장에 가보니 병원에 인큐베이터는 많이 있었지만..
Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.) for Version 4.10.1 Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.) I got this issue after updating the android plugin. Please help. I tried to change the gradle stackoverflow.com 예전에 사용하던 노트북으로 다시 개발할 일이 있어 안드로이드 스튜디오를 새로운 버전으로 다시 깔았다. 그러나 grad..
스프링 MVC에서는 /hello-basic 매핑에 있어서 /hello-basic url이든 /hello-basic/ url이든 같은 요청으로 매핑한다. @RequestMapping은 어느 HTTP 메서드든 호출됨 🍃 PathVariable (경로 변수) 1 2 3 4 5 6 @RequestMapping("/mapping/{userId}") public String mappingPath(@PathVariable("userId") String data) { log.info(" info userID={}", data); return "ok"; } Colored by Color Scripter cs line 1) {[경로변수명]} 형식으로 매핑 url을 작성 line 2) @PathVariable 애노테이션을 ..
org.slf4j의 Logger와 LoggerFactory 사용 1 private final Logger log = LoggerFactory.getLogger(getClass()); cs * lombok @Slf4j 으로 대체 가능 1. 로그 종류 1 2 3 4 5 log.trace("trace log={}", name); log.debug("debug log={}", name); log.info(" info log={}", name); log.warn(" warn log={}", name); log.error("error log={}", name); cs line 1) trace: 가장 낮은 단계의 로그 (로컬 PC에서 쓰는 용도..?) line 2) debug: 디버스 할 때 사용되는 정보 (개발 서..
1. 스프링 MVC가 View를 찾을 수 있도록 설정 resource > application.properties 파일에 하단의 설정 추가 spring.mvc.view.prefix=/WEB-INF/views/ spring.mvc.view.suffix=.jsp line 1) spring.mvc.view.prefix: spring mvc가 찾을 뷰 경로를 설정 line 2) spring.mvc.view.suffix: 뷰로 인식할 확장자를 설정 2. 스프링 MVC 적용하기 1) 폼 만들기 컨트롤러 1 2 3 4 5 6 7 8 @Controller public class SpringMemberFormControllerV1 { @RequestMapping("/springmvc/v1/members/new-form"..
🌳 캐시 기본 동작 🍃 캐시가 없는 경우 star.jpg 이미지를 처음 요청했을 경우 서버는 1.1M를 전송함 (헤더 0.1M, 바디 1.0M이라고 가정) 또 다시 똑같은 요청을 했을 경우 서버는 똑같이 1.1M를 전송함 이런 방식의 문제점 ▪ 데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 함 ▪ 인터넷 네트워크는 매우 느리고 비쌈 ▪ 브라우저 로딩 속도가 느림 = 느린 사용자 경험 🍃 캐시를 적용한 경우 star.jpg 이미지를 처음 요청했을때 서버는 기존 1.1M HTTP 메시지에 캐시와 관련된 정보를 추가하여 전송함 ex) cache-control: max-age=60 //60초 동안 캐시가 유효함 이를 받은 웹 브라우저는 캐시 저장소에 이 응답 결과를 캐시로 저장함 60..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bz00wV/btrk7uO77YZ/klmmU9YvJUdx7UYMip2sPk/img.png)
🌳 HTTP 헤더 🍃 필드 구성방식 field-name: field-value 🍃 HTTP 헤더 용도 HTTP 전송에 필요한 모든 부가 정보 ex) 메시지 바디의내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보 ▪ 표준 헤더 필드 https://en.wikipedia.org/wiki/List_of_HTTP_header_fields 🍃 HTTP 헤더 분류 ▪ General 헤더: 메시지 전체에 적용되는 정보 ex) Connection: close ▪ Request 헤더: 요청 정보 ex) User-Agent: Mozilla/5.0 ▪ Response 헤더: 응답 정보 ex) Server: Apache ▪ Entity 헤더: 엔티티 바디 정보 ex) Content-Ty..