분류 전체보기
-
Java: Comparable(compareTo())와 Comparator(compare())의 차이점Java 2022. 5. 17. 14:32
Java: Comparable(compareTo())와 Comparator(compare())의 차이점 오버라이딩과 오버로딩을 헷갈려하던 시절처럼 나란 녀석은 Comparable과 Comparator / compareTo()와 compare()를 계속 헷갈려하는 것이다... 더이상의 뇌절 방지를 위해서 한번 정리해보았다. 이제 그만 헷갈려줘 제발... Comparable과 Comparator는 인터페이스다. 각각 compareTo(T o), compare(T o1, T o2) 메서드를 갖고 있다. compareTo와 compare는 둘 다 비교한다. 그 중 먼저 compareTo()는 자신과 비교값을 비교한다 cls1.compareTo(cls2); 이런식으로 말이다. 객체를 단순히 등호연산자로 비교할 수..
-
Java: 컬렉션 프레임워크(Collection Framework) 개요각종 학습 요약/Java 2022. 5. 17. 13:41
Java: 컬렉션 프레임워크(Collection Framework) 컬렉션 프레임워크란? 데이터를 저장하기 위한 유용한 자료구조들을 구현해놓은 자바 클래스와 인터페이스의 집합. 주요 인터페이스(List, Map, Set)의 특징 List: 순서를 유지하는 선형적 구조. 마치 배열과도 비슷하다. Set: 순서 없이 값만 들어있는 구조. 대개 순서를 보장하지 않고, 중복 개념이 없다(덮어씌워짐). Map: 순서 없이 키와 값이 들어있는 구조. 대개 순서를 보장하지 않고, 중복 개념이 없다(덮어씌워짐). List와 Set List 주요 메서드 Object set(int index, Object o), addAll(int index, Collection c): 지정된 index에 삽입한다 Object get(i..
-
Java: 제네릭 Generic각종 학습 요약/Java 2022. 5. 17. 10:48
Java: 제네릭 Generic 제네릭이란? 객체 내부에서 사용할 데이터 타입을 파라미터 형태(타입 매개변수)로 지정해서, 일반화한 타입으로 사용하도록 하는 기술. 객체 입장에서 보면, 어떤 타입을 받을 건지 명확히 하지 않고 "'어떤 데이터 타입'이란게 넘어온다"라고 가정한 뒤 내부 속성과 동작을 정의하는 것이다. 객체를 사용하는 입장에서 보면, 객체를 생성할 때에 어떤 타입을 사용할 건지 명시하고, 객체를 활용할 때 해당 데이터 타입의 값만 사용하는 것이다. 말로 하면 헷갈리지만 기본 개념 자체가 엄청 복잡하진 않다. 제네릭의 장점 코드 작성 시 타입체크를 신경쓰지 않아도 된다(어긴 부분에서 컴파일 에러 발생). 제네릭을 사용하는 객체 안에서 타입 안정성이 보장된다. 타입 매개변수 제네..
-
Java: String[] split(regex, limit) 사용 예시Java 2022. 5. 17. 08:58
모각코 스터디를 하다가 한 분이 'split() 메서드의 두번째 인자에 -1을 넣어주는 경우에는 무엇이 달라지는 거냐' 하고 질문을 주셨는데 나도 잘 몰라서 알아보았다. 알아본 내용은 정리해야 제맛! String[] String.split(String regex, int limit) 첫번째 인자는 문자열을 구분할 문자열(또는 정규식 표현)입니다. 두번째 인자는 구분된 문자열의 개수를 말합니다. Optional. 사용예시) 원 문자열의 정의가 다음과 같은 경우 String str = "강아지:고양이:멧돼지:공룡"; ":"를 구분자로 사용하면 다음과 같습니다. String[] sArr = str.split(":"); // sArr => {"강아지", "고양이", "멧돼지", "공룡"} 3을 l..
-
TIL: 백엔드 부트캠프 15일차 with 코드스테이츠Today I Learned & WIL, MIL 2022. 5. 16. 22:29
220516_TIL & 학습 평가 1. TIL 지금까지 배운 내용 총 복습 여러가지 프로그램으로 구현하며 실습 위주로 복습해보았다. 모각코 코테 스터디 1주차 리뷰 시간. 주어진 3문제는 다 풀어서 준비했다. 2. 학습 평가 오늘은 평가를 스킵한다. 모각코 1주차 리뷰날인데... 프로젝트 clone만 하면 인텔리제이를 재설치해줘야 하는 문제가 있다.. 이것 때문인지도 모르고 지난주 내내 계속 IDE 때문에 피곤했는데... 문제는 이유가 뭔지 알 수 없다는 것이다. 그 말인 즉슨 고칠 수도 없다는 것이다. 어떻게 해야하지..ㅜㅠ -> 결국 1주차는 PR 걸렀다...
-
코드스테이츠 백엔드 부트캠프 2주차 & 3주차 회고 1부회고 2022. 5. 15. 20:02
코드스테이츠 백엔드 부트캠프 2주차 & 3주차 회고 1부(!) 회고를 주말에 작성하는데, 2주차 주말에 어버이날 챙기느라 컴퓨터 앞에 앉아있을 시간이 없었다. 그래서 3주차 회고를 작성하는 김에 2주차 내용도 끼워넣어본다. 열심히 노력한 시간인데, 건너뛰면 아쉬우니까! 1부에서는 지난 1주차 회고 내용을 바탕으로 되짚어보고, 2부는 자유형식으로 회고를 남겨보려고 한다. 잘하고 있는 것들 매일 블로그 포스팅 : 하나 이상 포스팅을 꾸준히 하고 있다. 딱히 의무감으로 하는 건 아닌데, 아주 작은 내용이라도 공유하려는 자세?를 갖게 되는 것 같다. 뭔가 하다 막히거나, 새로운걸 알게 되거나, 깊이 생각해본 내용들에 대해서 '동기들한테도 알려줘야지!' 혹은 '다른 사람과도 생각을 나눠봐야겠..
-
IntelliJ: "JDK is missing" 오류IntelliJ IDEA 2022. 5. 14. 10:37
새로 임포트한 프로젝트 하나가 뭐가 문제인지, 계속해서 인텔리제이 오류를 발생시키고 있다. 오늘은 JDK를 찾지 못하는 오류가 생겨서 해결해보았다. 증상: "JDK (jdk버전명) is missing"라는 메시지가 상단에 뜨면서 Java.lang 기본 클래스들을 찾지 못함. 대응: File탭 > invalidate Caches... 선택 후 IDE restart 해결: 프로젝트를 여니 Indexing을 한 번 하고, 아무 일 없었던 것처럼 잘 된다.
-
TIL: 백엔드 부트캠프 14일차 with 코드스테이츠Today I Learned & WIL, MIL 2022. 5. 13. 18:09
220513_TIL & 학습 평가 1. TIL 어제 풀었던 PS 리팩토링 작성한 코드 리팩토링 주하님의 아이디어에 입각한 리팩토링 (선형 -> 상수시간) 정리해서 포스팅 객체지향 프로그래밍 심화 다형성 추상화 Sorting: selection sort 2. 학습 평가 학습 난이도: RPE 5 학습 집중도: RPE 5 습득 수준: RPE 4 👇참고: 수준을 정하는 주관적 척도 * 긍정적인 경우는 어려움이 아니라 반대로 생각했다. * 0: 휴식 / 1: 아주 아주 쉬움 / 2: 쉬움 * 3: 보통 / 4: 어떤 부분은 조금 어려웠음 * 5: 어려움 / 6: 노력해도 모르겠는 부분이 많다 / 7: 너무 어려움 * 8: 못 따라가겠어... 노력해도 모르겠고, 뭘 봐야할지도 모르겠어.. 흰건 종이고, 검은건 글자..