제네릭스란? 제네릭(generic)의 사전적 의미는 아래와 같다. 3가지 의미 중 '포괄적인', '총칭적인'이라는 뜻에 java제네릭스에 대한 힌트가 있다. generic1.일반적인 2.포괄적인 3.총칭적인Java에서 제네릭스는 다양한 타입의 객체들을 다루는 메서드나 클래스에 컴파일 시의 타입체크를 해주는 기능이다. 정의만 본다면 무슨 말인지 알 수 없다. 아래 예제를 보자. 제네릭스는 언제 사용할까? 제네릭스를 처음 접한다면, 제네릭 클래스의 선언문을 보기보다는, 먼저 제네릭 클래스의 객체를 만들고 사용하는 사용자 입장에서 되어보는게 바람직 할 것 같다. 제네릭스를 빈번하게 쓰는 컬렉션 프레임워크의 ArrayList를 예제로 설명하겠다. ArrayList list = new ArrayList(); 위와..
이 포스팅은 생활코딩의 GIT3 - CLI 백업 강좌를 참고하여 정리한 내용입니다. 개요 컴퓨터의 저장되고 있는 git의 버젼관리 정보들과 백업 된 자료들은 자신의 컴퓨터의 종속되어 언제든지 자료가 유실 될 가능성을 갖고 있다. 하지만, 원격 저장소(remote repository)를 이용하여 자신의 코드를 보관 한다면, 안정성은 보다 올라가고, 프로젝트의 코드가 온라인 상에서 공유 될 수 있으므로, 협업의 도구로써 사용 될 수 있다. 여러 원격 저장소가 있지만 현재 가장 유명한 원격 저장소인 github를 이용하여서 원격 저장소 만드는 방법을 알아보자. github이 원격 저장소로 워낙 유명한 탓에 처음 git을 알게 되었을 때는, git과 github이 하나의 주체로 운영되는 소프트웨어 인줄 알았다...
오버로딩이란? 같은 이름의 메소드를, 다른 매개변수를 받아 동작하도록 재정의 하는 것이다. 예를들어, 아래와 같은 2개의 정수를 받아 합계를 반환하는 sum이라는 함수가 있다고 가정 해보자 public int sum(int a, int b){ return a+b; }그리고 sum과 같은 이름의 메소드를, 다른 매개변수 실수 2개를 받아 동작하도록 재정의 하면, public double sum(double a, double b){ return a+b; } 같은 이름의 메소드가 중복되어 존재할 수 있다. 언제사용할까? 간단히 오버로딩이 불가능 하다고 생각해보자. 위의 예제 sum 함수는 매개변수의 타입 혹은 매개변수의 갯수에 따라서 다른 이름의 메소드들이 존재해야 할 것이다. public int sumInt..
개요 다형성의 사전적 의미는 '여러 개의 형태를 갖는다'라는 뜻이다. 여러 형태를 갖으므로써 사용자는 사용편의성을 취할 수 있다.다형성이라는 것은 객체에게만 국한된 개념은 아니다. 오버로딩과 오버라이딩은 메소드의 다형성을 쉽게 설명할 수 있는 개념이다. 반면에, 객체의 다형성은 쉽지 않아 개념을 정리해보았다. 설명을 위한 예제 클래스는 아래와 같이 구현되어 있다. 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\] ..