A ship in harbor is safe, but that is not what ships are built for.

분류 전체보기 156

2023.01.03 TIL(알고리즘 CS Q&A 정리)

1. 시간복잡도와 공간복잡도가 무엇인지 설명해주실 수 있을까요? 어떤 알고리즘이 있을 때, 우리는 해당 알고리즘의 성능을 평가할 필요가 있다. 우리는 이러한 알고리즘의 성능을 '복잡도(Complexity)'의 척도를 사용해 평가한다.(당연히 복잡도가 낮으면 good, 높으면 bad) 이러한 복잡도의 종류에는 아래와 같이 2가지가 있다. 시간 복잡도 : 특정 알고리즘이 어떤 문제를 해결하는데 걸리는 시간 공간 복잡도 : 작성한 프로그램이 얼마나 많은 공간(메모리)을 차지하는지를 분석 각각에 대해서 조금 더 자세히 살펴보자. 1) 시간 복잡도 시간 복잡도란 특정 알고리즘이 어떤 문제를 해결하는데 걸리는 시간이다. 이것은 실제로 프로그램을 실행해보아야 알 수 있지만 많은 사람들은 프로그램을 짜기 전이나 짜는 ..

2023.01.02 TIL(데이터베이스 CS Q&A 정리)

💭 인덱스(Index)란? https://mangkyu.tistory.com/96 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조 책에서 원하는 내용을 찾는다고 하면, 책의 모든 페이지를 찾아 보는것은 오랜 시간이 걸린다. 그렇기 때문에 책의 저자들은 책의 맨 앞 또는 맨 뒤에 색인을 추가하는데, 데이터베이스의 index는 책의 색인과 같다. 데이터베이스에서 테이블의 모든 데이터를 검색하면 시간이 오래 걸리기 때문에 데이터와 데이터의 위치를 포함한 자료구조를 생성하여 빠르게 조회할 수 있도록 돕는다. 인덱스를 활용하면, 데이터를 조회하는 SELECT 외에도 UPDATE나 DELETE의 성능이 함께 향상된다. 만약 index를 사용하지 않은 컬럼을 조회..

내일배움캠프 AI - 85일차 TIL, 2022.12.29

스파르타 코딩클럽 내일배움캠프 AI 웹개발자양성과정 3회차 2022.12.29. 85일차 - TIL 축제어때 🌈 https://www.introvertcamp.shop/ back repo 👉 https://github.com/Naerumii/BestChoice front repo 👉 https://github.com/Naerumii/BestChoice_front ⭐ 프로젝트 목표 전국 축제 추천 및 커뮤니티 서비스 ⭐ 역할 추천서비스 : 이승연, 이효정 프론트엔드 : 정태희 백엔드 회원기능 : 정유준 마이페이지 : 이승연,정유준 축제게시글 : 이승연, 이효정 축제게시글 북마크 : 이승연 축제 모집게시글 : 정태희, 이승연, 이효정, 송창주 축제 모집게시글 댓글 : 정태희 축제 모집게시글 신청기능 : 이승..

내일배움캠프 AI - 84일차 TIL, 2022.12.28

스파르타 코딩클럽 내일배움캠프 AI 웹개발자양성과정 3회차 2022.12.28. 84일차 - TIL 최종발표 전 발표자료 작성과 시연영상 촬영, 깃허브 정리 및 README.md 작성을 했다. 계획했던 테스트코드 작성은 시간이 애매해서 수료 후에 팀원들과 취업준비를 하면서 짜보기로 했다. 오늘 공부한 것 python에서 DB 행 삭제 최종발표 전 서비스 점검을 하다 한개의 축제게시글이 3개씩 나오는것을 발견했다. 도커를 이용해서 백엔드 서버를 구동하는 과정에서 festival_article 모델에 축제 정보를 저장시켜주는 festival_loader.py이 중복으로 실행되어 같은 축제가 3개씩 저장된것.. 방법을 고민해봤는데 우리가 필요한 축제는 828개인데 이후 829번부터는 중복된 행이기 때문에 이것..

내일배움캠프 AI - 83일차 TIL, 2022.12.27

스파르타 코딩클럽 내일배움캠프 AI 웹개발자양성과정 3회차 2022.12.27. 83일차 - TIL 1. 테스트 코드 작성하기 지금까지 API 테스트는 Postman을 통해 진행했는데 물론 Postman도 좋은 툴이지만 하나하나 send 버튼을 누르며 테스트를 해야하는 불편함이 있다.(실제로 매번 로그인 후 access 토큰 변경 후 헤더에 붙여서 보내고 이런 작업들이 상당히 번거로웠다.) 하지만 테스트 코드를 작성하면 한줄의 명령으로 모든 테스트 케이스를 한번에 처리할 수 있다는 장점이 있다. 개발에서 테스트의 종류는 크게 3가지로 분류한다. 1) Unit test : 독립적인 class와 function 단위의 테스트 2) Regression test : 발생했던 버그에 대한 수정 테스트 3) Int..

