슬기로운 프론트엔드 생활

Today I Learned 날짜 2023년 11월 9일 목요일 내용 프론트엔드 부분 구현을 시작했다. 유저의 입력 값을 서버 DB에 저장하는 데 성공했다. Angular Document를 읽었는데 꽤나 이해하는데 어려웠다. 읽으면 알 것 같으면서도, 어디부터 손을 대야할 지 막막하다고 해야하나.. 그래도 유저가 입력한 값을 서버에 넘겨서 DB에 저장하는 데는 성공했다. 오늘 계획했던 양에 비해선 많이 부족하긴 하지만 내일 속도 붙여서 열심히 해봐야겠다. 클라이언트 입장에서 서버가 보낸 Response를 어떻게 받아서 처리해야할 지 잘 모르겠다. 아무래도 이 부분을 중점적으로 내일 잘 읽어봐야겠다. 특정 조건(입력한 회원 정보가 일치하지 않을 때)만 메시지를 출력해야 하는데, 이 부분만 따로 컴포넌트로 만들면 될까? 이전 프로젝트에서 산성비 게임에서 아이템을 구현했었다. 상대 화면을 이미지로 가리는 아이템을 구현할 때는 특정 DOM을 만드는 방법을 사용했었는데, 내일 찾아봐야겠다. ...

2023년 11월 9일 · 1 분 · 배준수

파이썬 알고리즘 : 평균 구하기

2023년 11월 9일 알고리즘 문제풀이 문제 링크 난이도 Lv.1 코드 1 2 3 def solution(arr): answer = sum(arr)/len(arr) return answer

2023년 11월 9일 · 1 분 · 배준수

Document 광신도(RTFM)

Today I Learned 날짜 2023년 11월 8일 수요일 내용 과제 중 백엔드 부분을 완성했다. 기능 설명에 관련된 부분들은 모두 완성하였다. 데이터베이스 테이블 문제 아마 프론트 부분을 구현하면서 약간의 수정만 필요하지 않을까 싶다. 어제 DB에 Table이 생성되지 않아 문제를 겪었는데 생각보다 수월하게 해결되었다. 기존에 model에 작성한 대로 table을 생성하는 코드가 database.py에 위치해 있었는데, 이것을 main.py로 옮기니 바로 해결됐다. 그 위치에서는 그 코드가 작동되지 않았던걸까? 문제는 해결됐지만 어제의 추론들은 주말에 공부해서 스스로 답변을 작성해봐야겠다. ...

2023년 11월 8일 · 2 분 · 배준수

FastAPI 첫 시작

Today I Learned 날짜 2023년 11월 7일 화요일 내용 온보딩 과제를 시작했다. To do list와 관련된 CRUD 사이트를 프론트엔드, 백엔드로 만들어야 한다. 프론트는 Angular, 백엔드는 FastAPI다. 목표 기한은 11월 10일 금요일(놀랍게도 내가 설정한 목표)이다. 적어도 내일은 백엔드를 끝내야 하는데.. Angular가 걱정이다. 그렇다고 백엔드를 대충 끝내지 말고 내 포지션인 만큼 완성도있게 만들자. 공식 Document 어제 스쿼드 리더님과 대화를 나눌 때 ChatGPT와 Copilot 관련해서 여쭤봤는데 온보딩때는 사용하지 않는걸 권하셨다. 나도 짧은 프로젝트도 아니고, 내가 회사에서 일하는 동안 계속 써야할 Tool인 만큼 스스로 확실하게 익히는게 중요하다고 생각했기 때문에 납득할 수 있었다. 그래서 일절 사용하지 않고, FastAPI 공식 Document를 열심히 읽으면서 따라가고 있다. 구글링도 최대한 자제 하고 있는데, 생각보다 Document에서 원하는 답을 찾기가 더 수월한 경우가 많기도 했고 예전 부트캠프에서 공부할 때 블로그의 낮은 신빙성을 못본체 하면 안된다는 충고가 생각나기도 했기 때문이다. ...

2023년 11월 7일 · 2 분 · 배준수

첫 출근

Today I Learned 날짜 2023년 11월 6일 내용 처음 출근해서 새로운 사람들과 인사도 하고 이것 저것 배우고 들었다. 온보딩 과제가 주어지긴 했는데, 내가 속한 스쿼드 리더님이 오늘 하루는 회사 사람들의 TIL을 읽어보는 걸 권하셨다. 체감상 50개?는 된 것 같은데 하루종일 정독했다. 다 익히는 건 불가능하지만, 앞으로 함께 일하기 위해 중요해 보이는 것들을 위주로 남겼다. Agile 개발자로서 정말 많이 듣는 단어이다. 소프트웨어 개발 방법론의 하나다. 폭포를 뜻하는 워터폴 방법론과 많이 비교된다. 폭포가 위에서 아래로 물이 쏟아지듯, 진행 방향이 단방향으로 진행되는 것을 워터폴 방법론이라고 한다. 기획 및 설계 -> 디자인 -> 개발 -> 테스트 -> 출시 이런 방향으로. 흔히 어떤 프로젝트가 진행된다고 하면 많이들 생각하는 방법이다. 비가역적이지만, 무조건 나쁜 방법은 아니다. 단지 시시각각 변하는 상황과 고객의 니즈를 충족하기에 부적합한 것 뿐이다. 말했듯 비가역적이니 개발 중 설계를 변경할 수 없다. ...

