1. 객체지향 프로그래밍 Java는 객체지향 언어 등장 배경 : 프로그램의 규모가 커지면서 필요성이 대두됨 프로그램의 동작을 쪼개서 객체들이 나눠서 수행함 2. 객체지향의 특성 캡슐화 기능을 수행하는 단위로 완전함을 갖는다. 정보의 은닉이 가능하다. 객체의 정보를 객체 외부에서 접근하지 못 하게 할 수 있다. 접근 지정자 private : 객체 내부에서만 접근 가능 protected : 상속한 객체에서도 접근 가능 (friendly) : 같은 패키지 내에서 접근 가능 (기본 지정자이다) public : 모두 다 접근 가능 상속 부모 객체 -> super [추상] 자식 객체 -> this [구체] 상속은 공통된 기능을 여러 객체에 전달하고 싶을 때 사용하는 것이 아니라, 추상과 구체로 분리하기 위해 사용한..
과제로 나오기 전에는 StringBuilder와 StringBuffer의 차이에 대해 어렴풋이만 알고 있었다. 동기화 기능이 있는지의 차이, 그리고 해당 기능의 존재로 인한 속도 저하.. 과제로 나오면서 다시 한 번 정확히 짚고 넘어가기로 했다. String 먼저, Java에서 String은 불변객체입니다. //Main.java public class Main { public static void main(String[] args) { String s = "a"; s = s + "b"; } } 불변객체이지만 위와 같이 변경이 되는 이유는 뭘까? String은 객체이기 때문에, s+"b"의 값이 담긴 객체를 생성하고 해당 주소를 s에 담아주기 때문에 위의 방식이 가능한 것이다. 즉, 기존의 s와 이후의 s..
개발환경 세팅 - Java (JDK 16) - Gradle (Gradle 7.1.1) java파일 빌드 : javac ~.java gradle init 명령어로 통해 프로젝트를 생성한다. Intellij에서 해당 프로젝트를 연다. gradle tasks 명령어로 태스크 목록을 확인한다. gradle build 명령어로 빌드한다. gradle run 명령어로 실행한다. gradle test 등의 명령어를 실행할 수 있다. build.gradle을 보면 task.named('test') 라고 gradle test 관련한 코드는 있지만 나머지 두 개 관련 코드는 없다. 공통적으로 쓰이는 태스크 셋들을 plugins를 통해 추가해놓았다.(plugins { id 'application' }) 초보 개발자가 알면 ..
프로그래머스와는 계속해서 접점이 생기는 것 같다. 백준에서 알고리즘 문제를 풀다가, 실전 문제를 풀고 싶어서 프로그래머스의 알고리즘 문제를 풀게 되었다. 그러다가 프로그래머스 써머 인턴을 지원했고, 여름 방학 기간동안 써머 인턴을 하고 있다. 써머 인턴을 하면서 좀 더 기초를 탄탄히 하고 싶었고, 프로그래머스의 K-Digital Training: 클라우드 기반 백엔드 엔지니어링 1기 모집 공고를 봤다. 다행히 최종 합격을 하였고, 1기 과정을 진행하게 되었다. https://programmers.co.kr/learn/courses/12177 K-Digital Training: 클라우드 기반 백엔드 엔지니어링 × [공지] 7/26(월) 오후 18시 최종 결과 합격/불합격 모두 메일이 발송될 예정입니다. 1..