[도서/자기계발] 당신은 일을 못하는 게 아니라 말을 못하는 겁니다 (w.이규희)
·
취미/독서기록
감상평 는 제목 그대로 일을 못해서가 아니라 말을 제대로 하지 못해서 손해 보는 순간들에 대해 이야기한다. 직장생활에서 상사에게 잘 보이고 싶다거나 어떻게 하면 ‘일 잘하는 사람’처럼 보일 수 있을지를 고민해본 적 있다면 공감하면서 읽기 좋다. 다만 내 기준에서는 전반적으로 너무 한국스럽다는 인상이 강하게 느껴졌다.. 열심히 살아야 하고 센스도 필요하고 눈치도 챙겨야 한다는 빡센 코리아. 그래서인지 종종 “이렇게까지 해야 하나?” 싶을 만큼 과하게 느껴지는 부분도 있었다. (저자도 이 부분에 대해서는 공감하고 있음... 그치만 현실적으로 도움이 된다면 시도해볼 만하다) 그럼에도 이 책이 말하고자 하는 핵심은 꽤 명확하다. 이제는 일을 잘하는 것만으로는 부족하고 그 일을 말로 잘 전달하고 어필할 줄도 ..
[도서/소설] 좀비즈 어웨이 (w.배예람)
·
취미/독서기록
줄거리좀비 아포칼립스를 배경으로 한 단편작품이 3개 등장한다.피구왕 재인피구 예선전 중이던 재인에게 피구공 대신 사람의 머리가 날아온다. 곧이어 감염자 발생을 알리는 방송이 울려 퍼지고 학교는 순식간에 아비규환이 된다. 대부분의 학생들이 밖으로 대피하는 가운데 재인은 교실에 남아 있을 친구 혜나를 구하기 위해 홀로 건물 안으로 향한다. 감염자들과 사방에 널린 시체들 사이를 헤쳐 나가며 재인이는 혜나에게 꼭 전하고 싶었던 말을 되새긴다.좀비즈 어웨이좀비 바이러스가 일상이 된 세계. 연정은 좀비 고기와 머리를 파는 정육점에서 알바를 한다. 좀비 고기가 면역력을 높인다는 소문이 퍼지자 사람들은 너도나도 이를 찾기 시작했다. 정부는 수요를 맞추기 위해 대입과 취업에 가산점을 주며 학생들을 통해 좀비고기를 찾게끔..
BP 말고 BF 찾기, 항해 하면서 사이드 플젝 하기(feat. 2팀)
·
개발/프로젝트
저장을 습관화 하자.. 1/3 정도 적은 글이 클릭 실수로 다 날라갔다..지금 7기 학습메이트를 진행하고 있어서 역할이 학습메이트로 디스코드가 캡쳐됐는데 당시에는 수강생이였습니다ㅎㅎ프로젝트의 시작항해 개강 첫날 아무것도 모른 채 헤매고 있을 때 우리 팀 학습메이트 채영님이 이런 제안을 해주셨다.“우리 팀 토요지식회 해보는 거 어때요? 개인적으로 해도 되고, 팀으로 발표해도 돼요.저번 기수에서는 사이드 프로젝트 발표한 팀이 베스트 팀으로 뽑히기도 했거든요.어떠세요? 나중에 자리 다 차기전에 먼저 자리 먹어요! 지원 해볼까요?” 현업 프론트엔드 개발자 5명이 모여서 팀 프로젝트를 할 기회 자체가 흔치 않을 것 같았고 왠지 재밌을 것 같다는 생각이 먼저 들었다.그렇게 첫날의 열정에 힘 입어 “해볼까요?”라는 ..
[우아한 타입 스크립트 with 리액트] 7장 비동기 호출-2
·
기술/TypeScript
우아한 타입스크립트에 나온 개념을 참고했습니다. 예시 코드 일부 수정왜 에러 처리를 해야 할까?API 호출이 실패했을 때 적절한 안내를 하지 않으면 사용자는 시스템에 문제가 생겼는지조차 알 수 없습니다.또한 개발자 입장에서도 디버깅하기 어렵습니다. 에러 상황을 명확하게 구분해야 유지보수도 훨씬 쉬워집니다.예를 들어인증이 만료되었을 땐 로그인 페이지로 이동네트워크가 끊기면 다시 시도하라는 안내서버가 에러 메시지를 주면 그대로 사용자에게 보여주기이런 처리들이 필요합니다. API 에러 처리 가이드프론트엔드 개발에서 API를 호출하다 보면 다양한 에러 상황을 마주하게 됩니다. 인증이 되지 않은 사용자(401), 존재하지 않는 리소스를 요청한 경우(404), 서버 내부 에러(500), 또는 CORS 정책 위반 등..
[우아한 타입 스크립트 with 리액트] 7장 비동기 호출-1
·
기술/TypeScript
✅ 비동기를 위해 필요한 정보현재 비동기 동작이 어떤 상태인가비동기 동작을 위해 필요한 정보가 무엇인가요청이 성공했다면 받아온 정보를 어떻게 저장하고 관리할 것인가요청이 실패했다면 실패에 대한 정보를 어떻게 예측할 것인가비동기 요청에 대한 코드를 쉽게 유지보수할 수 있도록 어떻게 구조화하고 관리할 것인가1. API 요청컴포넌트 안에서 API를 직접 호출import React, { useEffect, useState } from "react";const CartBadge: React.FC = () => { const [cartCount, setCartCount] = useState(0); useEffect(() => { fetch("https://api.baemin.com/cart") ...
[우아한 타입 스크립트 with 리액트] 타입스크립트 컴파일
·
기술/TypeScript
1. 런타임과 컴파일타임의 차이컴파일타임소스코드를 실행 가능한 프로그램으로 변환하는 과정입니다.보통 고급 언어 코드를 기계가 이해할 수 있는 형태로 바꾸는 것을 말합니다.런타임프로그램이 실행되는 시점을 의미합니다.즉, 사용자가 프로그램을 실행했을 때 일어나는 모든 과정이 런타임입니다. 2. 자바스크립트의 런타임자바스크립트가 실행되는 환경을 의미하며 대표적인 JS 런타임으로 인터넷 브라우저와, Node.js 등이 있다.주요 구성 요소자바스크립트 엔진(V8 등): 코드를 해석하고 실행합니다.웹 API: 브라우저에서 제공하는 타이머, DOM 등 기능입니다.콜백 큐 / 이벤트 루프 / 렌더 큐: 비동기 작업을 처리하는 구조입니다.ℹ️ 자바스크립트는 인터프리터 언어?전통적으로는 JS가 인터프리터 언어로 분류되었지..
프롤로그) 밑바닥부터 시작하는 웹 브라우저
·
정보
읽은 내용을 간략하게 재구성 했습니다. 책과 다르니 책도 꼭 읽어보세요.웹의 본질은 변하지 않았다웹 기술은 수십 년간 빠르게 발전했지만 처음부터 지금까지 핵심은 변하지 않았습니다.하이퍼링크로 연결된 정보 네트워크브라우저를 통한 탐색HTTP로 요청하고 HTML로 구조화URL로 식별되는 문서개방적이고 표준화된 구성요소이 원칙들은 어디서부터 시작된 걸까요? 웹의 역사자세히 다루기 보다는 주요 사건과 아이디어, 발명한 사람들의 목표와 동기를 살펴봅시다. 메멕스(1945): 정보 혁명의 시작웹의 역사는 1945년, 버니바 부시가 제안한 메멕스(Memex)라는 개념에서 시작됩니다.그가 해결하고자 한 문제는 명확했습니다."인간이 효율적으로 배우고 탐색할 수 있는 방법을 제공하자."메멕스의 핵심은 정보 조회와 기록 간..
[우아한 타입 스크립트 with 리액트] 타입 활용하기
·
기술/TypeScript
조건부 타입조건부 타입은 어떤 조건에 따라 타입을 다르게 지정하고 싶을 때 사용자바스크립트의 삼항 연산자와 비슷한 형태extends를 활용한 조건부 타입T extends U ? X : Y//T가 U 타입에 할당 가능하면 X 타입, 아니면 Y 타입 실무 예시 코드로 보자. API 응답 타입 요청한 경로에 따라 정확한 응답 타입을 자동으로 설정하는 코드다.// API 경로를 문자열 유니온으로 정의type Endpoint = "/users" | "/products" | "/orders";// 요청 경로에 따라 응답 타입 자동 선택type ApiResponse = T extends "/users" ? User[] : T extends "/products" ? Product[] : T extends "/o..
링크드 리스트(Linked List) 이해하기
·
개발/알고리즘(코딩테스트)
알고리즘 문제 풀다 만난 링크드 리스트들어보긴 했지.. 근데 이게 뭔데..대충 마인크래프트 카트 마냥 연결된 구조라는거까지 알고 있다.알고리즘 문제 풀이를 위해서라도 개념에 대해 알아보자링크드 리스트(Linked List)링크드 리스트(Linked List)는 데이터를 링크(link)로 이어 붙인 구조다.Node는 뭘까?노드(Node)는 링크드 리스트에서 사용되는 기본 단위. 각 노드는 하나의 데이터 덩어리로 내부에 두 가지 정보를 담고 있다.Head → [data | next] → [data | next] → nulldata: 노드가 가지고 있는 실제 데이터나 값next: 다음 노드를 가리키는 포인터 (링크 역할)노드 하나하나가 "내 값은 이거고, 다음 친구는 저기 있어" 라고 알려주는 셈이다.단방향은..
[우아한 타입 스크립트 with 리액트] 타입 좁히기와 타입 확장
·
기술/TypeScript
4장. 타입 확장하기와 좁히기타입 확장타입 확장은 기존 타입을 기반으로 새로운 타입을 정의하는 방법으로 코드 중복을 줄이고 명확한 타입 구조를 유지할 수 있다.// type 확장type User = { name: string };type Admin = User & { role: string };// interface 확장interface User { name: string;}interface Admin extends User { role: string;}const admin :Admin = { name: "이름", role: "관리자"}장점코드 중복을 줄일 수 있다.기존 타입 정의를 안전하게 확장할 수 있다.변경이 필요한 부분만 추가하거나 수정할 수 있다. 유니온 타입유니온 타입은 두 개 ..