분류 전체보기

    [자료구조] 그래프 DFS/BFS Python pseudo코드로 이해하기

    Understanding DFS/BFS Algorithm through python pseudo-code 비전공자로서 자료구조를 공부하다보면 실제 문제에 적용하기 힘든 경우가 많다. 특히 입문자로서 코딩테스트 빈출 유형인 DFS / BFS는 단순히 이론을 공부하거나 다른 사람들의 코드를 보는 것으로 실력을 쌓는 것은 꽤나 먼 일처럼 느껴진다. 필자의 경우 Graph문제에 대해 깊이 우선 탐색(DFS) / 너비 우선 탐색(BFS) pseudo-code를 이해하는 것이 효과적이었어서 정리할 겸 포스팅하게 되었다. DFS 깊이 우선 탐색의 경우 두 가지 방법이 존재한다. 재귀적으로 문제를 해결하는 방식과, 반복 구조로 문제를 해결하는 방식이다. 재귀적으로 깊이 우선 탐색을 수행하는 방법 def recursiv..

    N개의 연속된 자연수 리스트에서 인접하지 않은 m개 뽑기

    From N consecutive lists of natural numbers, pick m that are not adjacent. 코딩테스트 대비를 위해 Heap / Queue / Stack의 선형 자료구조 문제를 풀다 보면 대부분은 0번째와 마지막 인덱스만의 예외 처리로 해결되는 경우가 많다. 문제를 풀면서 많이 나오는 듯한 느낌인데, 비슷한 유형의 예외처리가 쉽지 않아 공유해보고자 포스팅하게 되었다. [1,2,3,4,5,6,7] 과 같이 연속된 N개의 자연수에서 m개를 뽑을 때 연속된 자연수가 없는 경우만 뽑아내기 여러번 등장하는 알고리즘인 것 같은데, 생각보다 해결하기가 쉽지 않아 해당 주제에 대해 여러번 고민하다 문제를 해결했다. from collections import deque from ..

    [C# .NET] VScode에서 C# 사용하기 (Apple Silicon Mac)

    [C# .NET] VScode에서 C# 사용하기 (Apple Silicon Mac)

    Using C# in VScode 데이터사이언스를 공부한 사람이라면 언젠가 한번 쯤은 실무에서 난관을 겪게 된다. 통계 모델링 / 머신러닝 / 딥러닝 등으로 의사결정을 내린다는 일이 고상하기는 하지만, 모델링을 위한 데이터도 없고 니즈도 없는 경우가 대다수이다. 특히 비즈니스 관점에서는 더욱 괴리감이 많이 느껴지는 분야가 데이터 사이언스이다. 다만 데이터 사이언스를 실무에 연관시키는 방법이 있다면, MLOps라 불리는 방법이다. MLOps란 머신러닝을 통한 의사결정을 니즈에 맞게 시스템화시킨 개념으로, 머신러닝 서비스를 제공하는 개념이라고 생각하면 된다. 즉 MLOps를 하기 위해서는 시스템 구축을 배워야 하고, 이를 위한 대표적인 언어로는 Java와 C#이 있다. 굳이 하나를 배워야 한다면 Java S..

    [AWS EC2] Linux 서버 구축하고 터미널에서 연결하기(프리 티어)

    [AWS EC2] Linux 서버 구축하고 터미널에서 연결하기(프리 티어)

    Building my own Linux Server 대부분의 개발은 Linux서버에서 이루어지지만, 일반인들은 Linux 환경을 쓸 일이 거의 없다. 다만 어느 정도 개발을 해야 하는 사람이라면 Linux 환경에 길들여지는 일은 매우 중요하다. Unix계열 os를 써보고 싶다는 마음에 Mac을 쓰게 되었지만, 개인 PC에서 Linux를 사용하는 것이 와닿지 않았다. 특히 회사에서 서버를 새로 발급받는 일을 맡은 적이 있었는데, 네트워크부터 보안까지 알아야 할 지식이 산더미였던지라 가상 서버를 사용한다면 좋은 공부가 될거라 생각했다. 1. AWS 계정 생성 & 등록 https://aws.amazon.com/ 클라우드 서비스 | 클라우드 컴퓨팅 솔루션| Amazon Web Services AWS IoT에 대..

    [MySQL] mysql.sock로 인한 connection fail

    DBeaver를 통해 MySQL로 접속하려니 갑자기 연결 오류가 생겼다. 데이터베이스 IDE가 단일화되면서 MySQL Workbench를 지웠는데, 그 과정에서 mysql.sock이라는 파일이 같이 지워졌지 싶다. 어찌되었건 구글에 쳐보니, 해당 오류는 다양한 원인에 의해 발생하는 오류인지라 마음 졸였는데 다행히 서버를 구동하는 명령어 하나로 문제가 해결됐다. $mysql.server start $mysql -uroot -p 위 방식으로 해결되지 않는 문제일 경우 아래 링크들을 참조하면 좋을 것 같다. https://aldehyde7.tistory.com/176 [MySQL] 리눅스 환경에서 /tmp/mysql.sock 파일이 삭제되었을때 서버 용량 문제등으로 해서 한순간의 실수로 /tmp/mysql.s..

    [MySQL] 연습용 개인 서버 구축하기 (Mac)

    [MySQL] 연습용 개인 서버 구축하기 (Mac)

    Building a personal MySQL Server for practice in MacOs 실무에서 가장 많이 쓰이는 것이 데이터베이스이기에, 예전부터 SQL을 깊게 공부해보고 싶다는 생각을 많이 했다. 관련 자격증도 공부해보고 실무에서 SQL을 간접적으로도 사용하였지만 데이터 처리는 주로 Python의 Pandas를 이용하는 만큼 query를 직접 다뤄볼 일은 많지 않았다. 해서 개인용 DBMS를 구축하여 공부해보기로 했다. Mac을 사면서 첫 계획은 DB서버 역할을 하는 Windows 서버 하나를 구축하여 MS-SQL을 올려놓고 사용해 볼 계획이었으나,,, Apple Silicon칩은 docker를 활용해도 Windows 기반의 MS-SQL을 셋업하기가 힘들었다. 이에 대중적인 MySQL을 개..

    같은 column에서 numeric 자료만 골라내기

    Picking out numerical data from the same column in pandas (Conditional astype) DataFrame 작업을 하다 보면 하나의 column에 여러 형태의 data가 포함될 때가 많다. 특히 수치형 자료와 문자형 자료가 섞여 있는 경우는 매우 흔한데, 이런 케이스는 문자형 자료가 수치형 자료를 포괄하는 개념이기 때문에 연산의 필요성이 생길 때 문제가 생기는 경우가 많다. 이럴 때, 직관적으로 아래와 같이 Data Type을 변경하여 사용할 수 있는 경우도 많지만 그렇지 않은 경우도 있다. df['datetime'] = df['datetime'].astype('datetime64[ns]') # 날짜 / 시간형 자료로 변환하기 df['Value'] = ..

    Parallels를 이용하여 Mac에 Windows Server 구축하기

    Parallels를 이용하여 Mac에 Windows Server 구축하기

    Mac을 구입한 후 처음으로 쓰는 글이다. 보통 개발용 서버라고 한다면 Linux서버를 사용하는 것이 일반적이고 그래야만 한다. 다만 Windows Server를 업무로서 사용해야 하는 입장인데다가, Mac을 사용하게 되면서 개인 Windows Server를 구축해보고자 하는 욕심이 생겼다. 용도는 학습용이며, Visual Studio 사용 & MS SQL Server 가 주 목적이다. 사용법은 어렵지 않다. 구매 후 라이선스를 이용하여 Windows Server를 구성하여 깔면 된다. 다만, Apple Silicon 칩을 사용하는 유저들이라면 Microsoft 페이지에서 이미지 파일을 다운로드 받아야 한다. 자세한 과정은 아래 링크를 참조하면 된다. https://kb.parallels.com/1253..