2023년 11월 6일 · 3 분 · 배준수

2023년 10월 4주차, 11월 1주차 2주간 기록

주간기록 날짜 2023년 10월 23일 ~ 2023년 11월 05일 계획 책너두 : Real MySQL 8.0 1권 팀스파르타 Devcamp 심화과정 GSAT 공부 10월 23일 : LG CNS 1차 면접 10월 29일 : GSAT 결과 10월 27일 데브캠프 심화교육 종료 회원가입 및 로그인, 소셜 로그인(네이버, 카카오, 구글) 구현 완료 취준 종료 회고 데브캠프도 너무 바빴고, 취업준비가 끝나면서 일주일간 아예 놓고 쉬면서 여러 생각도 하고 준비도 했다. 자세한 회고는 따로 남긴다.

2023년 11월 5일 · 1 분 · 배준수

마침내 취업!

마침내 취업! 팀스파르타에서 데브캠프를 진행하면서 최종합격 소식을 들었다. 전형이 진행중인 회사들의 결과와 무관하게 일하기로 결정했다. 공고를 쓰고 면접 준비를 진행하면서 이런 곳에서 일할 수 있다면 좋겠다고 생각했는데, 정말 기회가 생겨 너무 기쁘다. 물론 꽃길만 있겠냐만은, 좋은 출발임은 분명하다고 생각한다. 기존 진행하던 프로젝트를 마무리하고, 이것 저것 알아보고 준비하는 일주일 간 잠시 개발과 거리를 뒀다. 혼자 상념에 잠기기도 해보고, 산에도 올라 머릿속을 비우기도 했다. 최근 들어 이렇게 마음 편한 날이 있었나 싶다. 여기까지 오게 된 과정을 되돌아보며 내 감정을 정리하고자 한다. ...

2023년 11월 5일 · 4 분 · 배준수

index_merge에서 출력되는 메시지 종류

책너두 6기 48일차 백은빈, 이성욱의 Real MySQL 8.0 1권 p.485 ~ p.490 내용정리 10 실행계획 10.3 실행계획분석 10.3.12 Extra 칼럼 10.3.12.27 Using MRR MRR(Multi Range Read) 최적화는 여러 개의 키 값을 한 번에 스토리지 엔진으로 전달하고, 스토리지 엔진은 넘겨받은 키 값들을 정렬해서 최소한의 페이지 접근만으로 필요한 레코드를 읽을 수 있게 한다. 10.3.12.28 Using sort_union(…), Using union(…), Using intersect(…) 쿼리가 index_merge 접근 방법으로 실행되는 경우에는 2개 이상의 인덱스가 동시에 사용될 수 있다. 이 때 두 인덱스로부터 읽은 결과를 어떻게 병합했는지 조금 더상세하기 설명하기 위해 3개 중에서 하나의 메시지를 출력한다. ...

2023년 11월 4일 · 1 분 · 배준수

인덱스 관련 최적화가 출력하는 메시지

책너두 6기 47일차 백은빈, 이성욱의 Real MySQL 8.0 1권 p.480 ~ p.484 내용정리 10 실행계획 10.3 실행계획분석 10.3.12 Extra 칼럼 10.3.12.13 Using index condition 인덱스 컨디션 푸시 다운(Index condition pushdown) 최적화를 사용하면 표시된다. 10.3.12.14 Using index for group-by GROUP BY 처리가 인덱스를 이용할 때 표시 10.3.12.14.1 타이트 인덱스 스캔(인덱스 스캔)을 통한 GROUP BY 처리 AVG(), SUM(), COUNT() 처럼 조회하려는 값이 모든 인덱스를 다 읽어야 할 때는 필요한 레코드만 듬성듬성 읽을 수가 없다. 이럴 떄는 메시지가 출력되지 않는다. ...

2023년 11월 3일 · 1 분 · 배준수

세미 조인 최적화와 관련된 메시지

책너두 6기 46일차 백은빈, 이성욱의 Real MySQL 8.0 1권 p.473 ~ p.479 내용정리 10 실행계획 10.3 실행계획분석 10.3.12 Extra 칼럼 10.3.12.19 Start temporary, End temporary 세미 조인 최적화 중에서 Duplicate Weed-out 최적화 전략이 사용되면 표시된다. 10.3.12.20 unique row not found 두 개의 테이블이 각각 유니크(프라이머리키 포함) 칼럼으로 아우터 조인을 수행하는 쿼리에서 아우터 테이블에 일치하는 레코드가 존재하지 않을 때 10.3.12.21 Using filesort ORDER BY를 처리하기 위해 인덱스를 이용할 수도 있지만 적절한 인덱스를 사용하지 못할 때는 MySQL 서버가 조회된 레코드를 다시 한번 정렬해야 한다. ORDER BY 처리가 인데스를 사용하지 못할 때만 표시된다. ...

2023년 11월 2일 · 1 분 · 배준수