본문 바로가기

분류 전체보기360

개발서버 환경을 위한 오픈소스(vagrant, docker) 업무를 할 때 사내 서버컴퓨터에 개발환경구축을 위해 리눅스(OpenSUSE)를 설치하고 설정삽질을 여러번했던 기억이난다. 나중에 또 설치할 때 그짓을 반복하고 또 반복하고 했었는데 무지한 내 자신을 반성해야겠다. 출장 갈때는 노트북에 개발환경을 급하게 구축하려고 Virtual Box 나 VMware 를 설치해서 또 삽질을 하곤했는데 이런 좋은 오픈소스를 이제야...사용하다니...지금이라도 알아서 다행이다. 먼저 Docker 는 컨테이너 개념으로 생각하면 이해하기 쉬운데, 부두에는 엄청나게 많은 컨테이너들이 있고 내가 싣고 싶은 것들을 배에 적재한다고 생각해보자. 예를들어 1번 배에는 Ubuntu+Apache+MySQL을 싣고, 2번 배에는 Ubuntu+Apache+Oracle 을 실을수 있다. 자세한 내.. 2017. 8. 20.
Socket 통신 서버-클라이언트 환경을 만드는 과정 [서버]1. Socket 생성2. Socket 에 이름 연결(bind)3. 클라이언트의 연결을 기다림(listen)4. 클라이언트를 받아들임(accept) [클라이언트]1. Socket 생성2. 서버에 연결시도(connect) PF_INET : 프로토콜 체계를 표현할 때 사용AF_INET : 주소 쳬계를 표현할 때 사용 2017. 8. 7.
[Refactoring] Code Refactoring? 리팩터링(refactoring)은 소프트웨어 공학에서 '결과의 변경 없이 코드의 구조를 재조정함'을 뜻한다. 주로 가독성을 높이고 유지보수를 편하게 한다. 버그를 없애거나 새로운 기능을 추가하는 행위는 아니다. 사용자가 보는 외부 화면은 그대로 두면서 내부 논리나 구조를 바꾸고 개선하는 유지보수 행위이다. 정의는 위처럼 되어있으나, 실무에서 리팩터링은 어떻게 해야할까?? 먼저 책부터 보자. 마틴 파울러가 저술한 리팩터링 책을 읽고 내용을 정리하면 조금이라도 가닥이 잡힐 것 같다. 일단 실무에서는 함수, 클래스, 비즈니스모델별로 수준에 따라서 진행할 예정이다. 책을 보고 더 좋은 아이디어가 생기면 그때그때 변경해 나가면 된다. 간단한 코딩룰이라도 처음에 정해서 개발했다면, 좀 더 유지보수가 잘된 코드가 되.. 2016. 12. 3.
[Qt] Qt 프로그램 배포(release) 방법 Qt 로 만든 프로그램을 배포 하고 싶은 방법중 하나는 dll 을 포함하여 실행파일과 함께 배포하는 방법이다.이 방법이 가장 간단하게 배포 가능한 방법이다. 1. Qt 프로젝트를 Release 모드로 빌드한다.2. Release 모드로 빌드하면 Release 폴더가 새로 생성되고 해당 폴더내에 exe 파일이 실행파일로 사용된다.3. 어떤 dll 파일들이 필요할까??? 내 프로젝트의 경우 sql 도 있고 다른 윈도우 사용자에게 배포하기 위해 필요한 것들을 정리했다. - Qt 버전에 따라서 약간 파일명이 다르지만 대부분 비슷하다. - Sql 을 사용하기 때문에 라이브러리와 플러그인 두가지가 필요하다. Qt5.sql.dll 과 sqldrivers 폴더에 qsqlite.dll 을 복사한다. - 다른 윈도우에서 .. 2016. 8. 20.