본문 바로가기

분류 전체보기150

[우아한유스방 4기] 1주차 - 후기 2023.02.14 - [개발 공부/etc] - [우아한유스방 4기] 0주차 - 후기 [우아한유스방 4기] 0주차 - 후기 스터디에 지원하다 이러저러한 이유로 이직 준비중에 있지만 혼자서 하기에 슬슬 벅차기 시작할 때쯤 유쾌한 스프링방 이라는 오픈 단톡방에서 우아한유스방 4기를 모집한다는 공고를 보게되 pro-dev.tistory.com 1주차 후기 지난 번 포스팅에 이어서 우아한유스방4기 1주차 후기다. 1주차의 과제는 다음 4가지 질문에 대해 적어보는 것이다. 1. 학습 과정과 현재 자신이 생각하는 역량은? (1000자 이내) 2. 선택한 직군이 되려는 이유는 무엇인가요? (1000자 이내) 3. 마음이 끌리는 무엇인가에 몰입해 일정 수준의 결과물을 만들어 낸 경험이 있나요? (1000자 이내) 4... 2023. 3. 7.
[우아한유스방 4기] 0주차 - 후기 스터디에 지원하다 이러저러한 이유로 이직 준비중에 있지만 혼자서 하기에 슬슬 벅차기 시작할 때쯤 유쾌한 스프링방 이라는 오픈 단톡방에서 우아한유스방 4기를 모집한다는 공고를 보게되었다. 이직 목적의 스터디인데 제이슨님께서 모집하시는 스터디였다. 주변에 아는 개발자도 적고 주로 혼자 개발하는 업무를 담당했다보니 현재 나는 어느정도인지, 다른 사람들은 얼마나 열심히 인지 또 이직에 대한 실마리를 잡을 수 있을까해서 지원하게 되었다. 4기 지원시에는 2가지 문항을 작성했는데 기억하기로는 1. 다른 사람에게 도움을 주었던 경험 (멘토링, 답변 등) 2. 우아한유스방을 통해 어떻게 선한 영향력을 실현시킬 수 있을지 위의 두 질문에 대한 작성이었다. 1번 같은 경우 머리를 쥐어짜내 겨우겨우 답변할 수 있었다. 결과.. 2023. 2. 14.
바야흐로 회고의 계절 - 2022년 회고 어느덧 2022년이 지났다. 늘 그렇듯 올바른 성장과 건강한 성장을 위해 2022년 한 해를 둘러보며 스스로에게 피드백을 주는 시간이 돌아왔다. 2022년은 다사다난 하지는 않았지만 많은 고민이 있었고, 그만큼 더 답답한 한해였던 것 같다. 1. 회사 현재 스타트업에 다니고있다. 그러나.. 코로나가 잠잠해지고 경제 침체기가 다가옴에 따라 회사 사정이 급격하게 기울어지고있다. 회사에서 제공하는 어플 특성상 코로나가 잠잠해지면 유입이 떨어지게 되어있는데 이로인해 매출이 많이 줄었다고 한다. 그에 따라 좀 더 유저들이 어플을 통해 더 좋은 경험을 얻을 수 있도록 다양한 기능을 개발할 수 있게되었지만 그것도 이제 끝물인 것 같다. 유저들이 줄어드는 것도 있지만 회사 내부적인 요인으로 더이상 서비스를 키우기엔 힘.. 2023. 1. 3.
[강의 후기] 백기선 님의 이펙티브 자바 완벽 공략 2부 https://www.inflearn.com/course/%EC%9D%B4%ED%8E%99%ED%8B%B0%EB%B8%8C-%EC%9E%90%EB%B0%94-2 이펙티브 자바 완벽 공략 2부 - 인프런 | 강의 자바 학습의 끝판왕 “이펙티브 자바”를 보다 쉽고 완벽하게 학습하세요. 이 강의를 수강하시면 여러분의 자바 프로그래밍 지식과 실력뿐 아니라 학습 능력 또한 향상시킬 수 있습니다., - 강 www.inflearn.com https://pro-dev.tistory.com/125 [강의 후기] 백기선 님의 이펙티브 자바 완벽 공략 1부 https://www.inflearn.com/course/%EC%9D%B4%ED%8E%99%ED%8B%B0%EB%B8%8C-%EC%9E%90%EB%B0%94-1 이펙티브.. 2022. 12. 22.
이펙티브 자바 아이템 33 - 타입 안전 이종 컨테이너를 고려하라 - 핵심 정리 / 완벽 공략 아이템 33 - 타입 안전 이종 컨테이너를 고려하라 - 핵심정리 / 완벽 공략 이 글은 백기선 님의 이펙티브 자바 강의와 이펙티브 자바 3 / E 편을 참고하여 작성하였습니다. 타입 토큰을 사용한 타입 안전 이종 컨테이너 컨테이너란 다른 어떤 오브젝트를 넣을 수 있는 Set, Map 을 의미한다. 우리가 여태 사용한 제네릭은 오직 한 가지 타입 만 넣을 수 있는 컨테이너를 만드는 것이었다. public class Favorites { List value; public static void main(String[] args) { Favorites names = new Favorites(); names.value.add("TEST"); } } 경우에 따라서는 이종(동족이 아닌, 서로 다른타입) 컨테이너 가 .. 2022. 12. 20.
이펙티브 자바 아이템 32 - 제네릭과 가변인수를 함께 쓸 때는 신중하라 - 완벽 공략 아이템 32 - 제네릭과 가변인수를 함께 쓸 때는 신중하라 - 완벽 공략 이 글은 백기선 님의 이펙티브 자바 강의와 이펙티브 자바 3 / E 편을 참고하여 작성하였습니다. ThreadLocal ThreadLocal 은 쓰레드 지역, 쓰레드 범위의 변수이다. ThreadLocal 의 개념없이 여러 쓰레드에서 어떤 객체가 가지고 있는 멤버 변수를 사용한다면 쓰레드 안전성을 신경써서 코딩을 해야한다. 그렇지 않으면 경합 또는 경쟁조건 (Race-Condition) , 교착상태 (deadlock) , Livelock 등이 발생할 수 있다. ThreadLocal 을 사용하면 쓰레드 전용 지역 변수 를 만들어 문제를 해결할 수 있다. import java.text.SimpleDateFormat; public cla.. 2022. 12. 20.
이펙티브 자바 아이템 32 - 제네릭과 가변인수를 함께 쓸 때는 신중하라 - 핵심 정리 아이템 32 - 제네릭과 가변인수를 함께 쓸 때는 신중하라 - 핵심 정리 이 글은 백기선 님의 이펙티브 자바 강의와 이펙티브 자바 3 / E 편을 참고하여 작성하였습니다. 가변인수 ... 는 매서드를 사용하는 클라이언트에서 파라미터를 몇개 보낼지 선택하는 것이다. // 제네릭 varargs 배열 매개변수에 값을 저장하는 것은 안전하지 않다. (191-192쪽) public class Dangerous { // 코드 32-1 제네릭과 varargs를 혼용하면 타입 안전성이 깨진다! (191-192쪽) static void dangerous(List... stringLists) { List intList = List.of(42); Object[] objects = stringLists; objects[0] .. 2022. 12. 19.
이펙티브 자바 아이템 31 - 한정적 와일드카드를 사용해 API 유연성을 높이라 - 완벽 공략 아이템 31 - 한정적 와일드카드를 사용해 API 유연성을 높이라 - 완벽 공략 이 글은 백기선 님의 이펙티브 자바 강의와 이펙티브 자바 3 / E 편을 참고하여 작성하였습니다. 타입 추론 타입 추론은 타입을 추론하는 컴파일러의 기능이다. 자바에서는 타입 추론을 여러가지 형태로 지원하고 버전이 올라가면서 지원하는 범위와 용도가 늘고 있다. public class BoxExample { private static void addBox(U u, List boxes) { Box box = new Box(); box.set(u); boxes.add(box); } private static void outputBoxes(List boxes) { int counter = 0; for (Box box: boxes) .. 2022. 12. 17.
이펙티브 자바 아이템 31 - 한정적 와일드카드를 사용해 API 유연성을 높이라 - 핵심 정리 아이템 31 - 한정적 와일드카드를 사용해 API 유연성을 높이라 - 핵심 정리 이 글은 백기선 님의 이펙티브 자바 강의와 이펙티브 자바 3 / E 편을 참고하여 작성하였습니다. Chooser 와 Union API 개선 // 와일드카드 타입을 이용해 대량 작업을 수행하는 메서드를 포함한 제네릭 스택 (181-183쪽) public class Stack { private E[] elements; private int size = 0; private static final int DEFAULT_INITIAL_CAPACITY = 16; // 코드 29-3 배열을 사용한 코드를 제네릭으로 만드는 방법 1 (172쪽) // 배열 elements는 push(E)로 넘어온 E 인스턴스만 담는다. // 따라서 타입 안.. 2022. 12. 17.
이펙티브 자바 아이템 30 - 이왕이면 제네릭 메서드로 만들라 - 핵심 정리 아이템 30 - 이왕이면 제네릭 메서드로 만들라 - 핵심 정리 이 글은 백기선 님의 이펙티브 자바 강의와 이펙티브 자바 3 / E 편을 참고하여 작성하였습니다. 매개변수화 타입을 배개변수로 받는 메서드 자바에서 지원하는 모든 컬렉션들을 사용하는 메서드들의 경우에는 제네릭한 유틸리티 메서드로 만드는 경우가 많다. 실제로 자바에서 제공하는 Collections 같은 클래스는 모든 유틸리티성 메서드가 전부 제네릭 메서드이다. 제네릭 메서드로 만들면 제네릭을 활용하는 장점과 일치한다. 컴파일 타임에 타입 안정성을 보장 할 수 있다. // 제네릭 union 메서드와 테스트 프로그램 (177쪽) public class Union { // 코드 30-2 제네릭 메서드 (177쪽) public static Set un.. 2022. 12. 15.
이펙티브 자바 아이템 29 - 이왕이면 제네릭 타입으로 만들라 - 완벽 공략 아이템 29 - 이왕이면 제네릭 타입으로 만들라 - 완벽 공략 이 글은 백기선 님의 이펙티브 자바 강의와 이펙티브 자바 3 / E 편을 참고하여 작성하였습니다. 한정적 타입 매개변수 한정적 타입 매개변수는 제네릭 타입을 특정 타입으로 한정지을 수 있는 기능이다. public class Stack { private E[] elements; private int size = 0; private static final int DEFAULT_INITIAL_CAPACITY = 16; // 코드 29-3 배열을 사용한 코드를 제네릭으로 만드는 방법 1 (172쪽) // 배열 elements는 push(E)로 넘어온 E 인스턴스만 담는다. // 따라서 타입 안전성을 보장하지만, // 이 배열의 런타임 타입은 E[]가.. 2022. 12. 14.
이펙티브 자바 아이템 29 - 이왕이면 제네릭 타입으로 만들라 - 핵심 정리 아이템 29 - 이왕이면 제네릭 타입으로 만들라 - 핵심 정리 이 글은 백기선 님의 이펙티브 자바 강의와 이펙티브 자바 3 / E 편을 참고하여 작성하였습니다. 어떤 클래스들을 만들다보면 그 클래스 안에 다른 객체들을 담는 역활을 하는 클래스를 만드는 경우가 많다. 대표적으로 Stack 같이 자료구조 안에 다른 객체들을 담는 역활을 하는 클래스를 작성하는 경우이다. 무언가 다른것들을 담는 역활을 하는 클래스들은 제네릭 타입 으로 만들면 유용하다. 특히 그 안에 Object 타입으로 무언가를 담고있다면 더더욱 명확하게 제네릭 타입 을 사용하도록 유도하면 런 타임 시에 ClassCastException 이 발생하는 것을 많이 줄일 수 있다. public class Stack { private Object[].. 2022. 12. 13.