개요 다형성의 사전적 의미는 '여러 개의 형태를 갖는다'라는 뜻이다. 여러 형태를 갖으므로써 사용자는 사용편의성을 취할 수 있다.다형성이라는 것은 객체에게만 국한된 개념은 아니다. 오버로딩과 오버라이딩은 메소드의 다형성을 쉽게 설명할 수 있는 개념이다. 반면에, 객체의 다형성은 쉽지 않아 개념을 정리해보았다. 설명을 위한 예제 클래스는 아래와 같이 구현되어 있다. class 자동차{ void run() { System.out.println("달린다."); } } class 슈퍼카 extends 자동차{ @Override void run() { System.out.println("빨리 달린다."); } void turbo() { System.out.println("순간 가속도를 최대로 올린다."); } }..
오버라이딩이란? 조상(부모) 클래스를 상속받은 자식 클래스를 작성할 때, 상속받은 메소드의 기능을 재정의 하는 것이다. 언제 사용할까? 상속받은 메소드 중 자식 클래스에서 사용할 수 없는 경우나, 자식 클래스를 만드는 개발자의 입장에서 메소드의 기능을 재정의를 하고 싶을 때 사용한다. (모든 클래스를 한명의 개발자가 만드는 것이 아님을 항상 염두하자) 오버라이딩 선언 조건 상속받은 메소드와 오버라이딩한 메소드의 이름이 같아야 한다.상속받은 메소드와 오버라이딩한 메소드의 매개변수가 같아야 한다. (매개변수의 타입, 갯수)상속받은 메소드와 오버라이딩한 메소드의 리턴타입이 같아야 한다. 오버라이딩시 주의사항오버라이딩 된 경우, 부모클래스의 메소드는 무시되고 자식클래스의 오버라이딩 된 메소드가 호출된다.자식 클..
StarUML의 기본적인 사용법은 이전 포스팅을 참고 ☞ StarUML로 간단한 Database ERD(Data Model)그리기 StarUML로 만든 ERD에서 바로 데이터 정의 언어 (Data Definition Language - DDL)을 생성해보자. 1. FK(foreign key - 외래 키) reference 설정하기 Entity(table)상에선 FK로 명시되어 있지만, 실제로 어떤 값을 reference하고 있는 지 설정 해주어야 한다. FK 설정을 원하는 Column을 선택하고, 우측 Properties 툴을 보면 referenceTo 설정이 있다.돋보기 아이콘을 클릭한다. reference 해야 할 요소를 찾아서 설정해주면, reference 값이 설정 된다. 2. DDL 플러그인 설..
1. StarUML 공식 홈페이지 - 무료로 다운로드 가능 http://staruml.io/ 2. ERD(Data Model) 프로젝트 만들기 File - New From Template - Data Model로 Database ERD 프로젝트를 만든다. 3. Entity(Table) 그리기 좌측에 Entity와 Relationship을 표시를 위한 툴이 있다. Entity를 선택한 후 캔버스에 적당한 크기로 그린다. Entity(table)의 이름을 정한다. 4. Column추가하기 Column을 추가한다. Entity에서 마우스 우클릭 - Add - Column Column이 생성되었다. Column 이름을 더블 클릭하면 Column 이름을 수정 할 수 있다.이름만 정해 주어도 되고, 이름과 타입을 ..
초보개발자가 할 수있는 가장 끔찍한 실수 중에 하나는 협업 중인 브랜치(branch)를 더럽히는 일이다. 터미널 환경에서 git을 사용하고 있다면, 현재 내가 어떤 브랜치를 사용하고 있는지 표시해주는 설정해두어 이러한 실수를 사전에 방지할 수 있다. 설정방법 1. sudo vim ~/.bashrc vim에디터가 없다면 nano 혹은 vi 명령어를 사용해도 좋다. 2. 에디터를 사용하여서 아래 내용을 추가한다. parse_git_branch() { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/' } export PS1="\u@\h \[\033[32m\]\w\[\033[33m\]\$(parse_git_branch)\[\033[00m\] ..
웹 개발 과정 중에서 클라이언트가 보낸 요청정보를 받아 다루는 일은 굉장히 빈번하며, 반복적인 작업을 요구한다. 아래에 요청정보 처리 방법의 예제로 가장 원초적인(?) 방법부터, 스프링의 기능을 활용 하는 방법까지 총 3가지를 적어보았다. 단계별로 줄어가는 코드의 양만 보더라도, 스프링의 강력함을 알 수가 있다. 예제는 클라이언트가 보낸 nickName, title, content를 받아서 Model에 저장한 후, JSP페이지를 리턴하는 과정이다. 1.HttpServletRequest를 이용하는 방법 서블릿을 활용한 기본적인 방법이다. @RequsetMapping("/board/write") public String ArticleWrite(HttpServletRequest request, Model mo..
Bean이란 무엇인가? Bean을 한마디로 정리하자면, '스프링이 생성하고, 관리해주는 객체' 라고 할 수 있다. (그러므로 개발자가 직접 new연산자로 생성한다면 그것은 Bean이 아니다.) 왜 객체를 Bean으로 해야 할까? 스프링같은 프레임워크를 다루어 보지 않은 초보 개발자들에겐 자연스러운 궁금증이 생겨난다. 왜 객체를 스프링이 생성하고 관리해야 하는가? 스프링은 객체를 다루기 위한 보조 기능들을 제공한다. 예를들어 트랜잭션처리, 객체의 라이프사이클 관리, 자동주입 등등... 정확히 어떠한 기능인지는 알 수 없을지 라도 많은 도움을 준다는 것은 알 수 있다. 이러한 기능을 제공받기 위해서 객체를 제어하기 위한 주도권을 스프링에게 넘겨주어야 하고, 그러기 위해서 객체를 Bean으로 생성 하는 것이다..
수학에서 사용되는 사칙연산에는 여러가지 규칙이 있다. 예를들어 곱하기와 나누기는 다른 연산보다 우선시 되어 하고, 괄호가 있는 경우에는 모든 연산의 최우선이 된다. 이러한 규칙들로 인해서 사칙연산을 프로그래밍적으로 구현하기에 많은 어려움이 있다. 하지만 ‘후위표기식(postfix expression)’을 사용한다면 좀 더 쉽게 가능할 것이다. 후위표기식이란 먼저 우리가 일반적으로 사용하는 사칙연산은 피연산자(숫자)사이에 연산자(+-*/)가 들어가는 형태로 ‘중위표기식(infix expression)’이라고 한다. 그러나 후위표기식은 피연산자가 먼저쓰이고, 그 뒤로 피연산자가 나오는 형태를 말한다. 예를들어, 4+3의 중위표기식을 후위표기식으로 바꾼다면 4 3 + 으로 표현할 수 있다. 후위표기식의 장점 ..