본문 바로가기

분류 전체보기

(204)
프로그래머스 - 배달 https://school.programmers.co.kr/learn/courses/30/lessons/12978 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 설명 N개의 마을로 이루어진 나라가 있습니다. 이 나라의 각 마을에는 1부터 N까지의 번호가 각각 하나씩 부여되어 있습니다. 각 마을은 양방향으로 통행할 수 있는 도로로 연결되어 있는데, 서로 다른 마을 간에 이동할 때는 이 도로를 지나야 합니다. 도로를 지날 때 걸리는 시간은 도로별로 다릅니다. 현재 1번 마을에 있는 음식점에서 각 마을로 음식 배달을 하려고 합니다. 각 마을로부터 음식 주문을 받으려고 하는데, N개의 마을 중에서 K 시..
프로그래머스 - 무인도 여행 https://school.programmers.co.kr/learn/courses/30/lessons/154540 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 설명 메리는 여름을 맞아 무인도로 여행을 가기 위해 지도를 보고 있습니다. 지도에는 바다와 무인도들에 대한 정보가 표시돼 있습니다. 지도는 1 x 1크기의 사각형들로 이루어진 직사각형 격자 형태이며, 격자의 각 칸에는 'X' 또는 1에서 9 사이의 자연수가 적혀있습니다. 지도의 'X'는 바다를 나타내며, 숫자는 무인도를 나타냅니다. 이때, 상, 하, 좌, 우로 연결되는 땅들은 하나의 무인도를 이룹니다. 지도의 각 칸에 적힌 숫자는 식량을..
내일배움캠프 AI트랙 수료 후기! 바로 어제(10/28) 길다면 길고 짧았다면 짧았던 4.5개월간의 부트캠프가 끝이 났다. 1개월의 사전캠프를 포함하면 5.5개월이니 약 반년간 진행되었다. 정규 공부 시간은 평일 아침 9시부터 저녁 9시까지 12시간이었지만 특별한 일이 없으면 정규시간 전, 후와 주말에도 공부를 했으므로 실질적으로는 그보다 더 많이 했다고 할 수 있을 것이다. 캠프 선택 계기는 지인의 추천이었다. 아는 분에게 앞으로의 진로에 대해 상의를하다가 개발자에 관심이 생겼고 그분에게 추천을 받아서 참가하게 되었다. 캠프를 하면서 가장 좋았던 점은 비전공자도 빠른 시간 내에 커리큘럼을 따라갈 수 있다는 점이다. (당연히 단순히 하라는것만 하는 것이 아니고 개인의 노력이 동반되어야겠지만 그건 당연한거니까...)내 경우에 대해서 설명해..
최종프로젝트 7일차 최종프로젝트가 본격적으로 시작된지 어느새 일주일이 지났다.내일까지는 프론트엔드의 기본 뼈대를 작성할 예정이며 아래는 오늘 공부한 내용에 대한 트러블슈팅이다. 상황: 프론트엔드에 특정 페이지와 연결되는 하이퍼링크를 추가하려고 함. 당연히 특정 요소의 고유한 번호가 필요했고 pk(id)를 사용하기로 결정하고 링크를 연결함.문제: 그러나 계속해서 null을 출력하는 오류가 발생했고 필요한 pk값을 찾을 수 없어서 링크를 작성하지 못함.원인: 프론트의 문제가 아니라 백엔드의 문제였음. 백엔드에서 직렬화를 할 때, serializer에서 id필드를 포함하고 있지 않았음.해결: 시리얼라이저를 수정하여 id필드를 포함하도록 함. 이전 serializerclass AverageGradeSerializer(seriali..
최종프로젝트 6일차 오늘은 주말간 연습했던 엑시오스를 프로젝트에 적용하여 프론트를 구현하려했고 그에 따른 시행착오가 있었다. 아래는 시행착오에 대한 트러블슈팅이다. 상황: 프론트엔드 테스트를 위해 axios를 프로젝트에 도입하려함. 이 과정에서 CDN과 번들링 중 선택해야하는 상황, CDN보다 번들링이 안정적일 것이라고 생각하여 번들링을 선택. 문제: Node.js를 설치하고 parcel을 선택하여 프론트엔드 작업을 진행 이 과정에서 시간이 오래 소요되었고 drf에 집중하자는 프로젝트 초기의 계획에서 멀어지게 됨. 해결: 회의 결과 drf를 더 명확하게 다루고 추가기능을 더 많이 구현하는 것이 더 중요하다고 생각했고 번들링이 아니라 CDN을 사용하기로 결정함. 느낀점: 프론트엔드도 완벽하게 구현한다면 당연히 좋겠지만 프로젝..
최종프로젝트 4일차 오늘은 드디어 문서작성을 끝내고 본격적인 개발을 시작하게 되었다. 당연히 문제도 발생했는데 오늘의 TIL은 그것에 대한 트러블슈팅이다. 상황1: django의 환경변수 관리를 위해 django-environ를 사용하려던 중 .env에 입력한 SECRET_KEY를 제대로 인지하지 못하는 문제가 발생해결1: 공식문서를 따라서 해결해본 결과 env의 경로가 제대로 지정되어 있지 않았음 이에 따라서 베이스 디렉토리의 경로를 아래와 같이 수정함BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))  상황2: 문자열에 나누기를 시도할 수 없다는 에러메시지가 발생함해결2: 코드를 살펴보니 django의 기본 경로 결합이 ‘/’로 되어 있는 것을 ..
최종프로젝트 3일차 오늘은 회의를 통해서 사용할 데이터베이스를 설정하게 되었다. 그리고 현 상황에 따라서 사용할 두 데이터베이스를 비교해보았다. MySQL이 맞을 때:배우기 쉬움: 팀원들이 첫 프로젝트를 진행 중이라서, MySQL은 설치와 설정이 간단해 빠르게 익힐 수 있다. 학습 곡선이 낮은 게 장점이다.외부 API 연동: JSON을 사용하는 웹 애플리케이션 개발에 MySQL도 충분히 쓸 수 있다. JSON 타입을 지원하니 외부 API와의 데이터 연동에 문제없다.웹 개발 최적: 단순 읽기 작업이 많은 웹 애플리케이션이라면 MySQL이 성능과 속도 면에서 유리하다.PostgreSQL이 맞을 때:고급 데이터 처리: 외부 API에서 받은 JSON 파일을 다룰 때 PostgreSQL의 JSONB 타입이 빠른 검색과 조작에 유리하..
최종프로젝트 - 2일차 최종프로젝트 2일차가 진행되었다.오늘은 어제와 마찬가지로 기획을 중심으로 프로젝트를 진행했다.오늘은 전보다 더 적극적으로 튜터님의 피드백을 받을 수 있었고 덕분에 문서의 완성도를 많이 끌어올릴 수 있었던것같다. 가장 인상깊었던 점은 데이터베이스에서 이전에 놓쳤던 점을 집어주셨다는 점이었다.우리 조는 영화에 대한 리뷰를 작성할 수 있는 사이트를 목표로 하고 있는데 이때 영화에 대한 정보를 담고 있는 Movie라는 테이블 정의했는데 여기서 감독과 배우의 필드에 대한 의사결정이 필요했다. 현재에는 단순하게 각 영화에 대한 감독과 배우들에 대한 정보를 테이블에 담고 있었고 이것을 출력해주는 방식이었는데 튜터님이 해당 필드들을 다른 테이블로 분리하는 것이 확장성면에서 더 좋을것같다는 조언을 주셨다.  그것을 바탕..