내일배움캠프 AI - 82일차 TIL, 2022.12.26

스파르타 코딩클럽 내일배움캠프 AI 웹개발자양성과정 3회차 2022.12.26. 82일차 - TIL 1. 발표자료 정리 아키텍쳐 아키텍쳐 그리기 전 텍스트로 흐름을 정리해보았다. 장고 서버는 아래와 같은 순서로 동작한다. postgreSQL(DB) - django(프레임워크) - gunicorn(컨테이너) - nginx - ec2 - load balancer - route53 - 클라이언트 프론트엔드는 상대적으로 단순한 구조로 되어있다. S3 - cloudfront - route53 - 클라이언트 이를 토대로 아키텍쳐 초안을 작성해보았다. 조금 추가하고 싶은 내용들이 있지만 흐름을 알아볼 수 있었고 팀원들과 아키텍쳐를 보면서 배포 과정을 한번 더 이해하고 넘어갈 수 있었다. 모집 게시글 삭제 시 마이 페..

내일배움캠프 AI - 17주차 WIL

기간 : 2022.12.19 ~ 2022.12.23(5일간 진행) 지난주에 작성한 WIL을 보면서 이번주를 회상하는데 신기하게도 개선했으면 싶은 기능들을 모두 개선해서 매우 뿌듯했다. 사용자들의 피드백도 잘 받았고, 그 중 개선할 사항들도 금요일에 빠르게 개선하면서 점점 기능성이 좋아지고 있다. 이제 정말 다음주면 내일배움캠프도 끝난다. 처음에는 막막하고 성공적인 포트폴리오를 만들어야 한다는 압박도 심해서 굉장히 불안했는데 다행히도 결과가 아주 만족스럽게 나와서 내심 기뻤다. 다음주에 있을 발표를 아주아주 잘 준비해둘 것!! 시간이 될지는 모르겠지만(발표도 아주 열심히 준비해야 하기 때문에...) 다음주에 하고자 하는 바를 정리한다면, 첫번째, Github와 TIL 잘 정리하기 -> 그동안 미루었던 것,..

내일배움캠프 AI - 81일차 TIL, 2022.12.23

스파르타 코딩클럽 내일배움캠프 AI 웹개발자양성과정 3회차 2022.12.23. 81일차 - TIL 1. 프로젝트 기능 개선 1) 모집게시글 리스트에서 축제명 항목 크기 조절해 넘치지 않게 하기 피드백으로 지적받은 문제 중 하나가 바로 모집게시글 리스트에서 축제명이 일정 길이보다 긴 경우, 줄바꿈이 일어나면서 게시글 형식이 깨진다는 것이다. 이것은 프론트의 문제이지만 글자수를 제한하면 될 것이라고 생각해 바로 수정했다 전체적인 style을 다 변경할까 하다가 길이 제한이 필요한 것이 축제 제목 뿐이라 그냥 해당 태그에 style을 적용해주기로 했다.(style로 뺄까 하다가 일단 수정되는지만 확인하기 위해 그냥 태그에 style 속성을 추가했다.) 찾아보니 css 말줄임 속성(text-overflow:e..

내일배움캠프 AI - 80일차 TIL, 2022.12.22

스파르타 코딩클럽 내일배움캠프 AI 웹개발자양성과정 3회차 2022.12.22. 80일차 - TIL 클라우드프론트 무효화 프론트엔드 배포 후 수정이 필요한 경우 S3에 업로드 되어있는 파일을 삭제하고 다시 업로드를 해주어야하는데 업로드 하고 20분정도 시간이 지나도 바로 반영이 되지 않았다. 그냥 기약없이 기다려야하나 했는데 다른 팀의 보미님이 클라우드프론트 무효화 기능을 알려주셔서 잘 해결되었다. 먼저 클라우드프론트에 S3가 연동되어있는 도메인에 접속한다. 무효화 탭에서 무효화 생성 버튼을 클릭한다. 객체 경로 추가 부분에 S3에 재업로드 한 파일을 적어주는데 파일 경로 + 파일명을 입력한다. ex) static 폴더 - js 폴더 - main.js인 경우 static/js/main.js 이때 모든 파..

내일배움캠프 AI - 79일차 TIL, 2022.12.21

스파르타 코딩클럽 내일배움캠프 AI 웹개발자양성과정 3회차 2022.12.21. 79일차 - TIL 1. 프로팔 수정 기능 이전 프로젝트에서 완성하지 못한 프로필 수정 기능을 구현하려 한다. 그때는 백엔드만 성공하고 프론트는 시간이 없어서 완성하지 못했는데 이번에는 시간이 되서 구현하려 한다. 나는 다른 작업을 하고 있었기 때문에 다른 팀원분이 백엔드를 먼저 구현하고, 프론트엔드 연동을 도와 같이 하기로 했다. class ProfileView(APIView): ... #프로필 정보 수정하기 def patch(self, request): user = get_object_or_404(User, id=request.user.id) serializer = UserEditSerializer(user, data=r..