레벨1 4주차

@VERO
Created Date · 2023년 02월 28일 02:02
Last Updated Date · 2023년 03월 05일 07:03

2/28

문자열

  • 자바는 문자열을 위한 클래스를 제공한다.

String 생성 방법

String a = "a";
String b = new String("a");
String c = new String("a").intern();
  • intern()을 사용하면

JVM의 최적화

String a = "a";
String b = "b";
String c = "c";

System.out.println(a+b+c);

StringConcatFactory.makeConcatWithconstants 로 연결해준다.

  • StringBuilder와 StringBuffer는 생성자로 별도 설정해주지 않으면 초기 capacity가 16 characters로 세팅된다. 작은 용량이기 때문에 재할당으로 인한 추가 비용이 발생하기 쉽다. 또한 loop와 같은 상황에서 StringBuilder 객체가 계속해서 생성되는 일이 발생하게 된다.
  • 최적화하는 방법을 알아야 하는 이유는 다른 JVM으로 내 코드가 실행될 수도 있기 때문이다. 원리를 알아야 그 때 다르게 동작할 때 이유를 알아낼 수 있다.
  • String의 + 연산은 JDK 8버전과 11버전에서 각각 다르게 처리한다.

3/2

글쓰기

  • 개발: 코드를 작성하는 일. 설계하고, 구현하고, 리팩터링하는 등의 과정. 내가 작성한 코드를 다른 사람이 봤을 때 쉽게 이해할 수 있을까?
  • 글: 나의 생각을 표현하는 일. 생각하고, 작성하고, 고치는 등의 과정. 내가 쓴 글을 다른 사람이 봤을 때 쉽게 읽을 수 있을까?

-> 글과 개발은 비슷하다.

글쓰기가 중요한 이유

  • 자신의 생각과 감정을 자신의 손을 통해 "문자로" 정리하고 표현하는 방법
  • 글로 표현하지 않은 생각과 감정은 결국 사라진다.
  • 나는 글을 쓰는 것이 두렵지 않다. 내가 잘 쓸 수 있다고 생각하기 때문이다! 글은 많이 써봐야 더 잘 쓰게 된다. 지금까지 많이 써 왔고, 지금이 완벽하게 잘 쓴다고 생각하지는 않지만 그래도 내 마음에 들게 글을 쓸 수는 있다 👍
  • 공부의 결과로 글쓰기가 나오는 것은 아니다. 공부하며 글쓰기를 해야 한다.
  • 나는 오히려 내 글에 관심 가져줬으면 좋겠다 ㅋㅋㅋ 그래서 잘 쓰려고 노력한다.
  • 습관의 힘을 활용한다. 일정 시간에, 일정한 장소에서 글을 써보려고 노력하자. 나도 TIL을 쓰는 습관을 들이려고 노력하는 중이다.
  • 생각해보니 내가 글을 쓰는 것이 자신 없었던 적이 없네...? 관심받기 좋아하는 사람이었어서 그런가 ㅋㅋㅋ

글쓰기의 시작

  • 글쓰기 시작이 반이다. 한 줄이라도 써보자.

진행 방식

  • 각 레벨 별 동일한 주제로 1개의 글을 쓴다.
  • 진행 방식은 온라인 코드 리뷰 방식과 동일하다.
  • Markdown 방식으로 글을 쓴 후, PR을 보낸다.
  • PR 짝은 6-7명으로, 자신의 글을 제외한 나머지 글을 읽고 피드백한다.
  • 코드 리뷰와 동일하게 계속해서 피드백을 남긴다.
  • 최종 피드백을 남길 시, 200자 내외로 정리하여 작성한다.
  • 최종 피드백이 완료되면 글 작성자는 리뷰 요청을 보낸다. 최종 merge된 글에 대해서 각 조에서 1개의 우승작을 선발한다.
  • 각 조 별 우승작 중 최종 우승작을 다 함께 선발한다.

레벨 1 글쓰기 일정

  • 주제: 우아한테크코스 한 달 생활기
  • 진행 기간: 3/2 ~ 3/27. 3/2~3/20 1차 제출 기간. 3/21 ~ 3/26 크루간 글쓰기 리뷰, 퇴고 작업. 본인의 글을 리뷰할 크루들에게 글쓰기 리뷰 채널에서 멘션으로 리뷰 요청
  • 3/27: 크루 리뷰 반영 후 최종 제출 (LMS 리뷰 요청까지 할 것)

레벨 1 글쓰기 규칙

  • A4 1페이지 이상의 분량으로 작성한다. 워드 1페이지 이상, 2페이지 이하. 글자 크기 10pt, 자간 1.0 기준
  • '나', '저'로 시작하는 문장은 되도록 쓰지 않는다. 지루하게 시작하는 문장을 줄이자.
  • 한 문장의 글자 수가 30자가 넘어가지 않도록 한다.
  • 한 문장에는 하나의 정보만 담도록 한다.
  • 능동형 문장을 쓰도록 한다.

한 문장 쓰기

  • 나는 과거의 나를 부수기 위해 도전한다.

3/3

제네릭

  • 다양한 종류의 데이터를 관리하는 경우 데이터의 타입을 특정 타입으로 고정할 수 있다.
  • 장점: 특정 타입으로 제한하여 타입 안정성을 제공한다. 타입 체크와 형변환을 생략할 수 있으므로 코드가 간결해진다.
  • 제네릭을 사용하지 않을 경우, 다양한 종류의 객체 타입을 추가할 수 있다. 추가한 객체 타입을 사용하려면 다시 형변환을 해야 한다.
  • 제네릭을 사용하면 해당 타입만 추가할 수 있다. 다른 타입을 저장하면 컴파일 에러가 발생한다. 특별하게 예외상황이 아니면 Generic을 사용한다.