본문 바로가기

프로그래밍

(11)
요즘 코딩테스트가 대세인 이유, 그리고 접근법 요즘은 대기업에서 프로그래머를 채용할 때 코딩 테스트를 보는 기업이 많아졌죠. 사실 그 코딩테스트도 알고보면 알고리즘 기반의 문제 해결능력을 보는겁니다. 왜 알고리즘 코딩테스트를 할까요. 문제 해결능력을 보기 위해서일까요. 원론적으로 보면 그게 맞긴 합니다. 하지만 진짜 이유는 시대가 변했기 때문입니다. 예전만 해도 프로그래밍을 하려면 그냥 언어 배우고 코드만 짜면 장땡이였습니다. 사실 수학 몰라도 옛날에는 프로그래밍 하는데 전혀 문제 없었습니다. input -> process -> output 이것만 내면 됩니다. 대표적인 예를 들까요. IT가 대세였던 때가 언제였죠? 요즘 말고요. 바로 2000년대 초반입니다. 그 때 인터넷이라는 것이 들어서면서 가장 많이 했던게 뭐였죠. 웹 프로그래밍이였습니다. 홈..
중소기업에서의 프로그래머 현 시대에서도 프로그래머를 꿈꾸는 사람들은 매우 많을 것입니다. 그리고 프로그래머가 갈 수 있는 기업도 많고, 분야도 매우 많이 있는 것이 현실이고요. 하지만 프로그래머라고 해서 모든 언어를 다 사용하는 것은 아니고, 모든 도구를 다 사용하는 것은 분명히 아닙니다. 매우 당연한 일이죠. 일단 H/W나 Infra를 관리하는 Administrator/DBA 등은 먼저 제껴두도록 하고요. 이와 같은 분야를 제외하더라도 프로그래머가 할 수 있는 분야는 매우 다양하기도 합니다. 먼저 하나만 물어본다면. 보유 기술은 무엇이 있습니까. 두 번째로 물어본다면, 보유 기술을 가지고 무엇을 만들 수 있습니까. 세 번째로 물어본다면, 그 만든 것이 얼마나 상업성이 되거나, 혹은 사용자들이 편리하게 사용할 수 있을까요. 회사..
기업에서 Python 프로그램을 만들 때 참고할 사항 안녕하세요. 어떤 기업이 있습니다. 기업에서 뭔가를 만들고 싶은 것이 있겠죠? 만들고 싶은 것이 있어요. 그것이 어떠한 IT 서비스가 될 수가 있겠죠. 언어를 무엇을 쓸까요. 개발자는 누구를 뽑을까요. 외주를 줄까요 아니면 자체 개발로 할까요. 돈은 얼마나 들고 공수는 얼마나 들까요 문제는 없을까요. 이런 부분에서부터 근본적으로 사람들은 고민하게 됩니다. 또 고민하게 되겠죠. 요즘 AI다 딥러닝이다 머신러닝이다. 사실 요즘도 아니죠. 한 3년 전쯤부터 유행했던 이야기죠. 저 또한 딥러닝쪽 공부를 막 시작한건 사실이지만 여하튼 뭐 그렇다는 겁니다. 그래서 그거 하려면 뭐 써야 하는데? R이나 Python 써라 이런말 많이 들었을거에요. 사실 맞는 말이에요. 그러니까 위와 같은 대답이 나왔겠죠. 그럼 Pyt..
프로그램 개발을 위한 순서 안녕하세요. 프로그램을 개발하기 위해서는 어떤 방식을 사용해야 하고, 어떤 순서로 진행해야 할지. 간단한 고찰을 해보고자 글을 써보겠습니다. 1. 제일 먼저 무엇을 만들 것인지를 정해야 되겠죠? 목표가 있어야 과정이 있는거고 결과가 있는 거니까요. 2. 다음은 개발 환경을 설정하는 것입니다. 개발 환경 설정은 크게 다음과 같습니다. 1) 개발 언어 및 프레임워크는 무엇을 사용할 것인가 2) 개발에 필요한 서버, DB 등 외부 환경요소가 필요한가, 필요하면 어떤것을 쓸것인가 3. 다음은 개발 방식을 정하는겁니다. 대표적인 접근 방식은 Top-Down / Bottom-Up 방식이 있습니다. 작은 요소부터 정하고 큰 요소를 정할 것이냐(Bottom-Up) 큰 요소를 정한 다음 작은 요소를 정할 것이냐(Top-..
최근에 구현한 Word Cloud 회사에서 쓰고 있는 생산품을 가지고 만들어 보았는데, 사실 저 코드만 가지고는 무엇을 의미하는지 알 수 없으므로 사외비 거리조차도 안돼서 올려보았습니다. 회사에서 필요로 해서 만든건 아닙니다. 언제나 그랬듯 제가 개인적으로 공부하는 과정에서 만들어 봤을 뿐. 이번에 Python으로 처음으로 Word Cloud를 구현해봤는데, 생각보다는 쉽더라고요. 다만 여기에 자세한 방법을 구체적으로 올리지는 못할 것 같습니다. 왜냐하면 구현 방법 자체가 사실상 다른 분들의 블로그에 있는 내용을 거의 참조한 것이다 보니, 무단으로 도용해서는 안될것 같기 때문이랄까요. 그래서 이 글에서는 다른 분들의 저작권을 해치지 않는 의미에서 큰 틀에서 만드는 방법을 간단히 제시해볼게요. 1. 필요한 패키지 및 모듈 from word..
AWS DynamoDB in Python (Boto3) - #4. Query & Scan 이번 글에서는 Amazon Web Service(AWS) 에서 DynamoDB를 사용하는 방법을 Python을 이용해서 다루도록 하겠습니다.처음에 AWS Python 카테고리에서 DynamoDB를 다루고자 했던 것은 아니였지만, 이번 회사에서 기술보고서를 작성하는 과정에 있어서 주제를 DynamoDB를 하다 보니까 블로그에도 같이 다루는 것이 좋을 것 같아서 올려봅니다. 2018/06/03 - [Onik Lab./AWS Python] - AWS DynamoDB in Python (Boto3) - #1. 소개2018/06/03 - [Onik Lab./AWS Python] - AWS DynamoDB in Python (Boto3) - #2. 테이블 관리2018/06/03 - [Onik Lab./AWS Pyt..
R Programming - (3) kNN Model 그동안 머신러닝 - R Programming 관련하여 글이 많이 없었던 것 같습니다. 여러 가지 이유가 있겠습니다만, 1. 최근에 중국출장을 갔다왔다.2. 업무적으로도 시간적 여유가 없었다.3. 게을렀다. 아마 이 세가지 정도로 분석되는데, 역시 아무래도 3번이 가장 큰 비중을 차지하겠지요.좀 더 부지런해져야 할 것 같습니다. 지난번에는 Machine Learning 부분에 kNN 모델에 관한 글을 쓴 적이 있었고, 이번에는 이를 R Programming으로 구현해 본 것입니다.물론 제가 임의대로 구현했다기 보다는, CRAN에 있는 기본 예제를 가지고 매우 간단하게 실습한 내용이고,이 내용을 토대로 kNN 모델을 R에서 어떻게 구현하는지를 응용할 수 있겠지요. kNN Model이 무엇인지 궁금하신 분들은..
머신러닝 / 빅데이터 연구를 시작하는 방법 - (3) R Programming 이 글로 바로 넘어오신 분이 계신다면, 바로 앞의 개요 부분을 한번은 참고해주시기 바랍니다. 제가 어떤 배경으로 이런 글을 썼는지를 알 수 있을 것입니다. 2016/11/19 - [Onik Lab./General] - 머신러닝 / 빅데이터 연구를 시작하는 방법 - (1) 개요 2016/11/19 - [Onik Lab./General] - 머신러닝 / 빅데이터 연구를 시작하는 방법 - (2) 왜 머신러닝과 빅데이터인가? 앞의 글을 요약하면 다음과 같습니다. 현재 제가 준비하는 부분은 머신러닝을 통해서 AI를 학습 및 연구하는 것입니다. 그리고 빅데이터는 이러한 머신러닝 연구를 위한 또다른 방법이 될 수 있는 것이고요. 사실 일개 개인이. 그것도 심지어 백수도 아닌 일반 직장인이, 어디서 그렇게 큰 데이터를..