분류 전체보기

    Python 선택정렬, 삽입정렬 알고리즘

    선택정렬 남아있는 데이터의 전체를 검색하여 가장 작은 데이터를 맨앞으로 보내면 된다. 시간복잡도는 O(N^2)이다. ARRAY = [1, 4, 2, 3, 7, 8, 5, 9, 1, 6] def sort(array): for startIndex in range(len(array)): minIndex = startIndex for i in range(startIndex, len(array)): if array[minIndex] > array[i]: minIndex = i array[minIndex], array[startIndex] = array[startIndex], array[minIndex] return array print(sort(ARRAY)) 삽입정렬 처리되지 않는 데이터를 하나씩 골라 적절한 위..

    파이썬(python) 코테 연습용 파일 읽는방법

    항상 자바 스크립트로만 코딩테스트를 보다가 최근 파이썬으로 언어를 바꿨다. 이유는 1. 자료 및 문제의 총량 차이 2. 문법에서 오는 간결함과 그로인해 얻어지는 시간적이다 이다. 특히나 vscode에서 디버깅을 통해서 변수값을 알수있는것도 마이너하지만 확실한 이득이라고 생각한다. 백준등의 문제에서는 input으로 입력을 받는경우가 많다. 이때, vscode에서 테스트케이스를 테스트할때 터미널에서 매번 타이핑해야하는것이 귀찮았다. 물론, 테스트케이스를 다른데 복사한다음에 ctrl c + v하면 되긴하겠지만 그런 원시적인 방법대신 나는 txt 파일을 읽게 함으로서 테스트케이스를 적용하고 싶었다 import sys sys.stdin = open( '~~~~~/iceMaker.txt', 'r') temp = l..

    대학교에서 온라인 강연을하다

    강연제의가 들어오다 작년 11월, 평소에 연락을 하고 지내던 교수님에게 연락이 왔다. '학교에서 졸업생 온라인 강연을 진행해 줄수있을까?' 라는 문의였다. 학교다닐때도, 동아리원을 대상으로 세미나도 종종 진행했었고, 탈잉등에서 강연을 가끔 하고 있었음으로 큰 부담없이 응했다. 처음하는것이다 보니 다소 생각은 많았지만, 새로운것에 도전하는걸 두려움보단 기대감을 조금더 느끼기에 컨텐츠를 준비하기 시작했다. 그리고 얼마뒤 11월 11일 빼빼로 데이로 강연 날짜가 잡히게 되었다. 첫 온라인 강연을 하러가다 강연은 학교에서 진행을 하기로 했었기에 다소 긴장과 조금 더 많은 기대와 흥분을 가지고 갔다. 도착을 하자 다른 강연자분들이 계셨고 간단한 통성명과 명함교환을 했다. 이때 약간 사회인?이 된 느낌을 받았다(후..

    온라인 개발 스터디 ToGather를 운영하며

    나는 왜 공부를 안할까? 많은 사람들에게는 각자 자신에게 맞는 공부환경이 있는거 같다. 누군가는 집에서 공부하는것이, 다른 누군가는 집앞에라도 나가서 공부하는것이 될수도 있다. 나는 그 중에서 밖에서 특히 사람들과 같이 공부할때 집중이 잘되는 사람이었다. 아무래도 제약이 없는 친숙한 나의 집은 자연스럽게 주의력이 분산이되고, 눈치볼 대상이 없어서 일지도 모르겠다. 혹은 그냥 내가 좀 더 나태해서라고도 생각한다. 어느날, Velog에서 한 글을 보게되었다. Gather Town이라는 서비스에 대한 소개글이었는데, 그것이 시작이었다. ToGather의 탄생 함께 공부할 사람이 필요했던 나는 Gather town을 이용한 온라인 스터디를 만들어서 학교후배와 작게 시작을 하였다. 처음에는 아는 사람들끼리 모여서..

    [React 공부노트 #4] 컨테이너 프리젠터 (Container-Presenter) 디자인 패턴

    Container-Presenter pattern only container 기존의 개발방법은 클래스컴포넌트와 스테이트를 만들고, api서버에서 필요한 데이터를 가져오는데,모두 한곳에서 구현한다. 이것은 비교적 작은 프로젝트에서 사용할때 주로 쓰인다. 이유는, 비지니스로직과 뷰가 한곳에 존재하게 되면 코드가 여러가지 기능이 섞여있기에 프로젝트가 커지게 되면 점점 유지보수하기가 힘들어진다. 그렇기에 유지보수를 위하여 뷰와 비지니스로직을 분리해서 따로 관리를할 필요성이 있는데, 그래서 사용하는것이 컨테이너 프리젠터(container-presenter) 디자인 패턴이다. 개인적으로 비지니스 로직과 뷰를 분리한다는 점에서 백앤드에서 자주쓰이는 MVC패턴과 유사함을 느꼈다. 컨테이너 프리젠터(container-p..

    암걸린_개발자 - <1> 아, 암걸리네 진짜; </1>

    살다보면 별의 별일이 다있다. 이 글은 20대 후반의 어느날에 갑자기 찾아온 작지않은 시련과, 그 시련을 어떻게 극복하는지에 대한 기록이자 회고록이다. 반갑습니다. 위의 사진은 필자의 올해동안 심었던 깃허브 잔디다. 필자 깃허브 구경하러가기 😉 (깨알 홍보) 촘촘하지 못해서 중년의 아저씨처럼 듬성듬성해서 탈모약을 생각나게 하지만, 그중에서도 유독 넓디 넓은 원형탈모 처럼 광활한 빈공간을 혹시 눈치 채셨는가? 바로 4월~5월, 그리고 7월말 ~ 8말까지 총 1달정도씩 비어있지 않는가? 궁금하지 않는가? (그렇다고 해줘요) 필자는 엠넷이 아니다. 무슨말이냐면 결론전에 쓸데없이 광고 넣고 질질 끌지 않는다는 말이다. 암 걸렸었다. 그래서 잔디가 비어지게 되었다. 요즘 흔히 암걸리는 소리 하지 말라는 드립을 하..

    [React 공부노트 #3] react에서 axios 사용해서 api와 통신하기

    Networking api.js 이라는 파일을 만들어서 api와 통신하는 코드를 몰아 넣을것이다. 그래야지 API 요청에 대한 비지니스 로직이 분산되지 않고 한곳에서 컨트롤이 되기에 유지보수성이 더욱 좋아진다. 나는 API서버와 axios를 사용해서 통신을 할것다 axios axios Promise based HTTP client for the browser and node.js www.npmjs.com 이 모듈은 HTTP통신을 보내게 할수 있는데, 이 모듈을 통해서 api서버에 원하는 요청을 보낸뒤에 받아오는 결과값을 사용할것이다. const api = axios.create({ baseURL: "https://api.themoviedb.org/3/", params: { api_key: "----", ..

    [TS] TS의 기초

    회사생활중 타입스크립트로 개발을 할일이 많이있었다. 타입스크립트를 기초부터 공부를 하며 세세한 사용법까지 공부를 내가 했는가? 나는 정말 타입스크립트를 쓸수 있다고 말할수 있는가? 라는 생각이 들었고, 한번 기초부터 놓친것은 없는지 공부를 해야겠다고 생각을했다. 공부했던 강의의 링크와 참고자료인 타입스크립트 핸드북 링크는 글의 맨 밑에 추가했으니, 한번쯤 꼭 살펴보길 바란다. 이글은 기본적으로 강의를 따라가며 정리한 내용을 바탕으로 한다. 추가로, 작성한 코드는 https://github.com/MinJunKimKR/practice-programming/tree/main/typescript 에서 확인가능하다. 왜 우린 타입스크립트를 배우나 에러는 런타임 전에 알수가 있다. 자바스크립트에 비해서 데이터 타..