본문 바로가기

전체 글

작은 소프트웨어 회사의 생존 방법(?) 지난 2년 4개월을 뒤돌아보며... 약간은 심심했던 프리랜서 생활을 청산하고 다시 마지막이라 생각하고 열정을 불태웠던 회사생활이 마지막아니라 거처가는 기록으로 남겨지게 되었다. 2년 4개월간 정말 앞만 보고 열심히 달렸던 것 같다. 짧은 시간에 정말 많은 것들을 했다. 처음 회사를 왔을 때 느낀 점은 7년전 보다 괜찮아 진 것이 없구나 였다.(7년전에 1년 2개월 근무를 하다 아이가 다쳐서 낙향했었다. 당시에는 그냥 팀장 밑에 있는 내가 맡은 부분만 신경쓰면 되는 과장이였다.) 30명 전후의 개발자가 운영되는 회사인데 대부분의 개발자들이 마지못해 다닌다는 느낌이였다. 매일 야근에 야근을 하며 일을 처리하고 있었고 직원들이 회사에 대해서 이야기할 때 좋은 이야기보다 불만의 이야기를 더 많이 하며 지내고 있.. 더보기
주석?! 본 코드는 아쉽게도 정말 실전에서 사용되는 코드이다. 오늘 발견된 웃픔 코드이다. 위에 코드에는 여러가지 문제가 많지만 그중에서 주석에 대해서 이야기를 하고자 한다. 1. JavaDoc 주석 상기 소스코드를 보면 상단에 JavaDoc을 위한 주석이 포진해 있고 하위에는 각 스텝별로 주석이 달려있다. JavaDoc이 왜 필요할까 부터 우리는 생각을 해봐야 될 것 같다. JavaDoc은 소스코드상에달린 JavaDoc의 주석 규칙을 따르게 되면 코드를 작성하며 나타나는 코드 컴플리에서 변수가 무슨 형인지 어떤 역활을 하는 메서드인지 도움말을 표기해줄 수 있는 아주 유용한 도구이다. 이런 도구가 없으면 별도로 메서드의 선언과 그 파라메터에 대한 정의와 도움말을 작성해야되며 이는 실제 메서드의 정의와 작성의 일치.. 더보기
프로시저에 업무로직(비지니스로직)을 넣으면 안되는 이유 프로시저에 업무 로직을 넣으면 안되는 이유 OKKY에 올라온글에 댓글을 달 여유가 조금 생겼다. 프로그램 소스코드에 로직을 넣는게 맞느냐 DB레벨에 있는 프로시저에 로직을 넣는게 낫느냐. 각각의 장단점을 질문하는 글이 올라 왔었다. IT개발자들은 조심스럽다. 그래서 다들 각각의 장단점이 있다는 식으로 덧글이 조금씩 있었다. 하지만 대체적으로 DB프로시저에 로직을 다는 것에 대해서 꺼려하는 듯한 글이 달렸다. 장점으로는 서버를 재배포하지 않아도 된다는 것들이 주를 이루었다. 나도 덧글을 달아보았다. 프로시저를 사용하는 장점은 속도이다. DB레벨에서의 속도에서 프로시저가 가장 빠르다. 데이터베이스는 SQL을 실행하면 나름 해석이라는 과정을 거친다. 그리고 데이터를 어떻게 긁어올지 판단을 하게 된다. 프로시저.. 더보기
흑속에서 진주찾기 시작 juso.go.kr 에서 제공하는 주소검새 API를 이용하는 아주 기초적인 수준의 코드에서 어떻게 라이브러리화를 하고 TDD를 적용하는지 차례대로 발전해나가는 과정을 사내 교육을 위해서 틈틈히 준비하다 여기에도 한번 남겨본다. 본 소스는 초급개발자들에게 도움이 되는 과정일 것이다. 단순하게 어떤 기능만을 만들었던 내소스가 어떻게 가치를 가지는 라이브러리가 되어 재사용이 되고 TDD를 적용하여 매번 테스트의 편의성을 추구하게 되는지 보여준다. 단, 일련의 과정을 나누는 기준은 오로지 나의 경험에 의한 과정이기 때문에 이것이 항상 정답은 아니다. 여기서 이야기하고자 하는 것은 기능 자체에서만 봤다면 단순한 기능이지만 실제 재사용성을 어떻게 극대화 할 수 있는지 만약 기회가 된다면 이런식의 접근이 도움이.. 더보기
踏雪野中去 - 답설야중거 : 눈덮힌 들판을 갈때... 첫직장에서 처음 들어간 회사는 지역의 규모있는 회사의 독립 법인이였다. 계열사의 전산개발을 담당하는 회사였는데, 그룹으로 운영되니 회사의 전체적인 분위기는 IT회사 답지 않았다. 오래된 회사여서 나름 역사가 있었다. 사사라고 해서 회사역사 책도 있었고 사시라고 해서 회사시도 있었다. 회사 시가 김구선생님의 애송시로 유명한 답설야중거... 였다. 그 회사에서는 멋있게 번역을 하여 회사 시로 삶았는데 정말 본문보다 멋있는 해석이였던 것 같다. '눈 덮힌 들판을 나홀로 가노라. 험하고 먼길 꼭 갈 필요는 없으나 내가 걷는 이길이 후인의 이정표가 되기에...'라는 해석이였던 걸로 기억한다. 생전 그런것도 모르고 살다가 들어보니 참 멋있는 시였다고 생각했다. 그런데 알고보니 이게 임연당(臨淵堂)이라는 조선 후기의.. 더보기
닷넷 코어 Docker를 이용하여 게시 Windows가 리눅스를 품어버림으로서 리눅스 기술에서만 사용할 수 있는 도커가 윈도우즈에서도 가능하게 되었다. 그런데 여기에 더하여 VisualStudio 2022로 개발을 하면 도커를 이용한 테스트 및 배포까지 가능하다. 1. WSL 설치 Windows 10 21H1 이후 버전은 WSL(Windows Subsystem for Linux) 기술이라고하여 윈도우즈위에서 리눅스를 사용할 수 있다. WSL 기술은 가상화기술을 기반으로 작동을 한다. 가상화를 사용할 수 있는 하드웨어 환경이면 Windows의 Hyper-V 를 사용할 수 있다. WSL은 Hyper-V를 이용하여 윈도우가 가동되는 상태에서 가상으로 리눅스를 사용할 수 있도록 해주는 기술이다. WSL은 현재 WSL2까지 버전이 나와있는 상태이다. .. 더보기
Subversion 셋팅 아직 Subversion을 사용하는 이유 요즘 SVN을 왜 쓰냐 싶겠지만 아직 회사의 소스관리 툴은 SVN이다. 레드마인과 연계되어 이슈번호까지 관리되고 있다. Github로 전환을 해볼까 싶어서 Redmine과 연동 테스트를 했는데 실패했다. 휴일에 하루정도 시간을 들여서 이것저것 해보았는데 실패하여 회사 소스서버도 Github로 넘어가지 못 했다. 연동이 중요한 이유는 Redmine으로 관리된 이슈가 소스서버랑 연계가 되면 엄청난 파워를 자랑하기 때문이다. Redmine과 같은 툴을 이슈를 관리하는 용도로만 쓰고 소스는 소스대로 별개로 관리가 된다면 이슈관리하는 툴에서 소스의 변경을 알 수가 없다. 하지만 연계가 되는 순간 이슈에 의해서 소스가 변경된 것을 알 수 있으며, 소스의 변경작업은 이슈를 기.. 더보기
GIS 프로젝트 시작 with learning ReactJS 나는 어쩌다보니 세월이 흘러 팀장이 되었다. 우리팀은 두가지 일을 하고 있는데 하나는 빌링이고 하나는 GIS이다. 둘의 성격은 좀 동떨어져있다. 굳이 공통점을 찾는다면 둘다 C#을 필요로한다는거? 사실 C#이 아니어도 관계가 없다. 하지만 어쩌다 보니 두 프로젝트는 C#를 기본으로 가져가는 상황이 되었다. 빌링은 별다른 프레임워크가 필요가 없다. 그냥 C# Winform으로 개발을 하면된다. WPF도 있고 웹개발도 있겠지만 어쩌다보니 Winform 개발을 기반으로 8~9년전에 개발이 되었고 최근 개편을 하는 프로젝트도 실행환경의 문제로 포팅만 계획하여 진해하였기 때문에 C# winform 기반으로 포팅이 진행이 되었다. 작년부터 6월까지 빌링 포팅을 하는 쪽을 관심을 가지고 진행을 하고 있었다. 그런 와.. 더보기