[정리] 객체지향의 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<>();
·
개발/JAVA
자바에서 변수를 선언할때 보통 아래와 같이 선언한다. 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 설..
[Spring Boot] mysql 연결 삽질기
·
개발/Spring Boot
spring boot, gradle로 프로젝트 세팅을 하고 mysql을 연동하려고 했다. 그런데 mysql 과 연결하는 의존성을 추가하는 과정에서 계속 실패했다. runtimeOnly 'mysql:mysql-connector-java' 나는 위와 같이 의존성을 추가했고 구글링을 해봐도 다들 위와 같이 한다. 그러다가 jdbc의 버전을 명시해줬더니 정상적으로 연결됐다.. runtimeOnly 'mysql:mysql-connector-java:8.0.32' 근데 다른 사람들은 버전을 명시 안해줘도 잘 되는게 이상했다. 그래서 버전을 명시 안해줘도 되는 걸 찾아보다가 아래와 같은걸 발견했다. runtimeOnly 'com.mysql:mysql-connector-j' 결국 마지막 코드로 의존성을 해결했다..