개발

    [Java] 인터페이스가 가진 객체지향의 특징

    인터페이스는 객체지향의 특징 중 추상화, 다형성, 상속성의 특징을 가지고 있다. 1. 추상화 인터페이스는 미리 기능들을 정의하여 다른 객체에서 구현을 통해 정의된 기능들을 가져다 쓴다. 사람과 원숭이가 가지는 공통적인 숨쉬기, 걷기 등과 같은 공통적인 기능들을 인터페이스에 미리 정의하여 쓸 수 있기때문에 추상화의 특징을 가진다. 2. 다형성 하나의 인터페이스로 여러 자식들을 가질 수 있다는 점에서 다형성의 특징도 가지고 있다. 3. 상속성 객체지향의 특징 중 상속성같은 경우에는 속성과 기능을 부모로부터 물려받을 수 있다. 인터페이스를 구현한 구현체도 인터페이스가 가진 속성과 기능을 사용하기 때문에 결국엔 인터페이스를 물려받는것이라고 할 수 있다. 그래서 상속성까지 가지고 있는 것이다. 4. 캡슐화 인터페..

    [정리] 객체지향의 4가지 특징

    객체지향에는 4가지 특징이 있다. 1. 캡슐화 캡슐화는 캡슐처럼 감싼다고 해서 캡슐화이다. 우리가 먹는 알약을 떠올리면 알약안에 있는 성분은 모르지만 그 효과는 알고 있다. 이처럼 안의 내용을 숨기면서 동작하는 것이 캡슐화이다. public class Main { public static void main(String[] args) { Capsule capsule = new Capsule(); String randomString = capsule.getRandomString(); } } 나는 getRandomString이라는 메소드 이름을 보고 랜덤으로 문자열을 주는구나 생각하고 메소드를 실행시켰다. 여기서 나는 어떻게 랜덤으로 값을 뽑아주는지 모르고 결과값만을 받게 된다. 설령 아래와 같이 임의로 값을..

    [정리] 라이선스(저작권)

    먼저 한글로 라이센스라고 알고 있었지만 라이선스라고 한다. 개발자들에겐 라이선스란 굉장히 중요한 부분이다. 오픈소스를 가져다 기능을 구현했지만 어느날 그 오픈소스의 라이선스때문에 코드를 강제적으로 오픈해야 될수도 있다. 또한 상업적사용을 제한할 수도 있기 때문에 사용하기전 해당 소스의 라이선스를 한번 확인하는것이 중요하다. 현재 소프트웨어 라이선스 분류는 아래와 같다. 이 중 흔히 볼수 있는 라이선스는 MIT, Apache2.0, GPL 등이 있다. 1. MIT MIT 라이선스는 MIT공대에서 자기 학교의 개발자들을 위해 개발한 라이선스이다. MIT 라이선스를 따르는 소프트웨어를 개조한 제품을 반드시 오픈 소스로 배포해야 한다는 규정이 없으며 다른 엄격한 라이선스를 피하려는 사용자들에게 인기가 있다. 배..

    [정리] 변수란 무엇일까?

    지금까지 코딩을 해오며 아무 생각 없이 변수를 사용했다. 그러다 변수란 무엇일까라는 질문을 들었을때 매일 사용했던거였지만 바로 대답이 나오지 않았다. 변수란 무엇일까? 처음 질문을 듣고 메모리 주소를 가리키는 이름?? 이라고 생각했지만 확신은 없었다. 그렇다면 왜 다른이름도 많은데 하필 변수라는 이름이 탄생했을까라는 추가적인 생각이 들게 했다. 질문을 던진 분은 그릇을 빗대어 그릇안에 담는 물건은 바뀔수 있다를 비유하며 설명해주셨고 평소에 값을 변수에 담는다라는 표현을 하곤 했는데 이말을 들으니 이해가 됐다. 나무위키에 따르면 변수란 특정 값을 저장하는 메모리 공간이라고한다. 해당 메모리 공간에는 허용되는 범위 내에 어떤값이든 저장할수 있으므로 변수라고 한다고 한다. 위 고민을 거치니 '허용되는 범위 내..

    [Java] List<T> list = new ArrayList<>();

    자바에서 변수를 선언할때 보통 아래와 같이 선언한다. Type 변수 = new Type(); 하지만 ArrayList의 경우에는 보통 List 타입으로 선언한다. List arrayList = new ArrayList(); 그 이유가 궁금해서 찾아보기 전 나는 List 클래스의 method가 ArrayList보다 더 많이 제공하고 편한가? 라는 생각을 했다. 1. List 먼저 List는 클래스가 아닌 인터페이스였다. List 인터페이스를 들어가보면 아래와 같이 인터페이스로 구현되어 있다. public interface List extends ~ 추가로 공식문서에서도 인터페이스라는 것을 확인할 수 있다. 인터페이스란 메소드를 선언만 해놓고 다른 클래스에서 인터페이스를 implement 하여 인터페이스에 ..

    [정리] ubuntu java 개발자 세팅 (그래픽카드 드라이버 설치, vscode, ibus, LibreOffice, virtualBox, openJDK)

    1. 한글 세팅 (ibus) (1) ibus-hangul 설치 sudo apt install ibus-hangul (2) ibus-setup에서 한글 추가 ibus-setup Hangul 검색후 Add 오른쪽 상단 Settings 접속 위와 같이 설정 오른쪽 위에서 한글모드 설정 2. vscode 설치 https://code.visualstudio.com/ 홈페이지 접속후 deb 파일 다운로드 터미널 켜기 (ctrl + alt + t) 경로 이동후 dpkg cd ~/Downloads/ sudo dpkg -i 다운받은deb파일.deb + java 세팅을 위한 extension 설치 spring boot 를 위한 extension 설치 + 깃 설치 sudo apt install -y git 3. java 설..