본문 바로가기

기술

소프트웨어 품질 향상을 위한 소프트웨어 개발환경 구축 동기 및 필요성 2002년부터 소프트웨어 개발자로써 경력을 쌓아오면서 소프트웨어를 잘 개발하는 것보다 소프트웨어의 품질을 유지하고 효과적으로 배포하는 것에 더 큰 어려움을 느껴왔다. 올해는 특히 스타트업을 설립하면서 이러한 어려움이 더욱 표면으로 드러나기 시작했다. 산업체에 근무할 때에는 소프트웨어의 품질을 유지하고 운영하는 별도의 인력이나 팀이 존재했었기 때문에 비교적 손쉬울 수 있었으나, 인력이나 자금면으로 제한이 큰 스타트업에서는 직접적인 어려움으로 다가올 수 밖에 없었다. 소프트웨어를 개발하는 노력에 더불어 품질 유지와 운영의 노력까지 적은 인원이 감당해야 했기 때문이다. 이미 성숙한 기업들에 비해 소프트웨어의 규모가 좀 더 작을지라도 이러한 노력의 크기는 그에 비례하여 줄어들지 않기 때문에 품질.. 더보기
IntelliJ를 이용한 리펙토링 - Rename 편 (1/3) IntelliJ를 이용해 리펙토링을 수행하는 방법(Rename, Extract, Move)에 대해 총 3편으로 나누어 설명하도록 하겠습니다. 이번 편은 그 시작으로써 Rename에 대해 다룹니다. IntelliJ를 이용한 리펙토링주대연 목차 소개리펙토링이란?리펙토링의 필요성IntelliJ가 지원하는 리펙토링 기능RenameRename이란?Rename을 수행하기 위한 절차ExtractMove참고자료프로젝트 윈도우와 코드 에디터의 위치 소개 IntelliJ는 JetBrains 사에서 판매하는 자바를 위한 통합 개발툴 (IDE, Integrated Development Environment)로써 자바 이외에도 다양한 언어를 지원하며 소프트웨어의 품질을 향상 시키기 위한 리펙토링이나 소프트웨어 분석 도구, 효율.. 더보기
IntelliJ 13.0.2 에서 Gradle 파일과 Sync하기 소개 Android Studio는 최근에 추가된 공식 개발툴로써 아직 베타 버전이며, 현재 버전이 0.4로써 아직 가야할 길이 멀다. 실제로 사용하다보면 자잘한 버그를 많이 만날 수 있고, 좀 불안정한 모습이 있어서 본격적으로 사용하기는 좀 이르다. 그러나 Eclipse에 비해 매우 가볍고 확장성이나 사용성이 좋다는 이유로 지금 까지 사용해 오다가 Android Studio가 JetBrains의 IntelliJ Community 버전에 기반하고 있다는 소식을 듣고, 곧장 Android 개발 툴을 IntelliJ 13 Ultimate 버전으로 교체하였다. JetBrains 사에서는 Android 개발 지원 Plugin이 다른 소스 코드 Repository가 아니라고 공식적으로 이야기 하고 있으므로, And.. 더보기
Mac OS X 10.9.1, IntelliJ 13.0.3 에서 Android 프로젝트 생성 시 ANDROID_HOME 환경 변수를 찾지 못해 발생하는 오류의 해결 방법 IntelliJ 13 Ultimate 이란? JetBrains 사에서 개발한 통합 IDE로써, Eclipse 에 비해 가벼우며, 다양한 기능과 다양한 언어를 사용할 수 있도록 확장할 수 있어서 1년 정도 전쯤에 Eclipse를 대신해 사용하고 있다. 특히 Refactoring, Code Style Formatter, Code Completion 기능 등이 매우 유용하며, Version Control System 들과도 연동이 잘 되어 있다. 나는 Java, Ruby on Rails, Node.Js, Android 개발 환경을 모두 IntelliJ 13으로 통합하여 사용하고 있고, C/C++ 플러그인이 업데이트 되길 기다리고 있다. 문제가 발생한 환경 Mac OS X 10.9.1IntelliJ 13.0.2.. 더보기
Self-Adaptive Software Self-Adaptive는 구체적인 네 가지의 Self-* 속성을 대변 하는 단어입니다. Self-Adaptive에는 네 가지의 세부 항목은 Self-Configuration, Self-Healing, Self-Optimizing, Self-Protecting입니다. Self-Configuration는 시스템을 동적으로 재구성할 수 있는 능력입니다. Self-Healing은 시스템의 오류를 스스로 진단하고 수정할 수 있는 능력입니다. Self-Optimizing은 시스템이나 시스템의 구성 요소(예를 들면 컴포넌트)가 스스로 자신의 성능을 높일 수 있게 하는 능력입니다. 여기에서 성능은 처리 속도를 높이거나 메모리 소모량을 줄이거나 처리량을 높이거나 하는 등을 말합니다. 마지막으로 Self-Protecti.. 더보기
RoR 사용시 Rake 에서 발생하는 Library not loaded libmysqlclient.18.dylib 오류 해결법 우선 나의 작업 환경은 다음과 같다. Mac OS X 10.7.2 Ruby 1.9.2p180 Rails 3.1.3 mysql2 gem 0.3.11 RubyMine 3.2.4 얼마전부터 개발용 IDE를 Aptana Studio 3 에서 RubyMine으로 바꾸었는데, IDE 자체가 가볍고 기능도 더 직관적이라 매우 만족하며 사용하고 있었다. 그러던 중 문제가 하나 발생하였다. RubyMine의 Rake 명령어 자동 완성 기능은 꽤나 유용해서 자주 사용하던 것이었는데, 프로젝트 생성시 데이타베이스를 mysql로 선택하면 오류가 발생하면서 rake 명령어 목록을 불러오지 못하는 것이었다. /Users/ror/projects/restaurant/highline/ruby/1.9.1/bundler/gems/rail.. 더보기