TIL173 ArraysList.asList() vs List.of() (22.09.11 TIL) 강의 영상중에 List.of() 를 사용하는 구간이 있었는데 처음보는 메서드라서 정리할 겸 글을 쓴다. List 는 배열의 한계 때문에 만들어진 자료형으로서 컬렉션 프레임워크의 주요 인터페이스 중 하나이다. 배열을 사용하기 위해서는 먼저 크기를 정해야 한다. 그런데 크기를 처음부터 알 수 없다면 어떨까? List 는 크기 지정 없이 객체를 생성할 수 있으며, 메모리가 허용하는 한 계속해서 추가할 수 있도록 만들어져 있다. List 를 만들 때 우리는 보통 ArrayList 로 객체를 생성한다. 하지만 이 방법 말고도 Arrays.asList() 나 List.of() 메서드로도 생성할 수 있다. 일단 각 메서드가 속한 클래스는 아래와 같다. List.of() 는 Java 9 부터 도입된 메서드이다. imp.. 2022. 9. 11. 약간의 뽀모도로를 곁들인 (22.09.10 TIL) 매 주말마다 올라오는 강의영상을 보는 중인데, 처음에는 집중이 잘 되다가 영상이 길어지면 길어질수록 집중력이 떨어졌다. 평소 뽀모도로를 돌리며 공부시간과 쉬는시간을 나눠서 작업을 해도, 중간에 공부시간이 쉬는시간 알람에 방해를 받으면 정신이 확 산만해져서 뽀모를 거의 지키지 않고 공부를 하다 쉬고 싶을 때 쉬는 편이였다. 그런데 조금 더 높은 수준의 강의를 듣고있다보니 중간 중간 계속 집중력이 흩트러지고 정신이 산만해져서 45분 알람을 켜놓고 공부를 해보았다. 그 쉬는 시간 15분의 알람소리가 마치 천국이 종소리처럼..ㅋㅋㅋ들리는 순간이 있다. 강의를 3번을 봐도 도저히 이해가 되지를 않아서 일단 끝까지 완주는 한 뒤 산책을 나갔다. 마침 딱 구름도 너무 예쁘고 (하늘을 찍지는 않았지만) 날씨도 너무 좋.. 2022. 9. 10. 추상화 레벨이란? (22.09.09 TIL) 먼저 추상화란 실세계의 복잡한 상황을 간결하고 명확하게 핵심 위주로 단순화시키는 작업이다. 불필요하고 너무 구체적인 세부사항이나 흔한 공통사항 등을 제거한다. 단순화, 간추리기, 일반화, 개념화 등으로 대체해볼 수 있다. 좋은 추상화는 복잡성을 줄이고 개발자가 더 쉽고 적은 버그로 코드를 변경할 수 있도록 해준다. 예를 들어, '다른 사람에게 인사하기' 라는 메서드가 있다고 하면, 이 추상화를 구현하는 방법은 여러 가지가 있을 수 있다. 문자로 '안녕하세요' 라고 보낸다거나, '좋은 아침입니다' 라고 전화를 한다거나, 손편지를 쓰는 등의 방식이다. 내부 방식이 어떻든 이 방식들의 핵심만 뽑아본다면 '다른 사람에게 인사하기' 인 것이다. 세부적인 내용들이 나열되어 있는 코드를 일일이 한 줄 한 줄씩 다 읽.. 2022. 9. 9. JUnit5 살펴보기 (22.09.08 TIL) 1. JUnit5 란 무엇인가? 자바 8 부터 사용 가능한 테스팅 기반 프레임워크이다. 테스트와 관련된 여러 메서드와 어노테이션을 지원한다. JUnit Platform: 테스팅 프레임워크를 실행해주는 런처와 테스트 엔진을 위한 API를 제공한다. Jupiter: JUnit5 을 위한 테스트 API 와 실행 엔진을 제공한다. Vintage: JUnit3, JUnit4 로 작성된 테스트를 JUnit5 에서 실행하기 위한 모듈을 제공한다. JUnit5 에서 제공하는 API 는 Jupiter 이다. build.gradle 파일을 열어보면 dependencies 안에 Jupiter 를 로드해 놓은 것을 볼 수 있다. dependencies { testImplementation 'org.junit.jupiter:j.. 2022. 9. 8. Gradle 이란? (22.09.07 TIL) 요즘 Gradle 과 JUnit5 를 사용한 TDD 를 배우고 있어서 간단하게 Gradle 에 관해 정리를 하고자 글을 쓴다. JUnit 은 이어지는 글에 정리하는 것으로..! Gradle 은 그루비(Groovy)를 이용한 빌드 자동화 시스템이다. 그루비는 무엇이고 빌드는 무엇인가? 아래의 정의는 위키백과를 참고한 정의이다. 그루비는 자바와 문법이 아주 비슷한 JVM 위에서 동작하는 프로그래밍 언어이다. 자바 라이브러리를 사용하며, 자바의 클래스 파일을 그대로 그루비 클래스로 사용할 수 있다. 스크립트도 잘 동작하지만 스크립트 언어는 아니다. 자바 바이트 코드로 컴파일 되어 자바 애플리케이션에 통합될 수 있다. 빌드(build)란 소스코드 파일을 컴퓨터나 휴대폰에서 실행할 수 있는 독립 소프트웨어 가공물.. 2022. 9. 7. replace() 와 replaceAll() 의 차이 (22.09.06 TIL) 오늘 프로그래머스 문제를 풀다가 문자열을 치환해주는 메서드를 검색해봤는데 replace() 라는 메서드를 발견해서 그걸로 답을 풀어낸 후 제출을 했다. 다른 사람의 풀이를 보니 replaceAll() 이라는 메서드를 사용한 것도 있어서 '이름은 같은데,,아예 다른 기능을 하는 메서드인가?' 라는 궁금증이 생겨 한 번 찾아보았다. 일단 문제는 문자로 입력된 영문 숫자명을 모두 숫자로 바꾸어 출력해주는 함수를 만드는 것이고, 그에 대한 풀이이다. class Solution { public static void main(String[] args) { //테스트 코드 Solution solution = new Solution(); System.out.println(solution.solution("one45si.. 2022. 9. 6. 이전 1 ··· 22 23 24 25 26 27 28 29 다음