기초적인 웹 서버 프레임워크 만들기 이번 실습에서는 프레임워크 없이 java의 기본적인 라이브러리로 이루어진 웹 서버를 바탕으로 책의 요구사항을 만들어보게 됩니다. 아무것도 없는 환경에서 하나씩 기능구현을 해보면서 자연스럽게 웹 프레임워크 혹은 java 웹 표준 기술들이 왜 필요하게 되었는지 느끼게 됩니다. 결국 여러 기능을 구현하다보면 자연스럽게 공통 처리 로직을 묶어서 관리하게 되는데 이게 프레임워크의 가장 기초 뼈대로 수렴하기 때문입니다! 요구사항 1 - http://localhost:8080/index.html로 접속시 응답 요구사항 2 - get 방식으로 회원가입 요구사항 3 - post 방식으로 회원가입 요구사항 4 - redirect 방식으로 이동 요구사항 5 - cookie 요구사항 6 -..
상속과 다형성을 처음 접한다면 먼저 그것에 대해 배운 뒤 읽는 것을 추천드립니다. 오늘 다룰 주제는 상속과 다형성이다. 기초가 되는 개념이지만 파고 들어 보면 생각만큼 간단하지는 않다. 그 중 다소 까다로울 수 있는 binding과 상속이 되는 방식에 대해 다루고자 한다. 아래 코드를 보자. public class Main { public static void main(String[] args) { Parent parent = new Parent(); Child child = new Child(); Parent paild = child; System.out.println(parent + " # " + parent.staticMethod()); System.out.println(child + " # " +..
Java String에 대해 어느 정도 알고 있다면 3번부터 읽는 걸 추천드립니다. 1. String의 불변성 JAVA의 String을 배우면 보통 String은 불변(Immutable, unchanged)하다는 것을 배우게 될 것이다. 이 불변이라는 말을 처음 들으면 오해하기 쉽다. (call by value, call by reference가 그렇듯이) 예를 들어 String test = "hello"; test = "changed?"; 와 같은 코드는 당연히 작동한다. 그렇다면 string이 변한 것 아닌가..? 라고 생각할 수 있다. 그건 test 변수에 대해 오해하고 있기 때문이다. 여기서 test 변수는 object가 아니라 object의 reference이다. 그리고 우리가 변했다고 생각한 ..
익히 알려진 것처럼 함수는 스택에서 실행된다. 이 말을 듣고 "그럼 static method도 마찬가지인가?" 하는 생각이 들었다. static variables는 동적 영역이 아닌 정적 영역에 저장된다는 아래 그림(쉽게 배우는 자료구조 - 문병로 p.175)을 보고 의문이 들었기 때문이다. 결론부터 이야기하자면 "그렇다."이다. 어찌보면 당연한 얘기이긴 하다. static method여도 실행 자체는 당연히 스택에서 되기 마련이다. 일련의 자료들을 찾아보면서 왜 그런 의문이 들었는지 깨달았는데 그냥 단순한 JAVA 동작 원리에 대한 미숙한 이해때문이었다... 그래서 관련하여 정리를 하고자 한다. ------------------------ 우선 JAVA 8 이후와 그 이전으로 나뉜다. JAVA 8 이후..