문제 웹 서버의 엑세스 로그에 찍힌 쿠키 값을 이용해서 해당 리퀘스트의 정보를 조회한다. 그런데 WAS에서 DB조회한 후 엑세스 로그를 설정한다. 엑세스 로그에는 설정된 쿠키값이 잘 찍힐까? 나의 생각 웹 서버의 엑세스 로그는 웹 서버에 요청이 들어올 때 찍힐 것이다. 그게 들어왔다는 엑세스(접근) 기록이니까. 그런데 웹 서버를 지나 웹 어플리케이션에서 쿠키를 설정한다면, 이미 엑세스 로그를 찍었기 때문에 설정된 쿠키값이 안찍힐 것이다. 그러므로 의미있는 해당 요청에 대해서 제대로 쿠키가 담긴 엑세스 로그를 보려면 응답을 받은 후 더미 리퀘스트를 날려서 확인해야할 것이다. 실제 테스트 웹 서버의 엑세스 로그에는 status code가 찍혀있다. 이 의미는 요청(request)이 들어올 때 바로 로그를 남..
AOP 구현 방법 비교 java에서 AOP를 구현하는데는 세가지의 방법이 있다. java proxy, cglib, aspectJ이다. 이번 포스팅에서는 세가지를 간단하게 비교해보고 개인적인 경험을 적어 두려고 한다. Java proxy (InvocationHandler) 런타임시에 Target method가 호출될 때 Advice(프록시 할 기능)을 적용 JDK Proxy는 인터페이스에 대한 Proxy만을 지원 Cglib (MethodInterceptor) java proxy와 동일하게 런타임시에 Advice 적용 메써드가 처음 호출 되었을때 동적으로 bytecode를 생성하여 이후 호출에서는 재사용 클래스에 대한 Proxy가 가능 AspectJ Runtime이 아닌 Compile 시점에 Aspect를 ..
파라미터 기본값 함수가 파라미터 값을 받지 못할 때 (undefined 이면) 기본값을 할당하는 구문이 추가되었습니다. function hello(firstName ='Barack', middleName = 'Hussein', lastName = 'Obama') { console.log('hello, ' + firstName + ' ' + middleName + ' ' + lastName); } hello(); hello('Michelle', 'L.R.'); hello(undefined, undefined, 'White'); [결과] hello, Barack Hussein Obama hello, Michelle L.R. Obama hello, Barack Hussein White 기본 값 자리에 표현식을..
Const ES6 이전에는 상수(읽기 전용 변수, 값을 다시 할당할 수 없는 변수)를 만드는 키워드가 없었습니다. 이제 const라는 키워드로 상수를 만들 수 있습니다. const pi = 3.141; let r = 2; console.log(pi * r * r); pi = 12; [결과] 12.564 TypeError: Assignment to constant variable. 상수의 scope const로 선언한 변수는 let으로 선언한 변수와 스코프 규칙이 같습니다. 즉, 블록 스코프입니다. 상수의 객체 참조 원시 타입이 아닌 객체를 상수로 만들게 되면 참조값(reference)가 저장 됩니다. 이 뜻은 const로 선언한 변수에 객체를 할당하게 되면 객체가 아닌 참조값이 고정(불변)되는 것입니다...
블로그에 글을 쓰면서 예쁘게는 쓰고 싶고, 독자들이 읽기 편했으면 좋겠다는 생각을 많이 했습니다. 그래서 글자 크기를 좀 키웠고 코드는 인텔리제이에서 예쁘게 복사해서 가져왔습니다. 그런데 복사 붙여넣기 한게 약간 자기 마음대로 줄간이나 글자 크기가 설정 될 수 있었습니다. (제가 대단히 디자인이 멋진 글을 쓰진 않기 때문에) 일관된 포멧으로 글을 써야겠다고 마음 먹었고, 그 포멧은 마크다운이었습니다. 그래서 구글에 ‘tistory markdown’이라고 검색해서 아무거나 따라해봤는데 뭔가 이상한 겁니다. 왜냐하면 제가 쓰는 스킨(다이나마이트 스킨)이 마크다운을 지원하는 스킨이어서 그런 거였더군요. 그런데 문제는 코드를 표현하지 못하는 것이었습니다. 그냥 일반적인 텍스트로 나오더군요. 이리 저리 CSS를 ..
var vs let var 는 함수 스코프, let 은 블록 스코프 기존의 var는 함수 스코프 변수입니다. 우리가 기본적으로 알고 있는 블록 스코프가 아닙니다. 함수 내에 어디서든 선언하면 접근 가능합니다. (관련 내용 : http://chanlee.github.io/2013/12/10/javascript-variable-scope-and-hoisting/) 그래서 기본적으로 헤깔립니다. 코드가 길어지면 길어질 수록 변수가 선언된 곳을 찾는 것이 어려워집니다. var a = 12; function myFunction() { console.log(a); var b = 13; if(true) { var c = 14; console.log(b); } console.log(c); } myFunction(); ..
저는 현재 3년차 개발자로, 주로는 자바개발을 하고 자바스크립트도 가끔합니다. 예전에 인사이드 자바스크립트라는 책으로 공부를 했었는데요, 지금은 많이 까먹었습니다만, 그래도 프로토타입이 뭔지는 압니다. 그러나 현재 엄청나게 다양해지고 발전한 프론트앤드 기술은 잘 모릅니다. 이런 수준에서 이 책의 리뷰를 적어보겠습니다. 저는 지금 신림 프로그래머 그룹에서 진행하는 프론트엔드 스터디를 하고 있습니다. 제가 맡은 부분은 ECMAScript6(이하 ES6)입니다. 공식 문서를 보는 것을 약간 무서워(?)하고 블로그의 지식으로는 둥둥 떠다니는 지식들을 조립할 수능력이 부족하여 책을 추천받아서 읽어보았습니다. 책은 ECMAScript6 길들이기(나라얀 프루스티 저, 이일웅 역) 입니다. 책을 간단히 소개드리면, 2..
비호환 엔진에서 ECMA Script 6 실행 폴리필 / polyfill비호환 엔진에 없는 코드의 기능을 지원하기 위해서 삽입하는 코드 조각이다. 예를 들어서 ES6에서 제공하는 심볼을 사용하기 위해서는 core.js 같은 폴리필을 사용할 수 있다. 그러나 ES6 모든 기능에 폴리필을 쓸 수 없는(만들 수 도 없는) 기능들이 존재한다. 폴리필 목록은 아래 링크에서 볼 수 있다.https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills#ecmascript-6-harmony (ES6)트랜스파일러 / transpilerES6 트랜스파일러는 ES6 소스코드를 ES5 소스 코드로 변환하여 거의 모든 자바스크립트 엔진에서 사용할 수 있게 해준..
이번에는 아라한사님과 재린님이 webpack에 대해서 준비해주셨습니다.https://webpack.github.io/ 기술적으로 많이 이해하지는 못했지만, 이번 스터디를 통해서 프론트와 백앤드를 분리하는 시나리오를 배웠습니다.많은 것을 알려주셨지만, 제가 얻은 얕고 좁은 지식을 정리해볼까 합니다. 우선 웹팩은 웹의 클라이언트 리소스들을 번들링(패키징)하는 도구입니다. 공홈에가면 웹팩 모듈 번들러라고 하는 군요. 모듈은 우리가 기본적으로 생각하는 기능단위를 생각하시면 될 듯합니다. 번들링은 검색해보면 세트로 묶어서 파는 것이라는 내용이 많이 나오는데요, 웹팩의 번들링은 js, css, img를 세트로 묶어주는 것을 말합니다. 이미지까지 묶인다는게 참 신기했습니다. 개념은 이 정도로 이해했고, 그러면 어떻게..
최근 자바스크립트에 정말 관심이 많습니다.1주 전부터는 사내에서 사람들을 모집하여 Node.js 스터디를 하고 있습니다. 책은 윤인성님의 모던 웹을 위한 Node.js 프로그래밍(3판) 입니다.예제 코드는 https://github.com/Yeomyeong/nodejs-study 여기에 잘 정리하고 있습니다. 현재 200쪽 가량 읽었는데 술술 읽혀서 참 좋습니다.초심자가 보기에는 참 좋은 책인듯 합니다. 끝까지 읽으면 리뷰를 좀 해보겠습니다. 목표는 사내에 노드로 만든 작은 서비스에 기능을 추가하는 것입니다.목표를 향해서 화이팅 ㅋㅋ
특정 인프라가 불안정해서 때때로 오래 걸리는 메서드가 있다고 가정해보자.오래걸릴 경우는 무조건 이상 상황이다. 기다리지 않고 다음 일을 진행하는 것이 좋다.네트워크 단에서 문제를 해결하고 싶지만, 내가 그쪽 코드는 건드리지 못하는 상황에서 메서드에 타임아웃을 거는 방법이 있다. java.util.concurrent.ExecutorService, java.util.concurrent.Future 를 활용하는 방법이다. import org.junit.Test; import java.util.concurrent.*; public class ExecutorTest { @Test(expected = TimeoutException.class) public void executorTest() throws Except..
16년 9월 9일 금요일 첫번째 front-end 스터디를 했습니다. 주제는 angular2 소개였으며, 범균님과 재섭님이 준비해주셨습니다. 정말 최근 front-end 흐름을 쫓아가지 못하는 저로서는 그냥 마냥 신세계였습니다.이런 무식자인 제가 느낀 점을 그냥 적어보려고 합니다. [그림1] angular2 architecture overview (출처 : angular2 공홈) 1. angular2 는 (컴포넌트를) type script로 작성한다.type script는 자유도 높은 javascript를 type safe하게 해주고 좀 더 객체 지향적으로 개발할 수 있게 해준다고 대략 알고 있습니다. 그 코드를 보니 자바와 비슷한 느낌을 받았습니다. 자바 개발자가 좀더 쉽게 적응할 수 있을 것 같습니다..
link : http://www.fastcampus.co.kr/dev_camp_jwp/강사 : 자바지기(박재성) 님 (인터뷰 : http://www.fastcampus.co.kr/dev_camp_jwp_blog_instructor_1/) 지난 7-8월은 정말 힘든 여름이었습니다. 이상고온과 많은 업무 그리고 보라매에서 신사(패스트 캠퍼스)까지 먼 거리 이동 때문에 많이 힘들었습니다. 또한 저희 회사는 목요일 저녁, 금요일 새벽에 배포를 하는데 목요일 강의가 있기 때문에 저는 매번 금요일 새벽에 출근해야 했죠. 말그대로 7월 8월은 기운이 따 빠져있는 상태였습니다. 그래도 패스트 캠퍼스에서 자바 웹 프로그래밍 강의를 듣고 온 날은 기분이 참 좋았습니다. 그리고 강의가 다 끝난 지금 돌아보니 억지로라도 간 ..
신림프로그래머 클린코드 Jpg from Yeomyeong Woo 어제(2016.06.18) 제가 정말 좋아하는 신림동 프로그래머에서 공개 세미나를 했습니다. 저도 용기내서 "클린코드"라는 주제로 발표를 했는데요. 참 좋았습니다. 발표자료를 공유합니다. http://www.slideshare.net/YeomyeongWoo/jpg-63215333 이상하게 키노트에서 pdf로 만든 파일을 slideshare에 올리면 한글이 다 사라지는 경우가 있었습니다. slideshare에 있는 슬라이드는 이미지로 만든 슬라이드입니다. 그래서 텍스트가 있는 pdf 파일도 여기에 같이 공유 드립니다. 조금이라도 도움이 되길 바랍니다.
오늘은 TDD 8장 까지 스터디를 하였습니다. 8장의 내용은 Dollar와 Franc이라는 각 지역별 화폐 객체에서 Money라는 상위클래스를 추출함으로써 한 단계 추상화하고 각 코드의 중복을 제거하는 부분이었습니다. 캔트 백은 중복을 제거하면서 상위 클래스에 펙토리 메서드를 만듭니다. 저는 이 부분이 너무 어렵게 느껴졌습니다. 과연 내가 그런 상황에서 펙토리 메서드를 생각해낼 수 있었을까 하는 의문이 들면서 말이죠.좀 더 고민해보니까, 이런 결론을 얻었습니다. 추상화를 하고 나서 구상 클래스 (Concrete class)와 클라이언트 코드간의 의존성을 제가하는 것은 당연한 것이다. 펙토리 메서드를 생각해 낼수 있느냐의 문제가 아니고, 구상 객체와 클라이언트 코드간의 의존성 제거를 위해서 꼭 해야하는 일..
이 책은 스프링 세미나에 갔다가 발표자 분과 같은 동네에 산다는 이유로 받은 책입니다. 다시 한번 감사드립니다. 정말 꼭 봐야할 책을 본 느낌입니다. 그리고 앞으로 어떻게 더 공부해야할 지 방향성을 잡는데 큰 도움이 되는 책이었습니다. 그리고 혼자 읽은 것 보다 스터디 원들과 함께 읽고 토론했던 것이 참 좋았습니다. 놓치기 쉬운 부분도 잘 잡을 수 있었습니다. 그리고 발표자료를 준비하면서 더 단단히 다질 수 있었습니다. 이 책에 대해서 갑을논박이 있는 것으로 압니다. 그런데 저는 이 책은 개발자라면 꼭 봐야하는 책이며 이론과 실전의 조화가 잘 잡힌 책이라고 느꼈습니다. 다음의 세가지 이유를 들어서 이 책을 추천합니다. 첫째, 클린코드가 얼마나 어려운 일인지 알려주는 책입니다. 클린 코드를 작성하려면 고려..
아직도 한참 멀었습니다. 자바스크립트는 아직도 참 어렵습니다.약 2년 전 쯤, 이 책으로 회사에서 처음 스터디를 했습니다. 어려웠지만 자바와 C만 알던 저에게 새로운 세계를 보여주었습니다. 최근에 좀 난이도 있는 자바스크립트 작업을 해야해서 다시 이 책을 펼쳤는데 또 새롭네요. 다시 읽어보려 합니다.그래도 한번 읽어본 사람으로서 간단하게 소개해 드리고 장점을 알려드리고자 합니다. 우선 간단하게 소개해드리면, 이 책은 제목처럼 자바스크립트의 패러다임과 내부 원리를 자세히 설명해주는 책입니다. 일급 객체, 함수, this 바인딩, 프로토타입, 클로저, 실행 컨텍스트(like 콜스택의 실행정보) 같은 개념을 소개해줍니다. 단순히 자바스크립트를 써보려고 읽는 책과는 조금 차이가 있죠. 나중에는 더 어려운 함수형..
지난 달 회사에서 진행했던 클린 코드 스터디가 마무리 되었습니다. 우선 끝까지 수고해주신 스터디원 여러분 진심으로 감사하드립니다. 이제인 매니저님이 제안한 방법으로 회고를 진행했습니다. 회고 방법은 다음과 같습니다. 1. 포스트잇에 이번 스터디를 하면서 떠오르는 생각들을 막 적습니다. 2. 다 적으면 보드에 붙입니다. 3. 포스트잇을 분류합니다. 4. 분류한 내용에 대해서 이야기해봅니다. 밥 / 지원 / 스터디 시간 / 걱정 / 내용 (느낀점, 좋았던점) / 방향성 으로 분류했습니다. 그리고 아래와 같은 이야기를 도출했습니다. - 점심 시간 스터디는 좋았음. - 화-금 점심이 좋음. 금요일 새벽 배포 일정을 고려해서 화는 고정으로 하고 목,금을 유동적으로. - 대신 배가 고프니, 샌드위치 혹은 피자를 먹..
저는 정확히는 2.2버전의 책을 보았습니다. 큰 수정이 없었을 것이라고 생각하고 리뷰를 작성합니다. 이 책은 자바 웹 개발자의 입문서로 정말 강력하게 추천합니다. 그 이유는 세가지 입니다. 첫째, 자바로 만드는 웹 서비스에 대한 기본을 알 수 있습니다. 서블릿에 대한 이해, 내장 객체, 쿠키, 세션 등 에 대한 이해를 통해서 작게는 서블릿과 JSP를 이해할 수 있고, 더 나아가서 지금 우리가 사용하는 자바 웹 프레임워크에 대해서도 이해할 수 있습니다. 둘째, 초보자들에게 필요한 간단한 설계 방법이나, 코딩 가이드를 예제 코드를 통해서 익힐 수 있습니다. 저 같은 경우는 회사에 처음 들어갔을 때, 서비스 레이어, DAO 레이어에 대한 이해도 없었고, 그 것에 대해서 자세히 설명해주시는 분도 없었습니다. 이..
- Total
- Today
- Yesterday
- ChatGPT
- S68
- spring
- AWS
- 웹
- Docker
- 회고
- container
- spring boot
- rest
- 개발자
- ES6
- 사누르
- 웹을 지탱하는 기술
- 한달살기
- 도커
- hands-on
- 독후감
- sanur
- html
- javascript
- 실수노트
- 객체지향
- 컨테이너
- AWSKRUG
- 발리
- Bali
- Clean code
- springboot
- ecma6
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |