목록WHAT I LEARN/TIL (79)
Nonamed Develog
어떤 문제가 있었나?예전 웹개발 종합반을 수강하고 있을 당시, 팀 프로젝트로 플라스크를 이용한 간단한 웹페이지를 개발했다. 하지만 가상환경과 의존성 관리에 대해 제대로 이해하지 못한 상태였고, git pull 할 때마다 프로젝트 환경에서 설치해야 하는 라이브러리들이 제대로 설치되지 않아 오류가 발생했다.무엇을 시도했나?이 문제를 해결하기 위해 팀원들에게 도움을 요청했더니, 한 팀원이 아래의 명령어를 추천해주셨다.pip install -r requirements.txt 이 명령어를 사용하면 프로젝트에 필요한 모든 라이브러리를 자동으로 설치할 수 있다고 설명해 줬다. 당시 나는 이 명령어의 의미를 깊이 있게 이해하지 못했지만, 문제를 해결하기 위해 그대로 따라 했다.어떻게 해결됐는가?"pip install ..
어떤 문제가 있었나?사전캠프, 웹개발, 파이썬, 자료구조 알고리즘, CS & SQL까지 달려오고 이제 Django 주차를 앞두고 꼭 정리하고 넘어가야겠다는 부분이 있었는데, 바로 데코레이터 Decorator였다. 팀 프로젝트를 할 때 의미도 모르고 사용했었고, 클래스를 학습할 때 사용하곤 했었지만 이해하고 있다고 생각이 들지 않는 부분이었다. 더불어 우연히 튜터님의 데코레이터의 중요성을 강조하는 연설을 들어서 꼭 정리하고 넘어가야겠단 생각을 했다.무엇을 시도했나?데코레이터를 이해하기 위해 classmethod와 staticmethod의 개념부터 차근차근 정리해 보기로 했다. 기본적인 사용법과 함께 차이점 및 용도를 살펴보고, 데코레이터의 원리를 이해하기 위해 간단한 데코레이터를 작성해 봤다. 이를 바탕으..
어떤 문제가 있었나?CS & SQL 주차가 거의 끝나간다. 사실 알고리즘이 부족한 것 같아 알고리즘에 더 많은 시간을 할애하고, CS와 SQL을 등한시 했다. CS는 정보처리기사를 준비할 때 공부하면 되고, SQL 또한 SQLD 준비할 때 공부하고 파이썬에서 DB를 가공할 때 사용할 수 있는 정도만 공부하면 된다고 생각했다. 하지만 모의 기술 면접 시간이 다가오면서 발등에 불 떨어진 기분이었다.무엇을 시도했나?일단 튜터님 특강과 강의 자료로 학습을 하고, 부족한 부분을 온라인 강의를 들으면서 채워가려 했다. 하지만 양이 너무 많아 공부는 되겠지만 면접 준비에 효율적이지 않다고 판단하고 튜터님 방에 찾아갔다. 이미 나와 같은 생각을 한 사람들이 튜터님 방에 모여 있었고 어떻게 공부를 해야하는지에 대한 힌트..
어떤 문제가 있었나?지난주 스쿼드 3 알고리즘을 따라가기가 생각보다 벅차다 보니, 주요 내용인 그래프와 BFS, DFS에 집중하여 학습했다. 그래서인지 BFS 관련 문제를 풀 때, 지난주 스쿼드에서 살짝 언급된 deque를 사용하지 못해 찜찜함을 남기곤 했다. 풀이에 지장이 가진 않았지만 다양한 방법으로 풀기 위해서는 꼭 정리를 하고 가야겠다는 생각이 들었다.무엇을 시도했나?먼저 튜터님이 지난 스쿼드 세션에서 살짝 언급하신 원형 큐(Circular Queue)와 데크(deque) 필기를 보면서 정리하고, 추가 교재로 관련 부분을 복습했다. 마무리고 BFS 관련 문제를 풀어 내가 얼마큼 이해했는지 확인해 봤다.어떻게 해결됐는가?백준 2606번: 바이러스 문제를 BFS를 이용하여 풀어봤다. DFS로만 문제를..
어떤 문제가 있었나?1. 입력백준 1260: DFS와 BFS 문제를 활용하여 DFS, BFS를 구현해 봤다. 구현력의 문제인지 입력부터 막혔다. 그래프가 딕셔너리일 경우 알고리즘을 구현하는 법을 배웠기 때문에 딕셔너리로 입력을 받아야 하는데, 주어진 예시 입력으로 딕셔너리를 만들 아이디어가 떠오르지 않았다. 2. 방문 리스트수업 내용에 구현했던 것처럼 방문 리스트를 만들고 노드가 스택이나 큐에 들어갔었는지 확인하는 과정을 구현했다. 정점의 수만큼 0을 채운 방문 리스트를 만들어 노드가 스택에 들어가면 1로 바꿀 수 있을 것이다. 하지만 dfs는 출력이 잘 되는 반면, bfs는 출력이 되지 않았다. 3. DFS 구현(스택+행렬)세션에서 dfs를 스택과 반복문을 이용하여 구현을 했으므로 이 문제에도 sta..
새로 알게 된 점은 무엇인가?Graph?그래프란 수학에서, 좀 더 구체적으로 그래프 이론에서 그래프란 객체의 일부 쌍들이 '연관되어' 있는 객체 집합 구조를 말한다. 놀랍게도 그래프는 18세기 유럽의 프레겔 강과 그 다리들을 가지고 했던 놀이에서 유래되었다. 프레겔 강은 2개의 큰 섬이 있었고 섬과 도시를 연결하는 7개의 다리가 있었다. 이 당시 사람들은 "7개의 다리를 한 번씩만 건너서 모두 지나갈 수 있을까?" 라는 질문을 시작으로 많은 사람들이 풀이에 도전해봤지만 풀 수 있는 사람은 아무도 없었다. 오일러 경로대학시절 공학수학 시간에 날 엄청나게 괴롭혔던 레온하르트 오일러가 이 문제에 대해서 조사, 논문을 작성하게 되는데, 이것이 그래프 이론의 시작이라고 한다. 각 다리를 a~g 지역을 A~D 라고..
어떤 문제가 있었나?오늘의 알고리즘 코드카타 문제: [프로그래머스] Lv.1 기사단원의 무기 알고리즘 문제를 풀면서 처음으로 시간초과 오답을 경험했다. 최근 시간 복잡도를 배워서 그런지 연산이 비효율적이라 판단했다. 아래 코드는 number를 range 함수로 i로 반복하고, i의 약수의 개수를 세는 코드이다.def solution(number, limit, power): attacks = [] for i in range(1, number+1): count = 0 for j in range(1, i+1): if i % j == 0: count += 1 attacks.append(count) for i i..
1. Data Manipulation & Analysis Pandas & NumpyPandasDataFrames: 벡터화 연산, 직관적인 내장 메서드로 데이터를 효율적이게 정렬, 필터링, 그룹, 집계할 수 있다.Data Cleaning: 누락된 값, 불규칙성을 해결하여 AI 모델에 양질의 데이터를 공급할 수 있다.Data Filtering: 조건을 적용하고 데이터 세트의 범위를 쉽게 좁힐 수 있다.Merging and Joining: 다양한 데이터 세트를 원활하게 결합하여 범위를 넓힐 수 있다.NumpyArrays: 효율적인 배열 연산이 뛰어나며, 속도와 기능 면에서 기존 파이썬 리스트보다 우수하다.Vectorization:explicit loop(for/while)가 필요 없이 전체 배열에 동시 연산을..