[헤드퍼스트 디자인패턴] 전략패턴
·
정보
전략 패턴 (Strategy Pattern)"알고리즘군을 정의하고 각각을 캡슐화하여 교환해서 사용할 수 있도록 만든다. 전략 패턴을 활용하면 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경할 수 있다." - GoF01.전략 패턴이란?전략 패턴은 동일한 목적의 알고리즘을 여러 가지 방식으로 구현하고상황에 따라 원하는 알고리즘을 선택해서 사용하는 디자인 패턴이다. 행동을 사용하는 쪽(Context)과 실제 구현(Strategy)을 분리해서상황에 따라 다른 로직을 쉽게 바꿔 끼울 수 있게 하는 것이 핵심이다. 여기서 중요한 점은 "무엇을 할지"는 Context가 알고 "어떻게 할지"는 Strategy가 결정한다Strategy (인터페이스): 공통 동작 정의Concrete Strategy: 실제 알..
[도서/소설] 지구에서 한아뿐 (w.정세랑)
·
취미/독서기록
줄거리경민과 한아와 11년째 사귀고 있는 연인사이다. 한아가 정 때문에 관계를 이어 간다고 느낄 만큼 경민이는 늘상 한아에게 소홀했다. 한아를 먼저 생각하기보다 제멋대로 행동했고 이번에도 한아를 남겨 둔 채 캐나다로 유성우를 보러 떠났다. 그런데 캐나다에서 돌아온 뒤 경민은 눈에 띄게 달라졌다. 예전에는 입에도 대지 않던 음식을 먹고 한아에게 한층 다정하게 굴었다. 무엇보다 한아에게만 집중했다.​이 낯선 변화에 한아는 그를 의심한다. 그리고 끝내 이유를 묻자 경민은 뜻밖의 고백을 내놓는다. 사실은 자신이 외계인이라고.감상평이거 읽고 경민이 같은 사람이 이상형 됐음(껍데기 말고 속이요)지구에서 한아뿐.. 정말 한아 하나만 아는 경민이. 사랑을 하면 어디까지 할 수 있을까를 경민이가 보여준다.인용“한아를 위..
[도서/소설] 보건교사 안은영 (w.정세랑)
·
취미/독서기록
줄거리안은영은 평범한 보건교사가 아니다. 그의 눈에는 다른 사람에게 보이지 않는 ‘액토플라즘’이 보인다. 이는 사람의 욕망이나 감정, 미련이 뭉쳐 생긴 존재로, 젤리처럼 말랑한 모습으로 나타난다. 평소에는 해가 없지만 특정한 상황에서는 사람에게 영향을 주거나 사건을 일으키기도 한다. 은영은 장난감 칼과 비비탄 총을 들고 이 존재를 없앤다.보건교사이자 퇴마사로 살아가는 은영이 새로 부임한 고등학교는 유난히 수상한 일이 많은 곳이다. 오래된 건물과 과거의 사건이 얽혀 있어 액토플라즘이 쉽게 쌓이고, 그 힘도 빠르게 커진다. 학생들 사이에서 반복되는 이상 행동이나 설명하기 어려운 사고 역시 그 영향이다. 그중에서도 가장 눈에 띄는 인물은 한문 교사 홍인표다. 그는 태어날 때부터 강한 보호막 같은 기운을 지녔고..
[도서/자기계발] 어른의 국어력 (w.김범준)
·
취미/독서기록
평소의 어떻게 읽고, 말하고, 쓰느냐에 따라 당신이 만들어집니다!감상평해가 갈수록 ‘이런 말은 쓰지 말아야지’, ‘이럴 땐 이런 단어를 골라야지’ 같은 다짐이 늘어났다.이제라도 어른스럽게 말해야지 생각하다가도 문득 되묻게 된다. 어른스럽다는 게 대체 뭘까. 그래서 『어른의 국어력』이라는 제목에 끌려 책을 집어 들었다. 사실 나는 이런 자기계발서에 약간의 반감이 있다. 청개구리 심보랄까. “이렇게 사세요”라는 말을 들으면 “그게 쉬우면 벌써 그렇게 살았죠”라는 반항심이 먼저 올라온다. (제가 이상한 사람입니다.) 그리고 대부분의 내용은 이미 아는 이야기라 크게 와닿지 않았다. 그런데 『어른의 국어력』은 달랐다. 무엇을 하라고 말하기 전에 왜 그래야 하는지를 먼저 설득한다. 그 점이 좋았고 그래서 더 재미있..
[Gemini] 나노 바나나(Nano Banana)에게 한글 가르치기 실험
·
기술/AI
나노바나나 프롬프트 패턴 컬렉션아주 좋은 사이트 하나를 알게 됐다.나노 바나나를 활용해서 다양한 스타일의 인포그래픽을 뽑을 수 있다. 자료도 많고 바로 복사해서 쓸 수 있다.https://furoku.github.io/bananaX/projects/infographic-evaluation/ko/ Banana X 프롬프트 패턴 컬렉션 - Google NotebookLM 가이드Google NotebookLM과 Gemini 1.5 Pro의 잠재력을 극대화하기 위한 프롬프트 패턴 모음입니다. Audio Overview 제어 및 고급 문서 분석을 위한 실용적인 프롬프트 기술을 제공합니다.furoku.github.io나노바나나 적용새출발클럽 스터디 목표를 인포그래픽 스타일로 뽑아보자.# 새출발 클럽 모집 ## 의도..
[도서/자기계발] 당신은 일을 못하는 게 아니라 말을 못하는 겁니다 (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") ...