전체 글
-
[우아한테크코스] 우테코에서 찾은 나만의 효과적인 공부법후기 2021. 9. 30. 10:50
"왜 이걸 사용하셨어요?" "왜 이걸 사용하셨어요?" 우아한테크코스 페어 미션 중에 받은 굉장히 단순하고 간단한 질문이었다. 그러나 부끄럽게도 나는 이 질문에 대해 자신 있게 대답을 하지 못했다. 이유는 간단하다. 여태까지 "왜?"라고 생각을 하며 공부했던 적이 없으니까. 정답이 없는 학문 고등학교 3년 내내 주입식 교육을 받아 가며 야간 자율학습을 진행했다. 대학교는 프로그래밍과 전혀 관련이 없는 식품공학으로 입학하였다. 학과 특성상 생물과 화학 관련 과목을 배우게 되는데 보통 이미 정의된 내용을 외우거나 공식에 맞춰 계산하는 공부를 했다. 물론 깊게 파고들려면 더 깊게 파고들 수도 있다. 하지만 나는 굉장히 수동적인 사람이라 교과서에 정의된 내용이라면 당연하게 받아들이고 넘어갔다. 그렇다 보니 여태 ..
-
[우아한테크코스] 한 달 생활기후기 2021. 4. 12. 23:23
우아한테크코스에서 '한 달 생활기' 라는 주제로 글을 써봤다. 이렇게 진지하게 글을 쓰고 남에게 리뷰를 받는 건 처음이라 어렵긴 했지만 재밌었다. 앞으로 3번? 4번? 정도의 글쓰기 미션이 더 남았는데 기대가 된다. + 포코가 10개월은 너무 길다고 다음에는 변해가는 과정을 꼭 작성해달라고 했다. 점점 변해가는 과정을 글쓰기로 담는 것도 재밌을 것 같다. 우아한테크코스 한 달 생활기 서술형 문제보다 단답형 문제를 좋아한다. 정답이 여러 개인 것보다 한 개인 것을 좋아한다. 주어진 환경에 순응한다. 불편함을 느끼더라도 굳이 나서지 않는다. 위 모든 사항은 나에게 해당된다. 어떤 생각이 드는가? 우아한테크코스와는 거리가 멀다고 생각되지 않는가? 포비는 크루들에게 반란군이 되라고 한다. 근데 애석하게도 난 반..
-
[JAVA] Java String의 split 메소드JAVA 2021. 3. 7. 22:04
우테코에서 미션을 진행하다 보면 구분자(ex ",")를 통해 입력값을 잘라야하는 경우가 발생한다. 이전에 split 메소드를 정확히 알지 못했을 때는 도메인에서 유효성 검증을 해도 입력값이 "a,b,c,,," 와 같이 끝자리에 콤마가 있을 때를 처리하지 못해 따로 유효성 검증 메소드를 만들어주었다. 그러다 저번 로또 미션 때 페어 덕분에 이 문제를 해결하는 방법을 알게되었고 이번 블랙잭에서도 동일한 방식으로 해결하였기에 split에 대해 제대로 알아보고자 블로그에 정리하게 되었다. 물론 말은 정리라고 해도 split의 limit에 초점만 두고 글은 길지 않으며 별거 없을 것이다. 자바 문자열의 split 메소드는 구분자를 기준으로 문자열을 자르고 싶을 때 사용한다. 예를 들어 "a,b,c"와 같은 문자열..
-
[모던자바인액션] chap 04 스트림 소개JAVA 2021. 2. 27. 22:48
스트림 소개 스트림이란 무엇인가? 스트림은 자바 8 API에 새로 추가된 기능. 선언형으로 코드를 구현할 수 있다. 즉, 루프와 if 조건문 등의 제어 블록을 사용해서 어떻게 동작을 구현할지 지정할 필요 없이 'A한 B만 선택하라' 같은 동작의 수행을 지정할 수 있음. public static List getLowCaloricDishesNamesInJava8(List dishes) { return dishes.stream() .filter(d -> d.getCalories() < 400) .sorted(comparing(Dish::getCalories)) .map(Dish::getName) .collect(toList()); } filter, sorted, map, collect 같은 여러..
-
[모던자바인액션] chap 03 람다 표현식JAVA 2021. 2. 27. 22:47
람다 표현식 람다 표현식은 메서드로 전달할 수 있는 익명 함수를 단순화한 것. 람다의 특징 익명 보통의 메서드와 달리 이름이 없으므로 익명이라 표현. 구현해야 할 코드에 대한 걱정거리가 줄어듬. 함수 람다는 메서드처럼 특정 클래스에 종속되지 않으므로 함수라고 부름. 하지만 메서드처럼 파라미터 리스트, 바디, 반환 형식, 가능한 예외 리스트를 포함. 전달 람다 표현식을 메서드 인수로 전달하거나 변수로 저장할 수 있음. 간결성 익명 클래스처럼 많은 자질구레한 코드를 구현할 필요가 없음. 람다 표현식의 형태 (Apple a1, Apple a2) -> a1.getWeight().compareTo(a2.getWeight()) 파라미터 리스트 Comparator의 compare 메서드 파라미터 (사과 두 개) 화살..
-
[모던자바인액션] chap 02 동작 파라미터화 코드 전달하기JAVA 2021. 2. 27. 22:46
동작 파라미터화 동작 파라미터화를 이용하면 자주 변하는 요구사항에 효과적으로 대응 가능. 동작 파라미터화란 아직은 어떻게 실행할 것인지 결정하지 않은 코드 블록을 의미한다. 이 코드 블록은 나중에 프로그램에서 호출한다. 동작 파라미터화로 다양한 기능을 수행할 수 있다. 변화하는 요구사항에 대응하기 기존의 농장 재고목록 애플리케이션에 리스트에서 녹색 사과만 필터링하는 기능을 추가한다고 가정하자. 첫 번째 시도: 녹색 사과 필터링 public static List filterGreenApples(List inventory) { List result = new ArrayList(); for (Apple apple : inventory) { if (GREEN.equals(apple.getColor()) { re..
-
[Study] 자바 9주차 과제JAVA 2021. 1. 27. 15:47
9주차 과제입니다. 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) try, catch, finally package exception; public class Ex_Exception { public static void main(String[] args) { try { System.out.println("A"); System.out.println(1 / 0); //예외 발생 System.out.println("B"); //예외 발생 후 바로 catch 문으로 가기 때문에 실행 안됨 }catch (ArithmeticException e) { System.out.println("C"); System.out.println(e.getMessage()); //해당 th..
-
[Study] 자바 8주차 과제JAVA 2021. 1. 24. 16:36
자바 8주차 과제입니다. 인터페이스 정의하는 방법 자식 클래스가 여러 부모 클래스를 상속받을 수 있다면, 다양한 동작을 수행할 수 있다는 장점을 가지게 될 것입니다. 하지만 클래스를 이용하여 다중 상속을 할 경우 메소드 출처의 모호성 등 여러 가지 문제가 발생할 수 있어 자바에서는 클래스를 통한 다중 상속은 지원하지 않습니다. 하지만 다중 상속의 이점을 버릴 수는 없기에 자바에서는 인터페이스라는 것을 통해 다중 상속을 지원하고 있습니다. 인터페이스(interface)란 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스를 의미합니다. 자바에서 추상 클래스는 추상 메소드뿐만 아니라 생성자, 필드, 일반 메소드도 포함할 수 있습니다. 하..