본문 바로가기

728x90

DevOps.

(243)
'식스 시그마'의 이해 식스 시그마(Six Sigma)는 일종의 품질 관리 방법론이다. 결함을 발견, 제거해 현재의 공정, 제품 또는 서비스를 개선한다. 전체적으로 품질의 변동이 거의 없도록 제조 또는 업무 공정 관리를 간소화하는 것이 목적이다. 식스 시그마는 1993년 모토로라(Motorola)에 의해 상표 등록됐다. 그리스 문자인 시그마는 표준 편차를 나타내는 통계 기호다. 모토로라가 이 용어를 사용한 이유는 식스 시그마 공정이 이론적으로 99.99966%의 무결함 비율을 목표로 하기 때문이다. 즉, 제품 혹은 프로세스 100만 개 중 허용되는 결함 수가 3.4개다. 애초 모토로라는 이 목표를 자체 생산 시설을 대상으로 설정했으나 곧 유행어가 되면서 업계 표준으로 자리잡았다. 식스 시그마가 세간의 주목을 받게 된 계기는 1..
'애자일'과 '워터폴'을 함께 사용하는 방법 이론적으로 이들 두 기법은 서로 섞일만한 것들이 아니다. 하지만 현실적으로는 대개 공존해야만 한다. IT 부서는 애자일(Agile) 프로젝트의 민첩성과 생산성을 으레 선호한다. 하지만 경영진과 재무 조직에 프로젝트를 소개할 때는 워터폴(Waterfall) 개념을 거의 항상 필수요건으로 소개하게 된다. 사실 따져보면 애자일과 워터폴은 반대에 가까운 개념들이며, 특히 많은 소프트웨어 프로젝트에서 두 기법을 두고 꽤나 불편한 상황이 연출되기도 한다. 폴라 압둘의 노래와는 달리 상반되는 성격이 그리 매력적으로 다가오지 않는 것이다. 그렇다면 이 둘을 어떻게 함께 활용할 수 있을까? 대응 전략 #1: 적극적 계정 관리 워터폴에는 고정된 사양뿐만이 아니라 고정된 예산과 일정이 수반된다. 따라서 유연하거나 모호하게 ..
주요 '프로젝트 관리 방법'론 팀에 적용할 적절한 프로젝트 관리 방법론의 선택은 중요하다. 성공의 첫걸음이라고 표현할 수 있을 정도다. 하지만 다양하고 때로는 중복되는 접근방식이 있는 상황에서 어떤 관리 방법론이 가장 좋은지 어떻게 알 수 있을까? 프로젝트 관리자는 각 프로젝트 관리 방법론이 가지는 긍정적인 측면과 부정적인 측면을 깊게 이해해야 한다. 워터폴 (Waterfall) 워터폴은 오랜 기간 주류 프로젝트 관리 방법론이었다. 여러 산업에서 사용됐으며, 소프트웨어 개발에서는 보편적으로 사용됐다. 특정 순서로 실행되는 정적 단계(요건분석, 디자인, 시험, 이행, 유지보수)로 구성된다. 워터폴을 통해 각 단계 전반의 통제력이 높아지지만 프로젝트 진행 중 범위가 변경되면 그리 유연하지 못할 수 있다. 모든 프로젝트 요건을 초기에 파악..
IT 프리랜서로 살아남는 방법 IT프리랜서라고 하면 자유롭게 클라이언트를 선택하고, 스케줄을 정하며, 여유롭게 해변가에 앉아 코드를 짜면서 원하는 요율을 협상하는 모습이 먼저 떠오른다. 하지만 이 모든 자유에는 그만한 대가가 따른다. 홀로서기에는 여러 장애물이 반드시 나타난다. 그리고 이러한 문제점들에 대해 잘 인지하고 시작할수록 IT프리랜서로서의 성공 확률도 높아질 것이다. 원격 근무에 따르는 신뢰 문제 극복하기 프리랜서가 되기 위해서는 클라이언트와의 계약이 필수다. 그러나 클라이언트에게 자신을 신뢰할 수 있는 유능한 파트너로 인식시키기란 쉽지 않은 일이며, 특히 원격으로 근무할 때는 더욱 그렇다. 프로젝트를 성공적으로 마치기 위해서는 클라이언트가 프로젝트의 비전에 공감하고, 그것을 실현할 사람으로서 당신을 신뢰하고 있어야 한다. ..
IT 프리랜서가 단골 고객을 확보하는 방법 온/오프라인으로 전문적인 존재감 유지하기 프리랜서로서 명함과 웹사이트, 소셜 미디어 네트워크를 완비해 스스로를 전문가로 홍보하는 것이 중요하다. 더 많은 사업 활동에 도움이 될 뿐 아니라 전문적인 이미지로 '경쟁력'을 확보할 수 있다. 자신이 하는 일을 완전히 이해하지 못한다고 생각하는 사람에게 자신의 사업 자료를 보여주고 자신이 하는 일에 대해 더 잘 이해하게 됐는지 확인하는 것도 좋은 방법이다. 이를 통해 메시지를 전달하는 방식에 대한 장단점을 파악할 수 있고 고객이 제대로 이해하지 못하는 것을 명확하게 수정할 수 있다. 10년 동안 일해 왔지만 신뢰하는 동료가 이를 정확히 이해할 수 없다고 말할 때가 최고의 피드백이다. 네트워크 및 관계 구축 프리랜서는 스스로가 기업이므로 기업의 소유자로서 네트워크..
'프리랜서 개발자'를 준비하는 방법 1. 인맥을 확인하고 활용한다 프리랜서 일에 대한 조언, 팁, 커리어 기회를 얻을 수 있는 좋은 장소 중 하나는 개인적, 또는 업무 관련 인맥이다. 재직 중에 구축한 인맥은 프리랜서 커리어를 시작하는 데 도움을 줄 수 있다. 프리랜서 일을 시작하기로 결정했을 때 가장 먼저 할 일은 전 직장, 동료, 친구, 기타 지인들에게 연락해 기회가 있는지 알아보는 것이다. 또 전 직장 동료와 상사로부터 추천과 평가를 받으면 자신의 브랜드 및 스킬 세트 구축에 도움이 된다. 2. 포트폴리오를 정리한다 프토폴리오는 자신의 스킬을 강조해 보여줄 수 있는 좋은 방법이다. 미래의 계약 의뢰인이 프리랜서의 경력과 전문성을 쉽게 파악할 수 있도록 도와준다. 모든 프로젝트와 업무를 온라인 포트폴리오나 웹사이트 형태로 쉽게 찾을 수..
데브옵스의 도입과 활용, 접근법 많은 기술 조직이 이제 데브옵스를 중시하고 있다. 대개 상반되는 입장 차이를 통합시키는 것이 중요하다. - 애자일(Agile) 개발 팀은 빠른 속도로 비즈니스 요구사항을 충족하고, 애플리케이션을 변화시켜야 한다. - 반면 운영 팀은 시스템 성능을 유지시키고, 컴퓨팅 환경을 안전하게 보호하고, 컴퓨팅 리소스를 관리해야 한다. 애자일 팀은 운영 팀이 느리고 경직되어 있다고 생각한다. 반면 시스템 엔지니어는 애자일 개발자들이 운영과 관련된 필요사항을 지원하지 않고, 무모하게 행동해 애플리케이션 배포가 생산 환경에 문제를 발생시키도록 만든다고 생각한다. 일반적으로는 그럴 수 있다. 그러나 두 팀은 각각 ‘동기 부여 요소’, ‘개념’, ‘도구’가 다르다. 그리고 이런 ‘불일치’ 및 ‘부조화’가 비즈니스 문제를 초..
차세대 웹 플랫폼 '웹어셈블리' 지난 20여년간 웹 브라우저에서는 단 하나의 프로그래밍 공용어만 허용됐다. 바로 자바스크립트다. 특히 서드 파티 바이너리 플러그-인의 사망 선고와 함께 다른 언어를 사용할 가능성조차 완전히 사라졌다. 웹 개발에 있어서 자바나 플래시의 액션 스크립트 같은 다른 언어의 싹을 잘라 버린 것이다. 커피스크립트(CoffeeScript) 같은 다른 웹 언어가 있지만 근본적으로 자바스크립트로 컴파일된다. 최근에는 그 공식이 깨지고 있다. 웹어셈블리(WebAssembly), 또는 WASM이라 불리는 어셈블리 언어 덕분이다. 웹어셈블리는 웹 애플리케이션의 거의 네이티브로 실행되며 빠르고 간결한 바이너리 포맷 역할을 한다. 뿐만 아니라 자바스크립트는 물론이고 모든 언어를 컴파일 할 수 있도록 설계됐다. 거의 모든 메이저 ..
애자일 프로젝트를 성공시키는 방법 애자일 프로젝트 관리로 가면 프로젝트 성공률을 크게 높일 수 있다. 짧은 개발 주기를 사용해 지속해서 제품이나 서비스 개발 과정을 개선하는 방법론을 활용하는 산업과 기업들이 많다. 협업 수준을 높이고, 프로세스를 효율화하는 장점이 있기 때문이다. 기업이 애자일 관련 ‘선택지’를 비교 평가한 후 애자일로 전환하기로 결정을 내린 후, 기업과 고객 모두에 도움이 되도록 원활하게 전환을 하려면 어떻게 해야 할까? 비즈니스 목표를 파악해 상세히 기록한다 새로운 프로젝트 관리 기법을 도입하기 전, 비즈니스 목표를 파악해 상세히 기록하고, 새 기법을 도입해 목표를 더 효과적으로 달성하는 방법을 확립하는 것이 아주 중요하다. 비즈니스 분석은 조직이 도입한 방법이 전사적인 목표와 목적을 효과적으로 달성할 수 있도록 도움..
자바를 넘어선 JVM 기반 프로그래밍 언어들 자바(Java)는 개발자들에게 인기가 높고, 품질이 입증된 언어다. 엔터프라이즈 개발자, 웹 개발자, 모바일 개발자, 기타 많은 사람들이 도처에 자바가 쓰이도록 만들었고, 이를 지원하는 거대한 문화를 조성하는데 기여했다. 더 나아가, 자바 런타임인 자바 가상 머신(Java Virtual Machine, JVM)은 그 자체가 소프트웨어 생태계가 되었다. 자바 외에도, 수많은 언어가 강력하고 값진 소프트웨어 개발 도구를 만들려 JVM을 활용했다. JVM을 런타임으로 사용할 경우 몇 가지 이점과 혜택을 누릴 수 있다. JVM은 수십 년에 걸쳐 개선이 되었다. 잘 사용하면 높은 성능을 발휘한다. JVM에 여러 다양한 언어로 구현한 애플리케이션들은 서로 라이브러리를 공유할 수 있고, 동일한 데이터 구조에서 작동한..
SAN의 정의 그리고 NAS와의 차이점 SAN(storage area network)은 블록 수준 스토리지에 접속할 수 있도록 지원하는 특정 시스템 전용의 고속 네트워크다. 스토리지 트래픽을 LAN의 다른 부분과 분리해 애플리케이션의 가용성과 성능을 향상한다. 또한, SAN을 이용하면 기업이 스토리지 리소스를 더 쉽게 할당하고 관리할 수 있고 더 효율적으로 아카이빙할 수 있다. 여러 서버에 걸쳐 독립된 스토리지를 운영하는 대신 여러 워크로드에 공통적으로 사용하는 스토리지 풀을 만들어 공유하거나 필요한 만큼 분할 수 있다. SAN이란 무엇인가 SAN은 서로 연결된 호스트와 스위치, 스토리지 기기로 구성된다. 이 구성요소는 다양한 프로토콜로 연결할 수 있다. 이 연결에는 일반적으로 파이버 채널이 사용되지만 FCoE(Fibre Channel ove..
UFS (Universal Flash Storage) 사실 일반 이용자 입장에서 스마트폰이나 태블릿의 스토리지에 대한 관심은 '용량'이 대부분이다. 하지만 더 중요한 것을 스토리지의 속도 개선이다. 이러한 노력의 결과 중 하나가 UFS(Universal Flash Storage)다. UFS가 특별한 이유는? 표준 기관인 JEDEC이 2011년에 출시한 UFS의 목표는 전력을 적게 사용하면서도 모바일 기기에서 초고속 읽기 및 쓰기 속도를 제공하는 것이다. 기존 eMMC 플래시 스토리지 기술을 궁극적으로 대체하려는 의도로 제정됐다. 오늘날 존재하는 UFS 기술은 몇몇 변형이 있다. 내장형 스토리지(eUSF)와 마이크로SD와 유사한 착탈식 스토리지가 있다. 애플의 경우 이 표준을 채택하지 않고 아이폰과 아이패드에서 맞춤형 NVMe 기술을 사용하고 있다. 얼마나 ..
와이파이 표준과 종류 무선 세계에서 와이파이(Wi-Fi)라는 용어는 와이파이 제품이 IEEE의 802.11 무선 표준을 충족한다는 것을 인증하는 전담 단체인 와이파이 얼라이언스(Wi-Fi Alliance)가 소유한 특정 상표임에도 불구하고 일반적으로 무선 액세스와 동의어다. 802.11b, 802.11ac와 같은 이름이 붙는 와이파이 표준은 1990년대에 시작된 이후 지금까지 계속 확장되고 있는 일련의 규격이다. 802.11 표준은 무선 처리량과 작동 거리를 늘리는 개선 사항과 새로운 주파수 사용을 규정한다. 또한 전력 소비량을 줄이는 새로운 기술도 다룬다. 와이파이 6이란 무엇인가 표준에 대한 IEEE 명명 체계는 익숙해지기 어렵기 때문에 와이파이 얼라이언스는 이해하기 쉽도록 몇 가지 간단한 이름을 제시했다. 와이파이 얼라..
이더넷 프레임과 패킷의 차이 이더넷 데이터에 대해 이야기할 때, 프레임(Frame)과 패킷(Packet)은 혼용되곤 한다. 프레임과 페킷은 데이터를 특정 지점에서 특정 지점으로 나르는 전자적 컨테이너로, LAN과 WAN을 오가면 비슷한 기능을 수행한다. 이 때문에 이 둘을 잘못 이해하는 경우가 많다. 그렇다면 차이점은 무엇인가? 단순화시켜서 프레임과 패킷을 정보를 담는 봉투라고 생각해 보자. 이 봉투는 한 사람에게서 다른 사람에게로 보내진다. 프레임과 패킷의 주요 차이점은 정보를 포장하는 방법이며, 이는 정보를 어디로 보내느냐에 따라 달라진다. 프레임의 이해 내부 부서 간 우편이 있어서 한 사람이 조직 내의 다른 사람이나 부서에 문서를 보낼 수 있는 회사를 생각해 보자. 내용물은 내부용 봉투에 넣고, 발신자가 발신란에 이름과 부서를..
인텐트 기반 네트워킹 (Intent-Based Networking, IBN) IBN의 기본 개념은 단순합니다. 관리자의 의도(intent)대로 네트워크를 제어하면서, 동시에 수작업을 최소화하는 것입니다. IBN 개념의 핵심은 새로운 네트워크 관리 방법론입니다. 시장조사업체 가트너는 IBN의 기본 요건으로 4가지를 정의했습니다. 먼저 변환과 검증입니다. 네트워크 관리자의 의도를 관리 정책으로 바꾸고 이를 실제 실행할 수 있는지 확인하는 기능입니다. 둘째 자동 수행입니다. IBN이 실제로 네트워크를 특정 상태로 유지하기 위한 모든 기능입니다. 관리자의 개입을 최소화하면서 자동으로 네트워크 관련 작업을 수행할 수 있어야 합니다. 세번째는 상황 인식입니다. 네트워크 현상태를 파악하기 위해 지속해서 모니터링하고 관련 데이터를 수집하는 기능입니다. 이렇게 모은 데이터는 당연히 네트워크를 특..
SQL이란 무엇인가 오늘날 구조화 쿼리 언어(Structured Query Language)는 비록 제품들 간에 자사 고유의 확장 기능을 가지고 있기는 하지만, 관계형 데이터베이스에서 데이터를 조작하고 쿼리하는 표준 수단이다. SQL의 편의성과 보편성은 하둡(Hadoop)을 위시한 수 많은 NoSQL 또는 비관계형 데이터 저장(Non-Relational Data Stores) 기술도 SQL의 일부를 도입하거나 SQL과 유사한 쿼리 언어를 만들어 낼 정도이다. 그렇지만 SQL이 과거에도 “보편적인” 관계형 데이터베이스용 언어는 아니었다. 초기, 그러니까 1980년대에 SQL은 반대 세력이 적지 않았다. 당시에는 많은 연구원과 개발자들이 SQL의 오버헤드로 인해 업무용 데이터베이스로서는 결코 실용적이지 않다고 생각했다. 분명 ..
SDN, 비용 줄이고 서비스 속도 개선하는 비결 SDN(Software-defined networking, 소프트웨어 정의 네트워킹)의 핵심 개념은 네트워크에서 제어부와 패킷 포워딩부를 분리하는 것이다. 이런 아키텍처를 통해 운영 비용을 줄이고 새로운 서비스를 네트워크에 할당하거나 설정을 바꾸는 시간을 단축할 수 있다. 특정 하드웨어에 종속되지 않고 소프트웨어로 기능을 구현하므로, 기업은 SDN을 통해 전통적인 스위치를 보급형 기기로 대체해 장비 투자를 절감할 수 있다. 또한, SDN을 이용하면 API를 통해 네트워크와 애플리케이션을 직접 인터페이스할 수 있고 결국 보안과 애플리케이션 성능을 높일 수 있다. SDN이란 무엇인가 전통적인 네트워크는 제어부와 데이터 포워딩부가 통합된 전용 장비로 구성된다. 따라서 각 장비를 별도로 설정하고 관리해야 한다...
프로젝트 비용 관리 전략 이해 관계자가 진짜 원하는 것을 파악하라 프로젝트 관련자가 진짜 원하는 것은 말로 표현된 것보다 훨씬 복합적이고 복잡한 결과물일 가능성이 크다. 이러한 요구를 정확하게 파악하지 못하면 프로젝트 팀도, 관련자도 모호한 목표와 터무니 없는 기대치를 갖고 프로젝트에 임하게 된다. 프로젝트 매니저, 스폰서, 팀 멤버, 그리고 벤더가 이해 관계자의 진짜 속내를 제대로 파악하지 못한다면 프로젝트의 토대가 되는 요구 조건조차 제대로 정립할 수 없다. 그 결과 예산을 비롯해 전체 프로젝트가 관련자의 기대치, 일정, 그리고 요건에 질질 끌려 다니게 될 것이다. 따라서 프로젝트 예산을 효율적으로 관리를 위한 첫 단계는 프로젝트 요건이 정확하게 정립, 문서화되고 이를 관련자로부터 확인 받는 것이다. 또한 최종 결과는 모든 ..
SDN과 NFV, VNF의 차이 SDN(Software Defined Networking)과 NFV(Network Function Virtualization), NFV와 관련된 VNF(Virtual Network Functions)은 모두 네트워킹 분야의 중요 개념이다. SDN과 NFV와 VNF의 차이는 무엇일까 SDN : 소프트웨어 정의 네트워킹 SDN은 네트워크의 제어 플레인을 네트워크 트래픽을 전달하는 데이터 플레인과 분리한다는 개념이다. 이런 분리의 목적은 중앙에서 관리하고 프로그래밍이 가능한 네트워크를 만드는 것이다. 일부 SDN 구현 솔루션은 범용 네트워크 하드웨어를 통제하는 소프트웨어 기반 관리 플랫폼을 사용한다. 또 다른 접근법은 통합된 소프트웨어와 하드웨어를 사용하기도 한다. SDN은 주로 대기업 데이터센터에서 사용하는..
IoT 세상을 지배할 프로그래밍 언어는 이클립스 재단의 2018년 IoT 개발자 설문조사에 따르면, 가장 인기 있는 IoT 개발언어는 다음과 같다. 1. 자바 2. C 3. 자바스크립트 4. 파이썬 5. C++ 6. PHP 7. C# 8. 어셈블러 9. LUA 10. 구글 고 11. R 12. 스위프트 13. 루비 14. 러스트 이중 상위 5개 개발언어는 2017년 조사 이후 조금도 바뀌지 않았다. 좀 더 깊이 들여다보면, 2018년 조사에서는 코드가 어디에서 실행되는지에 다른 IoT 프로그래밍 언어도 조사했다. IoT 디바이스에서 실행되는 경우, C와 C++가 파이썬과 자바를 앞질렀고, 게이트웨이에서 실행되는 경우에는 자바와 파이썬, C, C++의 순이었다. 클라우드에서 코드를 실행하는 환경에서는 자바, 자바스크립트, 파이썬, PHP가 많았..
프로젝트 매니저(PM)의 성공 전략 6가지 프로젝트 마감 기한과 예산을 맞추기 위해 노력하지 않는 프로젝트 매니저는 아마 없을 것이다. 또 프로젝트 요구 사항을 매번 맞추기 위해 뼈를 깎는 노력을 하는 훌륭한 매니저도 있다. 하지만 진짜 ‘위대한’ 프로젝트 ‘리더’가 되기 위해서는 그보다 더 멀리, 더 높이 내다 보아야 한다. 주어진 여건에서 프로젝트를 수행하는 것뿐 아니라 신뢰할 수 있는 전략적 파트너로서 기업의 성공에 중요한 역할을 할 수 있어야 한다. 1. 프로젝트 매니저가 아니라 전략적 비즈니스 파트너다 단순한 기술적 관리를 넘어 더 높은 차원의 전략적 리더십 역량을 갖춘 프로젝트 매니저는 기업 규모를 막론하고 어디서나 환영 받는다. 오늘날에는 프로젝트에 부정적인 영향을 미칠 수 있는 요인이 내·외부를 막론하고 훨씬 많아졌다. 여기에는 경..
리눅스 초보자가 알아야 할 '터미널 명령' (Cmd) 1. sudo sudo의 기능은 간단하다. 뒤따르는 모든 명령을 슈퍼유저(또는 루트) 권한으로 실행한다. 예를 들어 시스템 업데이트 도는 구성 파일 변경과 같은 작업을 할 때 sudo를 사용해 명령을 실행해야 한다. 또한 sudo는 시스템을 파괴하거나 다른 사용자의 개인 정보를 침해할 수 있는 힘도 부여한다. 그래서 시스템에서 처음 sudo를 사용할 때, 다음과 같은 일종의 설교가 화면에 표시된다. 1) 다른 사용자의 프라이버시를 존중하십시오. 2) 입력하기 전에 생각하십시오. 3) 큰 힘에는 큰 책임이 따릅니다. 사용자 자신의 home 디렉토리를 벗어나서 파일을 편집하거나 수정해야 하는 경우 대부분은 sudo를 사용해야 한다. sudo를 사용하려면 사용자가 sudoers 파일에 있거나 슈퍼유저 그룹(보..
IT 전문가를 위한 이력서 작성 가이드 전문가들은 서둘러 날림으로 이력서를 만들어서는 안 된다고 경고한다. 충분한 시간을 투자해 기술 역량과 비즈니스에 대한 안목, 프로젝트 관리 경험을 강조하는 자세한 이력서를 만들 필요가 있다. 인터뷰가 채용을 결정하지만, 그토록 중요한 인터뷰를 결정하는 것은 이력서다. 1. 과거와 현재의 이력을 설명하는 3~6쪽의 이력서를 작성한다 좋은 이력서란 직장 생활을 하면서 개발한 기술, 책임, 성취에 대한 자세한 정보를 담아야 한다. 먼저 경험을 간략히 보여주는 요약(Summary) 항목을 상단에 배치하는 형식을 사용한다. 그리고 기술과 비즈니스와 관련된 역량을 나열한다. 아래에는 과거와 현재의 직장과 직책에 대해 자세히 설명한다. 자격증은 이력서의 가장 하단에 배치한다. 학력 아래다. 웨스트먼은 "자격증이 도움..
파이썬 코드를 위한 타입 체커 파이썬 초기에는 양식(type decoration)이란 것이 없었다. 이는 파이썬의 근본적인 목표와 관련이 있는데, 코드 작성의 복잡한 부분을 처리하고 개발자가 코드를 간결하게 유지하는 데 도움이 되는 유연한 객체 형식을 사용하는 빠르고 다루기 쉬운 언어를 지향했기 때문이다. 그러나 지난 몇 년 동안 파이썬에 형식 주석 지원이 추가되고 개발 중 파이썬 형식을 검사하는 전용 소프트웨어가 쏟아져 나왔다. 파이썬은 적어도 아직은 런타임에 형식을 검사하지 않는다. 그러나 IDE용 형식 검사기를 활용하면 파이썬의 형식 주석을 사용해 프로덕션에 이르기 전에 많은 실수를 잡아낼 수 있다. 마이파이 마이파이(Mypy)는 2012년부터 시작돼 여전히 활발하게 개발되는 파이썬용 첫 정적 형식 검사 시스템이다. 사실상 다른..
스위프트(Swift) 언어를 배워야 하는 이유 현직 개발자이거나 장래희망이 개발자인 사람, 아니면 가정이나 학교, 대학에서 앱 구축 방법을 배워볼까 하는 사람이라면 애플의 스위프트(Swift) 언어를 배워볼 만하다. 1. 스위프트는 오픈소스이다 스위프트의 사용 및 개발은 애플이 오픈 소스로 만든 이후 가속도가 붙었다. 2017년 3월 월간 TIOBE 지수에 따르면 스위프트는 전세계에서 가장 인기 있는 10대 프로그래밍 언어에 등극했다. PYPL 프로그래밍 언어 인기도 추적에서 평가한 10대 언어 가운데 하나이기도 하다. 2. 스위프트는 배우기 쉽다 스위프트는 파이썬(Python)에 필적하는 간단한 문법으로 사용하기 쉽게 구축되었다. 다른 어떤 개발 플랫폼을 배울 때보다 훨씬 빨리 앱을 실제로 구축할 수 있게 된다는 뜻이다. 일각에서는 불과 3~4 개..
Android, iOS 개발에 적합한 프로그래밍 언어는? 파이썬, 자바스크립트, C 등 개발자의 세계에서는 수 많은 프로그래밍 언어가 사용된다. 그러나 OS 환경마다 앱과 웹페이지 등을 제작하기에 적합한 언어는 따로 있다. iOS와 안드로이드에서 사용하기 적합한 언어는 아래와 같다. 안드로이드에 가장 적합한 언어 1. 자바 안드로이드의 공식 언어이다. 유연성을 지녔으며, 크로스 플랫폼 앱 개발 과정에서도 활용할 수 있다. 안드로이드의 공식 언어이기 때문에 다양한 라이브러리와 함께 활용할 수 있는 오픈소스 자료가 다양하다. 다른 코딩 언어보다 안드로이드 환경에서 빠른 사용자 경험을 선사할 수 있다. 다만, 학습이 어렵고, 작성된 코드가 많을수록 에러가 발생할 확률이 높다는 단점이 있다. 2. 코틀린 자바 대신 널리 사용되는 오픈소스 언어이다. 자바보다 코드 작성..
Go vs Python, 비교 선택 가이드 개발자를 위한 사용 편의성과 개발 속도 향상 측면에서 가장 뛰어난 두 가지 프로그래밍 언어는 파이썬(Python)과 고(Go)다. 현재 파이썬은 스크립팅, 데브옵스, 머신러닝, 테스트의 중심이며 고는 새롭게 부상하는 컨테이너 기반, 클라우드 네이티브 컴퓨팅의 동력이다. 파이썬과 고 사이의 선택이 명확한 경우도 있다. 풍부한 생태계라면 파이썬, 실행 속도를 본다면 고를 선택하면 된다. 개발자 편의성, 둘다 좋다 파이썬과 고는 사용 편의성 측면에서 모두 평판이 좋다. 두 언어 모두 간소하고 직관적인 구문을 사용하며 기억하기 쉬운 적은 수의 기능을 갖고 있다. 또한 파이썬과 고 모두 편집-컴파일-실행(edit-compile-run) 주기가 짧다. 인터프리터 언어인 파이썬은 컴파일 단계가 없으므로 거의 즉각 스..
자바 런타임 환경(JRE)의 이해 자바 개발 키트(Java Development Kit, JDK), 자바 가상 머신(Java Virtual Machine, JVM), 자바 런타임 환경(Java Runtime Environment, JRE)은 자바 애플리케이션을 개발하고 실행하기 위한 자바 플랫폼의 3대 구성 요소다. 런타임 환경은 다른 소프트웨어를 실행하기 위해 고안되는 일종의 소프트웨어다. 자바용 런타임 환경인 JRE에는 자바 클래스 라이브러리(Java class libraries)와 자바 클래스 로더(Java class loader), 자바 가상 머신(Java Virtual Machine)이 포함된다. - 클래스 로더는 올바르게 클래스를 로드해 코어 자바 클래스 라이브러리에 연결하는 역할을 한다. - JVM은 자바 애플리케이션이 디바..
코틀린(Kotlin) 제대로 이해하기 코틀린은 JVM과 안드로이드를 위한 정적 형식 지정(statically typed) 범용 오픈소스 프로그래밍 언어로, 객체 지향과 함수형 프로그래밍의 특성을 혼합한 언어다. 상호운용성, 안전성, 명확성, 툴 지원에 중점을 두고 있다. 현재 자바스크립트용 코틀린 버전(ECMAScript 5.1)과 네이티브 코드(LLVM 사용)가 준비되고 있다. 코틀린은 인텔리J(IntelliJ) IDEA를 만든 젯브레인스(JetBrains)가 2010년 내놓았으며, 2012년부터 오픈소스화됐다. 현재 코틀린 팀은 20명 이상의 젯브레인스 출신 정규 멤버로 구성되며 깃허브의 코틀린 프로젝트에는 100여 명의 기여자가 있다. 젯브레인스는 대표 제품인 인텔리J IDEA를 포함한 많은 제품에서 코틀린을 사용한다. 코틀린의 첫인상..
젠킨스란 무엇인가, CI(Continuous Integration) 서버의 이해 젠킨스(Jenkins)는 거의 모든 언어의 조합과 소스코드 리포지토리(Repository)에 대한 지속적인 통합과 지속적인 전달 환경을 구축하기 위한 간단한 방법을 제공한다. 젠킨스는 다른 일상적인 개발 작업을 자동화할 뿐 아니라 파이프라인(Pipeline)을 사용해 거의 모든 언어의 조합과 소스코드 리포지토리에 대한 지속적인 통합과 지속적인 전달 환경을 구축하기 위한 간단한 방법을 제공한다. 젠킨스가 각각의 단계에 대한 스크립트 작성의 필요성을 없애주지는 않지만, 사용자가 쉽게 구축할 수 있는 것보다 더 빠르고 더 강력하게 빌드(Build), 테스트, 그리고 배포(deployment) 도구 등 체인 전체를 통합할 수 있는 방법을 제공해 준다. "나이틀리 빌드(Nightly Build)를 망가뜨리지 말라..

728x90
반응형
LIST