책
-
4장. 변수책/모던 자바스크립트 딥다이브 2022. 4. 24. 11:34
4장: 변수 키워드 정리 변수 정의 메모리 실행 컨텍스트 변수 실행 시점 선언 할당 런타임 변수 호이스팅 GC 변수 네이밍 규칙 4-1. 변수란 무엇인가? 왜 필요한가? 변수는 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름 기억하고 싶은 값을 메모리에 저장, 저장된 값을 읽어 들여 재사용하기 위해 변수를 사용 컴퓨터는 CPU로 연산, 메모리로 기억한다. 메모리는 데이터를 저장할 수 있는 메모리 셀의 집합체이다. 메모리 셀 하나의 크기는 1byte(8bit) 이며 저장하거나 읽을때는 1byte 단위로 사용한다. 각 셀은 고유의 메모리 주소를 가진다. 고유의 메모리 주소를 변수처럼 사용할 수는 있지만 위험하며 JS 는 개발자의 직접적인 메모리 제어를 허용..
-
HTTP 완벽 가이드 책 샀다.책/misc 2022. 2. 10. 20:11
다람쥐를 입양했어요. 사실 제 아이는 아니구요... 밑바탕이 되는 애들은 책으로 보는 게 좋다고 해서 들였습니다.. 근데 생각보다 너무 방대하군요... 사실 모던자바스크립트도 다 안 봤어요. 뭔가를 만드는거 보다 책 읽는 게 더 어려운 거 같아요. 집중이 어려워... 내용에서 정리가 필요없는 내용도 있는데 뭐라도 적으려고 하는 게 좀 애매하네요.. 눈으로만 볼까... 라고 생각하고 했다간 나중에 후회하겠지... 22-04-24 입양 후 2개월이 지났는데 아직 1장도 안 읽었다는 사실... 이건 그냥 혼자 볼거라 주당 3장 씩 보고 싶은데 가능할진 모르겠습니다. 투비컨티뉴... 미래의 수빈이가 밑에 다시 적겠지... 22-07-10 4장 보다가 멈춤. 스터디 해서 어찌저찌 완독하고 싶었는데 일단 파티가 깨..
-
모던 자바스크립트 Deep Dive 책 샀다.책/모던 자바스크립트 딥다이브 2021. 12. 16. 05:36
도마뱀 장만했다. 도마뱀인진 모르겠음. 사실 내 돈 주고 산건 아니고 회사 소유이다. JS를 쓰는데 제대로 개념이 안 잡혀있으니까 삽질 시간이 더 길어지는 느낌이 들었다. 이번에 틀을 잡고 출발해야겠어. 전에 그냥 이것저것 하지 말고 두꺼운 책 하나를 볼 걸 그랬다,, 길을 돌아온 거 같군.. 960p... 너무 두껍군... 라면 받침대가 없는데 다 보고 라면 받침대로 써도 아주 좋을 것 같다. 근데 전체적으로 무지한 상태라거나 난이도가 있는건 아니라서 전에 EJ처럼 어렵진 않겠다. 2월까진 다 보고 싶다. 다른 일들이 있어서 이것만 볼 수 없어 틈 날때 조금씩 봐야겠다. 22-04-24 위의 일정은 어림 없었고 대략 20장 전쯤까지 보다가 멈췄었는데 4월 중순에 스터디를 구해서 다시 처음부터 본다. 주..
-
이펙티브자바 스터디 후기책/이펙티브자바 2021. 10. 15. 20:46
21.07.31 ~ 21.10.09 11주 동안 했다. 스터디 시작 전부터 책을 구매해서 보고 있었는데 시간이 조금 지나니 흐지부지 되고 진도가 너무 느렸다. 일단 내 수준에서 조금 어려웠다. okky 라는 커뮤니티 사이트에서 스터디 모집글이 올라오는 것을 알고 있었는데 그날 마침 이펙티브 자바 스터디를 구한다길래 바로 지원했다. 한 명이 아이템 2개씩 4명이서 일주일에 총 8개의 아이템을 해서 발표하는 식으로 했다. 4명 중 2명 직장인, 1명 취준생, 1명 대학생이었다. 직장인 두 분이 이미 서로 아는 사이여서 그런지 말도 잘하고 재밌게 스터디를 이끌어줬다. 발표하는 걸 들어보면 고수같았는데 나중에 알고보니 유명한 대기업이었다. 회사를 들으니 내가 발표하는걸 듣는 게 시간 아깝지 않을까? 라는 생각이..
-
아이템 62. 다른 타입이 적절하다면 문자열 사용을 피하라책/이펙티브자바 2021. 9. 17. 17:36
자바의 String은 텍스트를 표현하고자 설계했고 아주 잘 작동한다. 근데 너무 잘 지원해주다보니 의도하지 않은 용도로 쓰이는 경향이 있다. 문자열은 입력받을 데이터가 "진짜 문자열" 일 때만 사용하는게 좋다. 문자열을 쓰지말아야 할 사례에 대하여 알아보자. 수치형이라면 int, float, BigInteger 등 적당한 수치타입으로 변환해야 한다. 예/아니오 의 답이라면 적절한 열거 타입이나 boolean 으로 변환해야 한다. 일반화 하자면, 적절한 값 타입이 있다면 그것을 사용하고, 없다면 새로 만들어서 사용하라. 문자열은 열거 타입을 대신하기에 적합하지 않다. 앞에서 다뤘듯 (Item34) 상수를 열거할 때는 문자열보다는 열거타입을 사용하자. 문자열은 혼합 타입을 대신하기에 적합하지 않다. 여러 요..
-
아이템 61. 박싱된 기본 타입보다는 기본 타입을 사용하라책/이펙티브자바 2021. 9. 17. 17:35
자바의 데이터 타입은 기본형, 참조형이 있다. 그리고 각각의 기본형에 대응하는 참조타입이 이쓴데 이를 박싱된 기본 타입이라고 한다. 예를 들어 Int, double, boolean 이 기본타입이라면 Integer, Double, Boolean 을 박싱된 기본타입이라고 한다. 오토박싱과 오토언박싱 덕분에 크게 구분하지 않고 사용할 수는 있지만 둘의 차이점은 분명히 알고 사용하여야 한다. 기본 타입과 박싱된 기본 타입의 차이 기본 타입은 값만 가지고, 박싱된 기본 타입은 값에 더해 식별성 (identity)라는 속성을 가진다. 즉, 박싱된 기본 타입의 두 인스턴스는 값이 같아도 서로 다르다고 식별될 수 있다는 뜻이다. 기본 타입의 값은 언제나 유효하나, 박싱된 기본타입의 경우 null 을 가질 수 있다. 기..
-
아이템 54. null이 아닌, 빈 컬렉션이나 배열을 반환하라책/이펙티브자바 2021. 9. 17. 17:34
Collection // BAD - 컬렉션이 비었을때 null 을 리턴한다. private final List cheesesInStock = ...; public List getCheeses() { return cheesesInStock.isEmpty() ? null : new ArrayList(cheesesInStock); } 위 코드는 치즈 재고를 List 로 반환하는 메소드인데 재고가 없으면 null 을 리턴한다. 근데 사실 재고가 없다고 해서 특별히 취급할 이유는 없다. 근데도 이렇게 null 을 반환한다면, 클라이언트는 이 null 을 처리하는 코드를 추가로 작성해야 한다. List cheeses = shop.getCheeses(); if (cheeses != null && cheeses.con..
-
아이템 53. 가변인수는 신중히 사용하라책/이펙티브자바 2021. 9. 17. 17:33
가변인수 (varargs) 메서드는 명시한 타입의 인수를 0개 이상 받을 수 있다. 가변인수 메서드 호출 시 인수의 개수와 길이가 같은 배열을 만들고 인수들을 이 배열에 저장하여 가변인수 메서드에 건네준다. // 가변인수 사용법 static int sum(int... args) { int sum = 0; for (int arg : args) { sum += args; } return sum; } 예를 들어 최솟값을 구하는 메서드를 작성한다면 인수가 1개 이상이어야 하는데 0개도 받을 수 있게 설계하면 에러가 날 수 있다. // BAD - 인수가 1개 이상이어야 할 때 가변인수 사용법 static int min(int... args) { if (args.length == 0) throw new Illega..