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

개발일지 123

2023.02.20 (AWS 소개)

AWS 소개 aws란 amazone web service의 약자로, 아마존에서 운영하는 cloud computing platform이다. 처음 아마존은 단순한 온라인 쇼핑 산업에서 시작했지만 그 규모가 전세계로 확대되면서 엄청난 양의 데이터를 처리하고 보관해야 했기에 그들만의 서버를 구축해야 했다. 그러자 아마존은 해당 네트워크 서비스를 다른 개발자들 또한 필요할 것이라 생각해 이러한 서버를 클라우드로 구축할 수 있는 서비스를 제공하면서 aws는 개발자들에게 대체 불가한 클라우드 컴퓨팅 서비스가 되었다. aws 이전의 단순한 웹통신을 살펴보면 클라이언트는 특정 정보를 얻기 위해 회사의 서버에 직접 Request를 보내고, 회사 서버는 요청에 대한 Response를 보내 클라이언트가 정보를 브라우저에 렌더..

2023.01.08 TIL(Django Q&A 정리)

1. django가 무엇인지 설명하시오 파이썬을 기반으로 웹을 개발하기 위해 만들어진 웹 프레임워크 입니다. (프레임워크는 프로그램을 개발하기 위해 사용되는 틀을 제공하는 프로그램) (라이브러리는 개발자가 개발하는데 필요한 것들을 모아둔 도구들의 나열로 필요할 때 사용하는 방식) 웹 프레임워크는 웹 프로그램을 만들기 위한 스타터 키트 2. Django를 백엔드 스택으로 선정한 이유는 무엇입니까? 다른 언어들보다 직관적인 인터프리터 방식인 파이썬을 기반으로 하는 프레임워크중에서 가장 대표적으로 쓰이며, DB와 Admin페이지, ORM등 기본적으로 많은 기능들을 제공하고 기능들이 편리하여 개발에 유용하기 때문입니다. 3. Django에는 어떤 장점이 있습니까? ORM, Admin, permission등 내부..

2023.01.07 TIL(자료구조 CS Q&A 정리)

자료구조 좋아하는 자료구조가 있다면 이유와 함께 설명해주실 수 있을까요? 스택, 큐에 대해 설명해주실 수 있을까요? 스택 - 쌓다의 의미를 가진 스택은 후입선출[LIFO (Last In First Out)] 입니다. 한 방향으로만 입력할 수 있으며 구조 중간에 값을 끼어 넣어 저장할 수 없는 한쪽이 막힌 상자와 같습니다. 같은 크기의 자료를 정해진 한 방향으로만 Push, Pop이 가능합니다. 자료를 넣을때가 Push이고, 자료를 뺄때가 Pop입니다.. 예를 들자면 웹 서핑을 한다는 가정하에 방문한 페이지에 로그가 남을 것입니다. 마지막에 방문한 페이지에서 뒤로가기를 했을때 바로 전 페이지로 이동하는게 스택 입니다. 무언가 실행취소(Ctrl+Z) 또한 같은 예 입니다. 큐 - 대기줄 이라는 의미를 가진 ..

2023.01.06 TIL(네트워크 CS Q&A 정리)

💭 HTTPS HTTP는 클라이언트 (웹 브라우저) ↔ 서버 사이의 요청/응답 프로토콜 HTTPS는 하이퍼 텍스트 전송 프로토콜 보안, HTTP 프로토콜의 보안 버전 SSL을 사용하면 암호화를 할 수 있고, 통신하려는 상대를 보증할 수 있다. HTTPS는 SSL(Secure Socket Layer)을 이용한 HTTP 통신 방식 SSL 통신과정 CA(Certificate authority)란? Client Server 통신에 앞서 Server는 CA에서 인증서를 받는다. 공인된 기관에서 Server가 믿을 수 있는 서버인지 보증하는 SSL 보증서를 발급한다. 자체 CA (사설 CA)로도 SSL 인증서를 발급할 수 있다. 사설 CA도 HTTPS 통신이지만 브라우저 입장에서는 안전하지 않다고 판단한다. 통신과..

2023.01.05 TIL(Django Q&A 정리)

16. Django의 기본 기능을 사용하는 것과 JWT를 사용하여 로그인 기능을 구현하는 것에는 어떤 차이점이 있습니까? 1. Django의 기본 기능을 이용한 로그인 세션 방식 기본 세팅을 통해 내장함수를 이용한 간단한 로그인 구현 논쟁의 여지가 있지만 세션로그인은 쿠키라는 접근 가능한 곳에 저장한다는 점에서 안정성이 떨어짐 이에 대한 대안으로 세션 쿠키에 접근을 차단 2. JWT를 이용한 로그인 JWT(JSON Web Token)를 이용한 토큰 방식 로컬스토리지에 저장 settings.py에 jwt 토큰을 이용한 인증을 하겠다는 설정 필요 REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework_simplejwt.authentica..

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..