스파르타코딩클럽에서 2월부터 웹개발종합반, sql 문법, 메이킹챌린지 등 여러 강의와 프로젝트를 진행하면서 정말 많은 것들을 배운 것 같다. 그리고 그 연장선으로 드디어 내일배움캠프가 시작되었다!내일배움캠프는 고용노동부와 스파르타코딩클럽이 협업하여 진행하는 웹개발자 양
09:00-12:30 오전 공부캠프 이틀차. 아직 팀원들과는 어색한 기류가 역력하다. 시간지 조금 더 지나면 괜찮아 지겠지.오늘은 따로 매니저나 튜터님들의 공지 없이 바로 자율학습을 시작했다. 뭔가 아무런 안내없이 알아서 시작하려니 조금 어색했다. 어제는 팀원들과 이야
09:00-10:00 미니프로젝트 발제10:00-12:00 프로젝트 기획 회의드디어 오늘부터 프로젝트 기간이 시작되었다. 2-3일간의 짧은 일정이지만 팀으로 함께 처음 협업하는 일이라 기대반 걱정반이었다. 다행히 프로젝트 수준은 웹개발종합반 마지막숙제 수준으로 나에게
09:00-11:00 개인 페이지 만들기시작 전 간단하게 팀원들과 일일 일정을 얘기하고 어제에 이어서 오늘도 미니프로젝트를 진행했다. 먼저 어제 만들던 개인 페이지를 마무리하기로 했다. 웬지모르게 일이 잘 풀리는 듯한 기분이었다. 그도 그럴 것이 어제부터 의문이었던 b
09:00-12:00 마무리 및 배포12:00-13:00 발표영상 촬영 및 발표준비드디어 첫 팀프로젝트의 마지막날! 오늘은 아침부터 준비해야할 것이 많았다. 우선 어제 마무리하지 못한 팀원들의 코드들을 모두 합치고 aws에 배포할 준비를 하였다. 소개 페이지중에서 mo
캠프 첫 동료로서 우리 팀원들을 만난 것 : 처음엔 다들 어색했지만 프로젝트도 같이 진행해보고 서로서로 알아가면서 점점 가까워진 것 같다. 우선 나와 같은 상황의 사람들과 같이 소통하면서 같이 발전해 나갈 수 있다는 것이 큰 힘이 되는 듯 하다. 첫 프로젝트를 진행
09:00-10:00 프로젝트 발제10:00-11:00 pygame 추가 강의미니 팀 프로젝트를 진행했던 지난 주와 달리 이번 주는 개인 프로젝트로 시작했다. 프로젝트 주제는 pygame을 이용하여 python으로 나만의 게임을 만든는 것. 어떤 주제를 할지 고민이 되
09:00-11:30 어제에 이어서 개인 프로젝트의 개발을 이어나갔다. 프로젝트를 간략하게 소개하자면 나의 주제는 '스파르타파이터'로 python을 이용하여 스트리트파이터2와 같은 2d 횡스크롤 격투게임을 만들고 있다. 어제는 데모버전을 만들어보고, 기본적인 이동,
09:00-11:00 퀴즈 및 해설오늘은 줌에 모여서 python 퀴즈를 진행했다. 성적을 매기는 용도보다는 아마도 캠프 참가자들의 python 숙련도를 체크하기 위한 것 같았다. 문제는 사용 구간 별 가격이 다른 전기 요금 표에 따른 총 전기 요금을 측정하는 것이 었
09:00-10:00python 게임만들기 개인 프로젝트가 끝나자마자 새로운 프로젝트가 시작되었다. 바로 인스타그램 클론코딩하기. 발제를 들어보니 백엔드나 다른 기능 구현은 제외하고 단순히 UI를 보고 레이아웃을 그대로 코딩하는 프로젝트였다.10:00-11:00 반응형
09:00-12:00오전에는 어제에 이이서 인스타그램 클론 코딩을 이어갔다. 오늘 개발한 부분은 메인 포스트 부분에 스토리 레이어 부분이다. 오전에는 각각 스토리 이미지에 외곽선을 만드는데 시간을 보낸 것 같다. 인스타그램 스토리는 단순히 border나 outline을
python 게임만들기 프로젝트 : 처음으로 개인 프로젝트를 진행했는데 내가 직접 설계하고 구현해봄으로써 개발의 즐거움을 느낄 수 있었다.인스타그램 클론 코딩 : 반대로 인스타그램 클론 코딩은 아무런 기능없이 외적인 레이아웃만 만드려니 매우 지루했고 내가 흥미를 느
09:00-13:00 인스타그램 클론코딩어느덧 벌써 3주차 첫날. 오늘은 개인프로젝트 마지막날이다. 저번주부터 고생했던 인스타클론코딩을 드디어 끝낼 수 있게 되었다. 오전에는 메인 포스트 박스 부분을 이어서 만들었다. 사진과 코멘트 등이 들어가는 부분. 이전과 같은 방
09:00-10:00본격적인 팀프로젝트가 시작되었다. 첫 주제는 지난번에 이어서 인스타그램 클론코딩. 하지만 백엔드를 구축하여 기능들을 구현하는 것이 주된 주제였다. 로그인/회원가입을 하거나 게시글을 올리고, 삭제하는등의 CRUD를 포함해야 했다. 기간은 11일까지로
스파르타 코딩클럽 내일배움캠프 AI 웹개발자양성과정 2회차 2022.05.04. 13일차- TIL 1. API 문서 작성 09:00-12:00 API 문서 작성 12:00-13:00 DB 설계 어제 프로젝트 기획에 이어서 오늘은 각자 맡은 부분에 대한 API 문서
팀 프로젝트 기획: 팀원들과 본격적인 첫 팀프로젝트를 시작하여 어떤 기능을 떻게 구현할 것인지 회의한 것. 노션으로 워크스페이스를 만들고 회의내용을 기록하며 하나하나 만들어가는 경험이 인상 깊었다.팀 프로젝트 중간 발표: 다른 팀들과의 프로젝트 진생상황을 공유할 수 있
스파르타 코딩클럽 내일배움캠프 AI 웹개발자양성과정 2회차 2022.05.05. 14일차- TIL 1. 개인 페이지 개발 09:00-12:00 오늘부터 본격적으로 개인별로 맡은 페이지를 만들기 시작했다. 나는 유저페이지를 맡았다. 제일 먼저 사진이 들어가야했기 때문
스파르타 코딩클럽 내일배움캠프 AI 웹개발자양성과정 2회차 2022.05.09. 15일차- TIL 1. merge라고 쓰고 conflict라고 읽는다. 09:00-10:00 오늘은 그동안 진행한 개별 개발상황을 공유하고 코드를 합치는 작업부터 진행했다. 다들 맡은
09:00-10:00 머신러닝 강의 일정 발제어느덧 팀프로젝트도 끝이나고 드디어 내배캠의 본 주제, 머신러닝에 대해 배울 수 있는 시간이 왔다. 아침부터 줌을 통해 머신러닝 발제에 참여했다. 발제에서는 앞으로의 일정과 팀변경 공지 등 새로운 사항들이 많았다. 놀라웠던
스파르타 코딩클럽 내일배움캠프 AI 웹개발자양성과정 2회차 2022.05.13. 19일차- TIL 1. ox퀴즈와 강의 리뷰 09:00-10:00 ox퀴즈 10:00-12:00 강의 리뷰 오늘 아침부터 일정이 빠듯했다. 먼저 9시 시작부터 강당에서 ox퀴즈를 진행했
팀 프로젝트 마무리 : 팀 프로젝트를 마무리하여 서로 개발한 내용을 합치고 하나의 결과물로 만들어냈다. 목표한 만큼 이루진 못했지만 협업을 통하여 하나의 웹 서비스를 만들어 봄으로써 좋은 경험이 되었다.새로운 팀원들 : 팀 배정을 통해 새로운 팀원들과 만나게 되었다
09:00-10:00 ox퀴즈10:00-11:00 퀴즈 및 2주차 강의 리뷰오늘도 시작은 모두가 줌에 모여 ox퀴즈로 시작했다. 내용은 머신러닝 강의 2주차 내용. 사실 앞부분은 거의 다 맞추거나 알고 있던 내용이었지만 저번주에 들었던 내용이라 그런지 뒷부분의 2문제
스파르타 코딩클럽 내일배움캠프 AI 웹개발자양성과정 2회차 2022.05.17. 21일차- TIL 1. 아침퀴즈 & 팀리뷰 09:00-10:00 아침퀴즈 10:00-11:00 팀리뷰 오늘도 아침부터 강당에 모여 퀴즈를 진행했다. 이전과 다르게 ox퀴즈가 아니라 제한
스파르타 코딩클럽 내일배움캠프 AI 웹개발자양성과정 2회차 2022.05.18. 22일차- TIL 1. 팀 프로젝트 발제 & 주제 선정 09:00-10:00 프로젝트 발제 10:00-11:00 주제 및 핵심 기능 선정 드디어 새로운 팀원들과 팀 프로젝드 시작되었다.
09:00-12:00 와이어프레임 제작어제의 기획회의에 이어서 오늘 오전까지 남은 부분을 진행했다. 어제 DB설계와 API문서 작성까지 모두 마쳤기 때문에 오늘은 와이어프레임 제작을 시작했다.와이어프레임은 figma를 이용해보았는데 처음 사용하는 툴이라 처음에 낯설고
스파르타 코딩클럽 내일배움캠프 AI 웹개발자양성과정 2회차 2022.05.20. 24일차- TIL 1. CNN 모델 학습 09:00-12:00 오늘은 팀 프로젝트에서 사용할 CNN 모델을 학습시켰다. 먼저 kaggle에서 우리가 원하는 marvel heros 데이터
머신런닝 강의 : CNN의 개념과 다양한 개념들을 확실하게 이해할 수 있었다.팀 프로젝트 시작 : 새로운 팀원들과 시작한 첫 프로젝트프로젝트 기획 : 팀원들과 프로젝트를 기획하는데 있어서 많은 의견을 주고받으며 유기적인 진행을 할 수 있었다. 팀원들과 강의 및 개
09:00-12:00월요일 아침에는 주말동안 작업 내용들을 리뷰해보고 각자 구현한 코드들을 병합하는 시간을 가졌다. 다행히(?)도 주말에는 쉬자는 팀 그라운드룰을 다들 잘 지켜서 병합할 내용이 크지는 않았다. 다만 DB에서 불러온 정보를 클라이언트에 보여주기위해 클라이
09:00-12:00대부분의 기능들은 어제 모두 구현이 완료되었기 때문에 오늘은 각자 맡은 부분에서 추가기능을 구현하거나 세부작업들을 진행하기로했다. 먼저 로그인/회원가입을 맡았던 팀원은 로그아웃 기능도 만들어보고, 어제 구현한 이미지 업로드 모달 기능도 웹페이지에 맞
09:00-10:00 발표 준비10:00-13:30 팀별 프로젝트 발표오늘은 어제까지 진행한 팀 프로젝트를 발표하는 날이었다. 이번 발표는 다른 팀원이 맡아주기로 했기 때문에 나는 전체적인 내용체크와 함께 응원담당을 맡았다.우리팀은 3번째 순서라서 비교적 앞순서라 다행
09:00-10:00월요일 아침은 지난주부터 시작된 장고 기초 강의에 대한 OX퀴즈로 시작했다. 그런데 지난주에 나는 아직 2주차까지 밖에 진도를 나가지 못했었는데 아침퀴즈는 4주차 내용까지 포함하고있어서 이게 뭔가 싶었다. 알고보니 주말기간을 강의 진행기간으로 잡고
스파르타 코딩클럽 내일배움캠프 AI 웹개발자양성과정 2회차 2022.05.31. 31일차- TIL 1. 아침퀴즈.. 그런데 타임어택..? 09:00-10:30 아침 퀴즈 풀이 10:30-12:00 퀴즈 해설 오늘도 아침에 게더 강당에 모여 퀴즈를 진행했는데 평소와는
09:00-12:00오늘 오전에는 추천시스템 특강이 있었다. 일단 이전까지 추천시스템이라고 하면 RNN과 같이 딥러닝을 이용한 추천시스템만 생각하고 있었는데 단순히 머신러닝이나 데이터필터링으로 데이터값들의 유사도를 측정하는 방법도 많다는 것을 알게 되었다. 덕분에 다음
09:00-12:00 5주차 강의 완강 및 리뷰오전에는 장고 실무 기초 강의 5주차를 진행했다. 5주차에는 글을 작성할 때 태그를 달 수 있는 기능과 aws배포하는 과정을 진행했다. 태그 달기 기능은 사실 원리를 이해한다기보다 라이브러리를 사용하는 법을 배운 것 같아서
09:00-12:00연휴를 끝내고 본격적인 팀프로젝트 개발에 들어갔다. 먼저 오늘은 UI구성을 목표로하고 오전에는 77종류의 맥주들의 이미지 파일을 수집하는 작업을 진행했다. 남은 시간에는 자유롭게 연휴동안 까먹었을 추천시스템을 복습하고 프로젝트에 관한 내용들을 체크했
09:00-12:00어제 1일차로 시작한 DRF (djangorestframework) 강의가 오늘도 이어졌다. 오늘은 모델 정의와 API호출에 대해 배웠는데 대부분 장고 기초강의에서 배운 내용이었다. 다만 CBV (class-based views)와 postman을
스파르타 코딩클럽 내일배움캠프 AI 웹개발자양성과정 2회차 2022.07.08. 57일차- TIL 1. 최종 프로젝트 기획회의 내일배움캠프 - My Little Trip 기획 Starting Assignment 2. 220708 타임어택 내일배움캠프 - 220708
내일배움캠프 - 도커 실무 강의 1주차 개발일지DRF 역참조와 Model.objects.filter()의 관계기존에 작성했던 API를 보안하여 프론트앤드 개발자 시점에서 좀더 알아보기 쉽고 이해하기 쉽게 수정했다. 참고 가이드로 Naver cloud platform 에
내일배움캠프 - 도커 실무 강의 2주차 개발일지: email로 로그인 할 수 있도록 구현: API 구현을 위해 사용할 dummy data를 admin 페이지를 통해 생성: BaseUserAdmin를 상속받아 admin 페이지에서도 User 생성 시 password가
내일배움캠프 - 도커 실무 강의 3주차 개발일지 - (1): 회원가입, 회원 정보 조회, 수정을 위한 유저 serializer 구현: JWT 토큰을 이용한 로그인, JWT 토큰 재발급, 회원가입, 회원정보 조회, 수정, 삭제 기능 구현https://www.no
https://github.com/kimphysicsman/nbcamp-algorithm-220726--2-내일배움캠프 - 알고리즘 1주차 개발일지내일배움캠프 - 알고리즘 1주차 숙제내일배움캠프 - 알고리즘 2주차 개발일지내일배움캠프 - 알고리즘 2주차 숙제내
내일배움캠프 알고리즘 문제풀이: setUp 함수로 test 실행 전 test data 생성
DRF에 JWT 적용시키기리액트 기초 - Javascript 문법 복습2022.08.05 JWT
Github에 /portfolio repository 생성간단한 소개와 프로젝트 모음프로젝트 readme.md 포함 내용 \- 제작기간 & 참여인원 \- 사용 기술 (중요도 순서로) \- ERD \- 핵심기능 (코드이동 링크) \- 트러블 슈팅
인트로 부분에 좀더 구체적으로 나에대해 작성 (작성)프론트 개발 따로 역할/기술스택 작성 (작성)react.js - api / 상태관리 기능서술사용한 라이브러리/모듈 언급 - 구체적으로 어떻게 코드 작성했는지ex) jwt를 이용한 로그인/로그아웃 구현모범 포트폴리오 참
1. 알고리즘 문제풀이 nbcamp-algorithm-220809 2. 원티드 - 프리온보딩 백엔드 코스 지원 1. 참가 에세이 주소 2. 선발과제 - 작성코드
nbcamp-algorithm-220810
1. 면접 대비 CS 지식 공부 1) HTTP 와 HTTPS 1-1) HTTP
1. CS 간단정리 > ### CS 간단정리 - [2] Python - Generator 2.
1. DRF - Test 작성 방법 정리 > ### DRF - Test 하기 2. 프리온보딩 과제 트러블슈팅 정리 > ### BulletinBoardService - 트러블 슈팅
지정된 도메인(출처)의 외부에 있는 리소스에 대한 액세스를 제어할 수 있는 브라우저 메커니즘: post_create_service 함수를 TDD로 구현하는데 있어서 익숙하지 않아서 어려움이 많았다.작성 루틴 : test 코드 작성 -> test 통과하기 위한 serv
과일 쇼핑몰 서비스사용자가 구매하고자 하는 상품(과일)을 선택하여 주문, 결제할 수 있다.사용자는 이용자, 관리자로 나눠진다.사용자 정보기본정보이름패스워드사용자 유형이용자권한 상품 : 조회 주문 : 조회/입력/수정 결제 : 조회/입력/수정관리자권한 상품 : 조회
문자열을 암호화 시키는 기능을 가진 Django에서 제공하는 함수 문자열과 암호화된 비밀번호가 일치하는지 확인하는 함수클라이언트와 서버가 데이터를 주고 받는 방식에 대한 균일한 인터페이스를 설명하는 아키텍처 스타일REST에는 기본적인 6가지 원칙이 있고 이 원칙을 충족
Stack과 Queue 자료구조에 대해 말씀해주시고 차이점에 대해 설명해주세요.Array와 Linked List 자료구조에 대해 말씀해주시고 차이점에 대해 설명해주세요.Stack 쌓는다 단어의는 의미처럼 데이터를 밑에서부터 쌓는 방식으로 저장하는 자료구조입니다. 때문
RDB와 NoSQL은 무엇인가요? 차이점 또는 장단점 위주로 설명해주세요.Join의 뜻은 무엇인가요? Inner Join과 Left (Outer) Join에 대한 차이점을 설명해주세요.RDB는 관계형 데이터 베이스로 정해진 스키마에 따라 데이터를 테이블화 시켜서 저장하
Transaction의 의미와 ACID 규칙에 대해서 설명해주세요.Primary Key와 Foreign Key에 대해 각각 설명해주세요.Transaction이란 데이터베이스의 상태를 변환시키는 하나 또는 한꺼번에 모두 수행되어야 할 일련의 연산 작업 단위를 의미합니다.
유튜브 인기 동영상 5개의 ID를 반환하는 API 작성 (front에서 ID를 통해 영상재생 가능)nginx, gunicorn, postgres 이용https://github.com/kimphysicsman/my_youtubeDjango 기능 구현 / Do
\--dry-run을 통해서 1분마다 인증서 갱신 확인도메인 : kimphysicsman.shop해당 API를 이용한 인기동영상 재생 front 구현
nginx에서 받은 요청을 front에서 처리front에서 django로 api를 요청할 경우 경로에 api를 포함시켜 요청하면 nginx에서 경로 수정 후 처리docker-compose.yamlnginx.confdocker-compose를 통해서 django web과
youtube api에 나라 정보를 넣어서 우리나라 인기동영상을 가져오도록 변경동영상의 제목도 저장할 수 있도록 마이그레이션제목 클릭시 해당 동영상 재생 기능저장하기 기능다른 인기동영상 차트 불러오기 기능배포시 django에서 ALLOWED_HOSTS에 도메인을 포함시
클라우드 서비스 내 논리적으로 독립된 가상의 네트워크구현할 구조 내부 IP : 10.0.0.0/16인터넷 게이트웨이는 VPC와 연결앞서 생성한 VPC 선택서브넷과 연결 라우팅에 Internet Gateway 추가EC2 생성 중 네트워크 설정을 VPC로 선택apache2
google에서 만든 Typescript기반 웹 프레임워크npm install -g @angular/clihttps://angular.io/tutorial/tour-of-heroes/toh-pt1ng new my_tutorialng generate compon
1. 시나리오 예시 > 유저에 대한 비밀번호를 암호화하지 않고 관리하고 싶을 경우 -> django.contrib.auth.authenticate를 커스텀하여 로그인 및 로그인한 유저 조회 기능 구현하기 2. User Model > AbstractBaseUser 상속
현재까지의 방법으로는 docker-compose up 실행 후 파일을 변경해도 화면에 적용되지 않는다.docker exec을 이용해 docker container 안으로 들어가서 보면 파일 변경사항이 반영되는 것을 확인 가능 즉 마운트 문제로 인한 파일 변경사항이 미반
0. 예상 시나리오 > docker-compose를 통해 angular와 django를 동시에 실행하고 angular에서 로그인 요청을 보내면 django 에서 처리하고 응답하는 로직을 구현해보자. > 요청은 nginx 에서 경로에 따라 분리 1. 프로젝트 구조
내가 구상한 구조를 Angular로 구현하는데 있어서 필요한 용어들과 개념들을 간단하게 정리해보았다.원본 HTML 문서의 객체 기반 표현 방식텍스트로만 이루어진 것이 아니라 노트 트리 방식으로 객체 모델로 표현되어 다양한 상호작용을 할 수 있다.유효하고 구조화된 HTM
221229 - TIL 에서 진행한 프로젝트 기반으로 작성ng generate module home --route home --module app.moduleng generate module user --route user --module app.moduleng gen
아래에서 작성한 프로젝트 이어서 작업\[230101 - TIL] DOM과 angular Module / Component\[230102 - TIL] angular 기능모듈 라우팅ng generate service service/appng generate componen
아래에서 작성한 프로젝트 이어서 작업\[230101 - TIL] DOM과 angular Module / Component\[230102 - TIL] angular 기능모듈 라우팅\[230103 - TIL] angular service와 @skipself더이상 UserI
아래에서 작성한 프로젝트 이어서 작업\[230101 - TIL] DOM과 angular Module / Component\[230102 - TIL] angular 기능모듈 라우팅\[230103 - TIL] angular service와 @skipself\[230104
0. 프로젝트 셋업 > 아래에서 작성한 프로젝트 이어서 작업 [230101 - TIL] DOM과 angular Module / Component [230102 - TIL] angular 기능모듈 라우팅 [230103 - TIL] angular service와 @ski
: 장고 템플릿을 이용해 변수를 보여줄 때 커스텀한 필터를 추가하여 내용을 변경시킬 수 있다.: html 랜더링을 수행하는 view app에 생성: 위 구조에서는 filter_func.py 에 작성https://github.com/kimphysicsman/Al
상위 쿼리에서 prefetch_related, select_related 적용 후 하위 쿼리에서 해당 인스턴스를 참조할 때 실재로 DB에 접근하지 않고 불러오는지 확인해보자.지정된 쿼리셋을 미리 가져와서 데이터베이스 접근을 최소화할 수 있다.select_related
Django QuerySet API reference를 보던 중 QuerySets are lazy / When QuerySets are evaluated에 대한 부분을 보고 직접 구현해봄으로써 확인해보고자 한다.\*\*https://docs.djangoproj
\*\*https://docs.djangoproject.com/en/4.1/ref/models/expressions/모델 필드의 값, 모델 필드의 변환된 값 또는 주석이 달린 열을 나타냄\*\*https://docs.djangoproject.com/e
1. 개요 > F 표현식을 사용했을 때의 쿼리 변화에 대해 알아보자 > F expressions F() 개체는 모델 필드의 값, 모델 필드의 변환된 값 또는 주석이 달린 열을 나타냅니다. 모델 필드 값을 참조하고 실제로 데이터베이스에서 Python 메모리로 가져오지
DRF에서 APIView 만 사용을 하다가 회사에서 주로 사용 중인 ViewSets 특징들을 얻기위해 drf tutorial를 통해 실습하면서 알아보았다.https://www.django-rest-framework.org/tutorial/3-class-base
외부 API를 이용하여 특정 리소스 목록을 받아와 DB저장하고 관리하고 싶은데 updated_at과 같은 업데이트 여부를 알 수 있는 정보가 없었다. 따라서 지금 가지고있는 리소스와 새롭게 받아온 리소스의 목록을 비교해서 업데이트되었는지 확인하고자 했는데, python
어제 리소스의 목록을 비교하기위해 dictionaries compare를 이용하려고 했는데 요구사항에 맞게 추가, 삭제를 위한 로직을 설계하다보니 업데이트할 개체가 무엇인지 직접적인 비교 전에 먼저 알고 있으면 편할 것이라고 생각이 들었다. 따라서 기존 리소스 목록과
지난 이틀간 진행했던 외부 API를 통해 특정 리소스 목록을 조회하고 DB의 데이터 목록에 비교/업데이트하는 로직을 설계하고 코드를 작성했다. 해당 리소스는 다른 데이터의 정보도 가지고있었기 때문에 다른 데이터의 정보를 다시 외부 API로 요청하고 업데이트해야했다. 따
지난 일주일가량 진행했던 작업 (외부 API를 통해 리소스 목록을 불러오고 기존의 데이터와 비교해서 최신화하는 작업)에 대한 검수를 하기위해 어제와 오늘 2일간 체크리스트를 작성하고 기능 동작을 확인하는 작업을 진행했다. 다만 개발 DB의 복잡성과 초기 테스트 데이터
django 테스트 코드를 만들기위해 초기 테스트 데이터를 생성하는데 꽤많은 시간을 소비하는 일이 발생했다. 때문에 어떻게하면 데이터 생성에 시간을 많이 소비하지않고 테스트를 할 수 있을지 여러가지 방법을 고민해보았다.테스트에 사용할 데이터가 너무 많아서 테스트할 때마
외부 API 리소스를 이용한 데이터 업데이트의 마무리작업으로 업데이트 속도 성능을 측정하고 개선하는 작업을 진행했다. 실제 데이터들을 대량으로 넣고 업데이트를 하니 생각보다 엄청 느렸고 어디서 시간이 오래걸리는지 찾아보고 어떻게 성능을 개선할 수 있을지 고민하다가 요즘
이번주에 진행했던 성능개선 내용을 이용해서 다른 부분들도 개선할 수 있는지 찾아봤고 비중이 크진 않지만 경우에 따라 의미있을 부분들을 수정해보았다.삭제할 데이터 오브젝트를 for문 안에서 get()으로 불러옴for문 밖에서 filter()로 한번에 불러옴 또는 filt
1. 개요 > 오늘은 개발과 관련된 내용은 아니지만 중요할 수 있는, 아니 확실히 더 중요할 수있는 부분을 이야기하고자 한다. 주제는 제목처럼 "개발자에게 가장 필요한 덕목은 무엇일까?" 2. 개발자란 무엇인가? > 먼저 본 주제에 답을 하기 위해서는 "개발자란
이미 DB에 저장되어있는 오브젝트 리스트를 업데이트 하기위해 오브젝트 인스턴스의 속성마다 값을 설정해줘야하는 것이 번거롭다고 생각이 들었다. 팀장님께 문의한 결과 setattr를 이용하여 손쉽게 리팩토링 할 수 있었다.data_no과 name 필드를 가진 Data 모델
2월달 커리어 OKR 중 하나였던 모던자바스크립트 15장까지 공부하기를 오늘부로 완료했다. 공부하면서 내 스스로 중요하다고 생각하면서 체크해놨던 내용들을 정리해보고자 한다.변수 선언문이 코드의 선두로 끌어 올려진 것처럼 동작하는 자바스크립트 고유의 특징자바스크립트에서
어제에 이어서 모던자바스크립트 내용을 정리해보자.\[230227 - TIL] \[모던 자바스크립트 Deep Dive] ~15장 - (1)스코프는 식별자의 유효범위를 뜻한다.식별자는 스코프에 해당하는 유효범위에서만 다른 코드가 자신을 참조할 수 있게 된다.스코프에 따라
1. 개요 > 어느덧 2월이 다 지나갔다. 2월은 정말 빠르게 지나간 것 같다. 나도 어느새 회사에 입사한지 2개월이 지났고 나름 잘 적응해가고 있다고 생각한다. 2월동안 있었던 일들을 돌아보며 한달이란 시간을 어떻게 보냈는지 또 앞으로의 한달은 어떻게 보낼지 이야기해
이번 주말부터 본격적으로 Dart 공부를 시작했다. 궁극적인 목표는 Flutter를 이용해서 이번년 OKR중 하나인 지인들에게 자랑할 수 있는 나만의 애플리케이션 만들기 이다. 때문에 Flutter의 기본 언어인 Dart 공부를 먼저 시작했다.나만에 애플리케이션을 만드
1. Data Types > Dart의 대부분의 Data Type은 Object로 이루어져있다. > 1. String interpolation : 변수를 string 안에 넣을 수 있다. > 2. bool 3. int 4. double > 5. List colle
1. 개요 > 팀에서 공동으로 사용 중인 django 프로젝트에 내가 작성한 모델을 DB에 추가해야했다. 그런데 migrations 파일들이 .gitignore에 해당하여 이전 마이그레이션파일이 없는 상태로 나의 모델을 DB에 추가하려고하니 python manage.
이번에 작업을 진행하면서 여러 요청에서 동일하게 계산하고 응답하는 결과를 cache를 사용하여 관리하게 되었다. 작성 당시에는 이미 사용중인 비슷한 기능을 하는 코드를 가져와서 구현하였지만 좀 더 확실하게 알고 넘어가고자 ChatGPT와 공식문서를 보며 알아보았다.무
최근 api서버에 응답데이터를 cache를 이용해서 관리하였다. 캐시 기능을 구현하면서 추가적으로 고려해야했던 것과 부수적으로 구현한 기능을 정리해보자.가장 큰 관점은 캐시에 저장한 데이터가 언제까지 유효한가? 이다. 해당 데이터가 수정되거나 다시 계산해야할 필요가 있
속성와 메서드 메서드에 같은 이름의 변수가없으면 this를 사용하지않아도 해당 클래스의 속성에 접근 가능 constructor late를 통해 constructor에서 할당 가능- final을 통해 수정 불가능 constructor - 2 : positional a
그동안 배운 Dart문법을 이용해서 1시간 가량 간단한 턴제 게임을 만들어보았다. 전체적인 맥락은 내일배움캠프에서 처음 웹개발을 배울 때 python으로 만들었던 1:1 격투게임을 생각하면서 클래스와 공격, 수비 등을 구현해보았다.내일배움캠프 - python 게임 만들
오늘은 그동안 작업했던 기능을 본 서버에 적용하는 과정에에서 팀장님과 협업하면서 겪었던 일화를 풀어보고자한다.일화는 이렇다. 내가 작업했던 내용 중에 현재 DB 데이터로는 알 수 없는 정보가 필요했고 이는 DB 구조를 수정해야할 필요가 있는 것이었다. 하지만 현재 서비
벌써 올해의 1분기가 지나갔다. 작년 말에 샐러드랩에 입사해서 3개월이란 시간이 지났고 어느덧 수습기간이라고 부를만한 기간도 지났다. 지금의 난 잘하고 있는 걸까? 앞으로는 어떻게 해야할까? 그동안 어떤 일이 있었고 어떤 변화가 있었는지 살펴보고 지금 나의 심정을 정리
오늘은 입사하고나서 개발자 외의 동료와 소통하여 하나의 태스크를 마친 날이다. 따라서 TIL을 그 주제에 대해 작성하려고했는데 그 전에 이것부터 집고 넘어가야할 것 같다.정말 어려운 주제다. 과거 개발자에게 가장 필요한 덕목은? 이라는 주제로 TIL를 작성한 적이 있
오늘은 어제 이야기하려고했던 주제에 대해 이야기해보자. 저번주부터 같은 팀에 속한 개발자 외 동료분과 소통하며 기능개선 작업을 진행하고있다. 기존처럼 혼자 작업하는 것이 아니라 다른 기획팀, 디자이너팀들과 소통하며 작업하면서 느낄 수 있었던 것들에 대해 정리해보고자 한
1. 개요 > 나에게 필요한 역량 중 하나라고 생각했던 소통 능력을 기르고자 여러번 회고를 했었고 그 노력 중 하나로 관련 책 읽기를 진행했다. 읽으면서 느꼈던 감정들과 새롭게 깨달은 점 등등을 정리해보고자 한다. > 2016, 박재연 - 말이통해야 일이 통한다
약 2주전부터 대시보드 페이즈를 만드는 작업을 진행했다. 이미 angular로 구성되어있는 프로젝트에 필요한 페이지를 추가로 만들면 되는 것이었다. 그전까지는 이런 시스템이 없어서 해당 화면에 필요한 요소를 그때그때 만들어서 사용하고 있었다. 때문에 같은 select박
그동안 진행했던 디자인시스템은 우리 팀의 angular 프로젝트에 컴포넌트로 구현했다.따라서 다른 팀에서 내가 작업해썬 컴포넌트를 사용하기 위해서는 여러가지 추가 리소스가 필요했다.컴포넌트 사용을 위한 문서화컴포넌트 디자인 페이지 별도 제작컴포넌트 사용을 위한 인수인계
1. 개요 > 어제 작업에 이어서 오늘은 angular 컴포넌트를 storybook으로 이동시켜 자동으로 디자인페이지를 구성하여 확인할 수 있게하였고 이를 npm 패키지로 배포하는 단계까지 진행했다. 2. storybook 적용하기 > 1) storybook 설치
지난 TIL에 이어서 storybook을 통해 angular로 구현한 컴포넌트를 관리하는 과정을 진행했다. 특이사항이 있다면 이번 컴포넌트는 @Input() 뿐만 아니라 @Output() 으로 상위 컴포넌트와 상호작용하는 경우도 있었기 때문에 이를 확인하는 방법과 ng
이 블로그에 마지막으로 TIL을 기록하진 어언 4개월이 지났다. 그동안 나에게 무슨 일이 있었는지 한번 되짚어보자.물론 귀찮아서, 게을러서라는 이유를 부정할 수 는 없겠지만 그렇다고해서 그게 주된 이유는 아니었다. 내 나름 생각과 계획이 있었고 그를 위한 시간이 필요했
본격적으로 TIL를 다시 쓰기 시작하면서 일단은 TIL를 멈추기 전 진행하고 있었던 디자인시스템 구축에 대한 내용을 한번 정리하고 넘어가려한다.입사 후 여러 프로덕트들이 생겨났지만 하나의 서비스처럼 제공되어야 했다. 따라서 사용자 대시보드에서 서로 다른 프로덕트라 하더
일하는 과정에서 기획, 디자이너, 개발 등 다양한 분야의 동료들과 소통할 때 나의 말의 의도가 제대로 전달되지 않거나 종종 내가 말하는 태도가 공격적이라는 의견을 받아 이를 개선시켜보고자함.나의 대부분의 질문은 상대방이 한 말의 의도를 파악하기 위함 “왜 그런것인지?”
누구에게나 인생의 변곡점이 있다. 나 또한 그렇다. 물리가 좋아서 기숙사에 틀어박혀 공부만하던 시절이 그랬고 입시에 실패한 후 그냥 지금 이 순간을 즐기자며 물 흐르듯 지낸 지난 10여년이 그랬다. 그리고 웹개발이라는 새로운 분야에 재미를 느끼고 몸을 던져 현재 회사에
클린 아키텍쳐 (2019, 로버트 C. 마틴 저 / 송준이 역) 을 ~4장까지 읽고 내게 영감을 주었던 문구들좋은 아키텍처가 비싸다는 생각이 든다면, 나쁜 아키텍처를 시도해 보라. 소프트웨어 아키텍처의 목표는 필요한 시스템을 만들고 유지보수하는 데 투입되는 인력을 최소
아래 아티클을 읽고 인상깊었던 문구들을 정리해보았다.아티클에선 팀장을 대상으로 팀장↔팀원간의 관계를 이야기했지만 팀장과 팀원이란 단어를 “동료”로 바꿔서 동료↔동료로 생각해도 무방하다고 생각한다.팀장님 T예요? AI같은 팀장을 위한 리더십 스킬업 방법 (감성리더십)팀장
나는 한숨을 쉰다는 얘기를 자주 듣는 편이다. 나에게는 일종의 의미없는 습관? 버릇?이었기 때문에 대수롭지않게 생각했었다. 그런데 회사에 들어오고나서 다른 사람들의 반응을 신경쓰게되니 주의해야겠다는 생각이 들고있다. 그런참에 이런 아주 매혹적인 제목의 아티클을 보고 지
코어팀에서 통합결제, 구독 시스템을 만들면서 결제나 포인트 변동과 같은 기능에서 여러번의 요청을 받을 경우 중복으로 결제되거나 포인트가 두번씩 차감되는 등의 문제가 발생하였다. 이유는 한 번만 동작하길 기대하는 요청을 동시에 여러번 요청받은 경우 (버튼 따닥)먼저 요청
vscode를 이용한 docker-compose 환경에서 django 프로젝트 debugging 가이드작성일: 20240715작성자: @김동우 .core.debug.envdocker-compose.debug.yml.vscode/launch.jsondocker-compo
AWS Skill Builder에서 Getting Started with Amazon OpenSearch Service 코스의 OpenSearch 소개부분입니다. 더 자세한 데모영상은 위 링크를 통해 확인 가능합니다.현재 유저활동데이터를 수집하여 저장 및 관리를 위한
앞서 알아본 Amazon OpenSearch Service에 데이터를 저장하는 역할로 Amazon Kinesis Data Firehose라는 기능에 대해 알아보았습니다HTTP 모든 사용자 지정 HTTP 엔드포인트 또는 엔드포인트와 같은 대상으로 실시간 스트리밍 데이터를
유저활동데이터를 수집하기위해 client script에서 Amazon API Gateway로 데이터를 전송할 때 SDK를 활용해보았다.CORS 활성화 & 배포SDK 다운로드SDK를 S3에 퍼블릭으로 업로드SDK를 로딩하여 데이터 전송하는 코드 작성테스트 결과 확인전송
이번 스프린트에서 유저활동데이터 수집을 위한 시스템을 구축할 기회가 생겼다. 사실 작년부터 해당 사항은 우리회사의 산개된 위성 서비스들이 모두 사용할 수 있는 통합 로깅 아키텍처를 설계했었다. 하지만 그 당시까지만 해도 로깅통합은 비중이 큰 작업이 아니었고 당장 닥친
Amazon OpenSearch Service Docs를 도메인 구성 시나리오 관점에서 정리해보았습니다.: 데이터 기본 단위Rolling Index VS Long-Term Retention Index사이즈기반 로테이션 VS 기간(시계열) 기반 로테이션인덱싱 기간 또
\_searchtook: 검색 요청을 처리하는 데 걸린 시간 (밀리초)입니다.timed_out: 검색 요청이 시간 초과되었는지 여부를 나타냅니다. false는 요청이 시간 초과되지 않았음을 나타냅니다.\_shards: 샤드 관련 정보입니다. \_shards 객체는 검색
AWS Lambda에서 현재시각을 구할때 datetime 변수에 타임존을 적용시키고 싶었는데 pytz 라이브러리를 사용하기위해서는 별도로 layer를 추가해줘야했다. 귀찮아서 별도 라이브러리 추가없이 타임존 객체를 가져올 수 있는 방법을 찾아보다가 zoneinfo 라이
django에서 form_data 형식으로 이미지를 입력받는 api를 구현하게되었는데 이때 해당 데이터가 InMemoryUploadedFile 클래스 인스턴스로 할당되는걸 발견했다.A file uploaded into memory (i.e. stream-to-memor
자주 사용하는 OpenSearch 쿼리문을 정리해보았다.단어 매칭 matchand 조건 mustor 조건 should범위 검색 rangegt : 크다lt : 작다~e: 같다 포함filter 여러개 적용하기https://docs.aws.amazon.com/ko_
개요 유저활동데이터를 수집하는데 있어서 해당 이벤트가 발생한 브라우저의 종류를 포함시키기로 했다. 그래서 javascript로 해당 런타임의 브라우저 종류를 구분하는 코드를 작성해보았다. 구분 코드 PC 브라우저별 적용 화면 1. Chrome 2. Edge 3. Firefox 4.
Amazon ECS는 컨테이너화된 애플리케이션을 실행, 관리할 수 있도록 지원하는 완전 관리형 컨테이너 오케스트레이션 서비스입니다.Kubernetes와 유사한 기능을 제공하지만, AWS에 최적화되어 있습니다.컨테이너 런타임으로 Docker를 사용하며, EC2(가상머신)
인덱스 상태와 상태별 태스크를 정의하여 인덱스를 자동화 관리할 수 있는 설정ex) hot index를 30일뒤 warm index로, warm index를 60뒤 cold index로 변경하고싶을 때 대시보드 {opensearch_endpoint}/\_dashboar