클래스 디자인(Class design)이라는 것은 한 프로그램의 클레스를 설계하는 것이다. 어떤 건물을 지을 때 건물의 설계도를 그리고 그 설계도에 따라서 건물을 짓는다. 그리고 그 설계도라는 것은 규모가 커질수록 중요도가 높아진다. 소프트웨어도 마찬가지이다. 만약 소규모 프로젝트를 진행함에 있어서 설계도는 간단하게 넘어갈 수도 있다. 하지만 프로젝트의 규모가 커질수록 그 설계도는 정교하게 작성되어야 할 것이다. 먼저 클래스, 추상 클래스, 인터페이스의 개념을 잡고 넘어가도록 하자. 클래스(Class) 클래스는 하나의 설계도라고 보면 될 것이다. 클래스에는 멤버변수, 메소드, 내부 클래스 등이 존재할 수 있다. 이 클래스라는 설계도를 통해 실체화한 것이 객체(Instance)이다. 또는 인스턴스라고 말하..
IP(Internet Protocol) IP 주소를 알기전에 간단하게 IP를 먼저 알아보자. 이는 Internet Protocol의 약자로 패킷 교환 네트워크(인터넷)에서 데이터를 주고받을 때의 통신 규약이다. OSI계층에서 IP계층은 호스트의 주소지정과 패킷분할 및 조립 기능을 담당한다. IP Address(Internet Protocol Address) 우리는 편지를 보낼때 도착 주소를 반드시 명시해야한다. 그래야 그 편지는 우리가 원하는 목적지에 잘 전달될 것이다. 그리고 보낸 곳이 어딘지 정확히 명시해 주어야 받는 사람이 알 수 있을 것이다. 컴퓨터에서도 마찬가지 이다. 각기 떨어져 있는 컴퓨터들이 다른 컴퓨터로 데이터를 전송하고 주고받기 위해서는 각 컴퓨터들의 주소가 존재해야 한다. 그래야 내가..
기존의 클래스를 재사용하는 것이다. 적은 양의 코드로 새로운 클래스를 구현할 수 있고, 공통된 코드를 수정하는데에도 용이한 기법이다. 만약 사람이라는 클래스와 학생이라는 클래스를 정의한다고 했을때, 학생이라는 클래스는 사람이라는 공통된 성질을 가지면서, 학생이라는 특수한 성질을 가질 수 있다. 따라서 학생 클래스를 정의한다고 할때, 사람이라는 클래스를 상속받아서 공통된 특성을 포함시키고, 학생의 특수한 부분은 따로 만들어낼 수 있다는 것이다. 아래 코드를 통해 자세히 알아보도록 하자. // 사람 class Person { int age;// 나이 String name;// 이름 // 먹는다 void eat() {} } // 학생 class Student extends Person { int student..
환경변수 공식적인 의미의 환경변수(Environment variable)는 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들이다. OS상에서 동작하는 응용프로그램들이 참조하기위한 설정이 기록된다. 따라서 이 환경변수를 건드려야 할 상황이 생긴다면 신중하게 해야한다. 때에 따라서 프로그램의 정상적인 동작을 보장받지 못할 수 있기 때문이다. 그래서 우리가 주로 개발환경을 설정해야할 때 변경하는 환경변수는 Path나 CLASSPATH정도가 되겠다. 환경변수에도 두가지가 존재한다. 사용자 변수 - OS내의 사용자 별로 다르게 설정가능한 환경변수시스템 변수 - 시스템 전체에 모두 적용되는 환경변수 다른 사용자에게 영향을 미치느냐 미치지 않느냐에 따라서 환경변수를 변경할때도 주의를 기울이도록 해야한다..
메소드로 인자값을 넘기는 방법 메소드로 인자값을 넘기는 방법은 크게 두 가지가 있다. Call by valueCall by reference Call by value라는 것은 그대로 해석하면 '값에 의한 호출'이다. 메소드로 인자값을 넘길때 그 값을 복사하여 넘기는 형태이다. 따라서 이 방식으로 메소드 호출을 하면 메소드 내에서는 복사된 값으로 작업을 하기 때문에 원래의 값을 변경시키지 않는다. Call by reference는 '참조에 의한 호출'이다. 인자값을 메소드로 넘겨 줄때 그 객체를 참조하는 주소를 넘겨주는 형태이다. 따라서 메소드 내에서도 원래의 값에 접근이 가능하다. 아래의 예시를 통하여 정확하게 알아보도록 하겠다. 1. 인자값으로 기본형을 사용했을 때 public class Test { ..
클라이언트가 서버에게 어떤 페이지를 요청한다. 그럼 서버는 그 페이지를 클라이언트에게 전송해준다. 클라이언트가 요청하는 페이지는 크게 두 종류가 있다. 정적 페이지(Static Page) HTML파일과 CSS파일, 이미지파일과 같이 어떠한 클라이언트에서 요청해도 동일한 결과를 보여주는 페이지이다. 동적 페이지(Dynamic Page) PHP파일, JSP파일이 대표적으로 존재하며, 일정한 데이터의 처리가 필요한 페이지이다. DB에 저장된 특정한 정보를 가져와서 동적으로 생성된 페이지를 뜻한다. 이 페이지는 사용자마다의 데이터가 구별되어 다른 페이지를 보여주게 된다. 서버에서 위의 두 페이지를 처리하는 방식이 같을 수는 없을 것이다. 정적 페이지는 어떤 특정한 처리과정이 없어 전송만 해줘도 되지만, 동적 페..