semmal의 블로그

semmal의 이미지

Java Servlet에서 URL로 들어오는 인코딩 구별하기

서블릿 프로그램을 짜다보면 흔히 인코딩에서 문제가 생기곤 한다.

대부분은 경험 부족에서 기인하는 경우가 많지만, 쌓인 경험이 무색하게도 인코딩 문제 중 몇몇은 손을 들 수 밖에 없다.

semmal의 이미지

게으른 프로그래머

흔히 사람들은 IT개발자라고 하면 성실하다라고 생각하겠지. 그렇게 보면 난 엄청나게 게으른 사람임에 분명하다. 하지만 내 생각은 분명하다. 게으른 프로그래머만이 더 좋은 코드를 만들고 더 좋은 제품을 만들 수 있다.

semmal의 이미지

요즘에 글이 뜸한 이유가

업무로 하는 일이 막혀서 그렇습니다.

C로 이미 짜여진 코드를 QT와 붙이고 있습니다.

그런데 문제가 stdandard I/O를 쓰는 c코드와 새로 만드는 코드가 서로 잘 연결이 안되는 문제가 있네요.

물론 linux나 unix에서는 pipe나 dup을 쓰면 문제가 없습니다만, 이놈의 windows에서는 low-level io만 pipe와 dup이 동작하고 stream io에 대해서는 동작을 안하네요.(첫번째 문제)

semmal의 이미지

미분하는 프로그램 4 - Object-Oriented Programming

OOP스타일로 메시지 패싱을 사용하는 형태로 작성했습니다.

Scheme과 OOP 언어와의 차이라면 self(또는 dispatch)의 동작이 자동이냐 아니냐의 차이입니다.

원래 Scheme이 Cuncurrent OO언어인 Actor의 의미 모델을 설명하기 위해 개발되었기 때문에, 이런 방법이 확실히 이상한 꼼수는 아닙니다.

만약, OOP 스타일로 짜여진 미분 프로그램에 공식을 추가하고 싶으면 오브젝트만 하나 더 만들면 됩니다.

semmal의 이미지

미분하는 프로그램 3 - Infix 로 입출력하기

입출력을 infix로 하기 위해서는 각 selector에서 첫번째 심볼을 골라내는 car를 cadr로, 두번째 심볼을 골라내는 cadr을 car로 바꿔 처리합니다.

또한, constructor에서 연산자를 첫번재가 아닌 두번째 위치로 지정해주면 됩니다.

negative의 경우에는 연산자가 앞에 있기때문에 거의 그대로 처리해주면 됩니다.

semmal의 이미지

미분하는 프로그램 2 - 출력을 개선하기

저번에 만들었던 미분하는 프로그램은 더하기와 곱하기만 지원하고 출력이 그리 보기 좋지 않았습니다.

아래는 음수, 빼기, 거듭제곱의 경우까지 처리하고, 출력까지 더 좋게 만든 형태입니다.

분리하고 합치는 간단한 규칙 몇 개만 추가하면, 이런 공식은 얼마든지 붙여쓸 수 있습니다.

다음에는 prefix가 아니라 infix로 입력을 받고 출력을 하도록 바꿔보도록 하겠습니다.

semmal의 이미지

미분하는 프로그램 1

Structure Interpretation of Computer Programs는 프로그래밍 입문서입니다.

입문서인데도 불구하고 프로그래밍 전반에 대한 기본 개념과 고급 기술까지 방대한 분야를 설명하고 있습니다.

책을 따라가다보면 여러가지 예제를 만나게 되는데, 그 수준은 입문서라고 보기 힘들정도의 고난이도를 자랑합니다.

지금 만드는 미분하는 프로그램은 그나마 쉬운 편에 속하죠.

페이지

RSS - semmal의 블로그 구독하기