
소프트웨어 개발은 다양한 언어와 도구를 사용하여 이루어집니다.
언어 또는 도구들은 특정 기업, 단체에서 만든 경우가 대부분인데, 각 언어마다 기술적 지향점, 호환성등이 많이 다릅니다.
결과물의 형태는 비슷하지만 각 언어 또는 플랫폼 끼리의 지향점과 개발 산출물, 생산성, 호환성 등은 아주 큰 차이점이 있으며, 한번 개발을 시작하면 바꾸기가 쉽지 않습니다.
따라서 처음 시작하기전 소프트웨어를 통해 얻으려는 가치와, 해결하고 싶은 문제들을 주의깊게 검토한 후, 기술 선택이 필요합니다.
포스팅 마지막에 가장 일반적으로 사용되는 언어와 플랫폼, 라이브러리등을 gpt의 도움을 받아 소개하겠습니다.
해당 표에 나와있지 않은 언어와 플랫폼들이 많음을 양해 부탁 드리며, 표를 보시면 아시겠지만, 선택지가 정말 많습니다.
어떤 기술로든 비슷한 결과물이 나올테지만, 어느정도의 비용으로 하는지, 특정 플랫폼에서 되는지, 안정성, 개발속도 등이 크게 차이가 납니다.
소프트웨어 개발에서 기술을 선택할 때는 다양한 질문과 고려 사항을 통해 최적의 도구와 플랫폼을 결정할 수 있습니다.
구현해야 하는 과제에 따라 목표의 형태를 가늠할 수 있는 질문지는 조금씩 바뀔 수 있겠지만, 다음은 흔히 쓰이는 질문지입니다.
기본 질문지
타겟 플랫폼은 무엇입니까?
Windows, macOS, iOS, Android, 웹, 크로스 플랫폼 (여러 플랫폼 지원 필요)
서버가 필요한가요? 클라이언트 사이드가 아닌 서버 단에 데이터등을 저장해야 하나요?
예: 클라우드 기반 서버, 온프레미스 서버, 아니오: 로컬 애플리케이션
산출물의 형태는 무엇인가요?
데스크탑 애플리케이션, 모바일 애플리케이션, 웹 애플리케이션, 임베디드 시스템, 게임, 데이터 분석 및 시각화
어떤 사람들이 사용하나요?
일반 소비자, 비즈니스 사용자, 개발자, 의료 전문가, 정부 기관, 특수 산업 사용자 (예: 제조업, 공학 등)
사내 시스템과 연동이 되야 하나요?
예: ERP, CRM, 데이터베이스 등과의 연동, 아니오
배포는 어떤 형태로?
웹 배포 (웹 애플리케이션), 앱 스토어 (iOS, Android), 소프트웨어 다운로드 (Windows, macOS), 패키지 매니저 (npm, PyPI, NuGet 등)
생산성이 중요한 요소인가요?
예: 빠른 개발 및 배포가 중요, 아니오
높은 신뢰도와 안정성이 중요한 요소인가?
예: 의료 기기, 금융 소프트웨어 등 높은 신뢰도 필요, 아니오
추가 고려 사항
성능 요구 사항은 무엇인가?
고성능 (실시간 처리, 대규모 데이터 처리 등), 보통 (일반 사용자 애플리케이션)
보안 요구 사항은 무엇인가?
높은 보안 (금융, 의료, 정부 기관), 일반적인 보안 수준
프로젝트의 예산과 시간 제약은 무엇인가?
짧은 개발 기간, 제한된 예산, 충분한 시간과 예산
기존 시스템과의 호환성이 중요한가?
예: 기존 기술 스택과의 통합 필요, 아니오
개발 팀의 기술 숙련도는 어떤가?
숙련된 팀: 새로운 기술 도입 가능, 초보자 팀: 학습 곡선이 완만한 기술 필요
유지 보수와 확장성은 중요한가?
예: 장기적인 유지 보수와 확장 가능성 중요, 아니오
오프라인 지원이 필요한가?
예: 인터넷 연결이 없는 상태에서도 동작, 아니오
다국어 및 현지화가 필요한가?
예: 여러 언어 지원 및 현지화 필요, 아니오
오픈 소스 사용에 대한 정책은 무엇인가?
허용됨: 오픈 소스 기술 사용 가능, 제한됨: 상용 소프트웨어 선호
심장박동기 개발을 위한 기술 선택 과정
심장박동기와 같은 의료 기기를 개발할 때는 높은 신뢰도와 안전성을 보장해야 하므로 기술 선택 과정이 매우 중요합니다.
아래는 심장박동기 개발을 위한 기술 선택 과정을 가상으로 답변하며 설명한 것입니다.

1. 타겟 플랫폼은 무엇인가?
심장박동기는 임베디드 시스템으로 작동하므로, 플랫폼은 마이크로컨트롤러와 같은 임베디드 시스템이 됩니다.
타겟 플랫폼: 임베디드 시스템 (마이크로컨트롤러)
2. 서버가 필요한가?
심장박동기 자체는 독립적으로 작동해야 하지만, 데이터를 수집하고 모니터링하기 위한 서버가 필요할 수 있습니다.
서버 필요 여부: 예 (데이터 모니터링 및 관리용)
3. 산출물의 형태는 무엇인가?
심장박동기는 임베디드 시스템에 포함된 소프트웨어입니다.
산출물 형태: 임베디드 시스템 소프트웨어
4. 어떤 사람들이 사용하나?
심장박동기는 환자와 의료 전문가가 사용합니다.
사용자: 의료 전문가, 환자
5. 사내 시스템과 연동이 되야 하나?
심장박동기 데이터는 병원의 의료 기록 시스템과 연동될 수 있습니다.
연동 필요 여부: 예 (병원 의료 기록 시스템과 연동)
6. 자동 업데이트가 되야 하나?
심장박동기 소프트웨어는 안정성과 신뢰성이 매우 중요하므로, 자동 업데이트는 신중하게 관리되어야 합니다.
자동 업데이트 필요 여부: 아니오 (필요한 경우에만 신중하게 업데이트)
7. 배포는 어떤 형태로?
심장박동기 소프트웨어는 의료 기기에 직접 배포됩니다.
배포 형태: 의료 기기 내장 배포
8. 생산성이 중요한 요소인가?
생산성보다는 높은 신뢰도와 안정성이 중요합니다.
생산성 중요성: 아니오
9. 높은 신뢰도와 안정성이 중요한 요소인가?
심장박동기는 생명과 직결된 장치이므로 매우 높은 신뢰도와 안정성이 요구됩니다.
신뢰도 및 안정성 중요성: 예
추가 고려 사항
성능 요구 사항은 무엇인가?
고성능 (실시간 처리, 정확한 심박 조율)
보안 요구 사항은 무엇인가?
높은 보안 (의료 데이터 보호)
프로젝트의 예산과 시간 제약은 무엇인가?
충분한 시간과 예산 (안전성과 규제 준수 보장)
기존 시스템과의 호환성이 중요한가?
예 (병원의 기존 의료 시스템과 통합)
개발 팀의 기술 숙련도는 어떤가?
숙련된 팀 (의료 기기 개발 경험자 포함)
유지 보수와 확장성은 중요한가?
예 (장기적인 유지 보수와 소프트웨어 업데이트 필요)
오프라인 지원이 필요한가?
예 (인터넷 연결 없이도 작동해야 함)
다국어 및 현지화가 필요한가?\
아니오 (주로 의료 전문가가 사용)
오픈 소스 사용에 대한 정책은 무엇인가?
제한됨 (상용 소프트웨어와 검증된 오픈 소스 사용)
심장 박동기 세부 기술 선택
심장박동기 같은 경우 수억번이 실행되는중에 1회도 에러가 나면 안되는 그런 시스템인걸 감안해서 위 질문지에 대해 가상으로 답변을 했습니다.
해당 답변을 기반으로 여러가지 기술 선택지를 뽑을 수 있습니다.
프로그래밍 언어 선택
C/C++: 성능과 하드웨어 제어에 최적화되어 있으며, 많은 임베디드 시스템에서 사용되고 있습니다.
Assembly: 매우 저수준의 하드웨어 제어가 필요한 경우 사용됩니다.
Rust: 메모리 안전성과 성능을 모두 제공하는 언어로, 최근 임베디드 시스템에서 주목받고 있습니다.
개발 도구 및 프레임워크 선택
Keil MDK: ARM 마이크로컨트롤러 개발에 널리 사용되는 도구로, 강력한 디버깅 기능을 제공합니다.
IAR Embedded Workbench: 다양한 마이크로컨트롤러를 지원하며, 높은 최적화 수준과 디버깅 기능을 갖추고 있습니다.
Eclipse with CDT: 오픈소스 개발 환경으로 유연한 플러그인 시스템과 다양한 디버깅 및 분석 도구를 지원합니다.
RTOS (Real-Time Operating System): FreeRTOS, ARM mbed OS 등 실시간 성능과 안정성을 제공하는 운영 체제.
규제 및 표준 준수
IEC 62304: 의료 기기 소프트웨어 생명 주기 프로세스 준수.
ISO 13485: 의료 기기 품질 관리 시스템 준수.
FDA: 미국에서의 의료 기기 소프트웨어 규제 준수.
EMC (Electromagnetic Compatibility): 전자파 간섭 및 내성 기준 준수.
사내 시스템과 같은 안정성 보단 생산성이 중요한 경우
전혀 다른 시스템인 사내시스템의 경우, 심장 박동기에 비해 아주 낮은 수준의 안정성을 요구할 수 있습니다.
문제가 발생할 경우 담당자가 해결 하는 형태의 방식으로 진행하고, 안정성 신뢰성 보단, 생산성을 중요시하고, 낮은 수준의 기술 숙련도가 필요할 수 있습니다.
물론, 모든 시스템에 높은 성능, 안정성, 신뢰성을 보장하면 좋겠지만, 해당 요소들은 프로젝트 예산, 기간과 비례합니다. 따라서 프로젝트 상황에 따라 적절하게 조율 하며 기술 선택을 하는게 성공적인 비지니스의 발판이 될 수 있습니다.
오버스펙은 개발기한과 비용을 늘립니다. 예시
예시 1: 간단한 계산기를 위한 고성능 프로세서 사용
상황: 간단한 숫자 계산과 사칙연산만을 수행하는 계산기를 개발.
오버스펙: 계산기 기능을 구현하기 위해 최신 고성능 프로세서와 대규모 메모리 사용.
적절한 대안: 저성능 마이크로컨트롤러나 기존의 저사양 하드웨어 사용.
예시 2: 작은 팀 프로젝트에 대규모 협업 도구 사용
상황: 3명의 개발자가 참여하는 작은 팀 프로젝트.
오버스펙: 팀원 수에 비해 Jira, Confluence, Slack, Jenkins 등의 복잡한 협업 및 CI/CD 도구를 모두 도입.
적절한 대안: Trello와 같은 간단한 프로젝트 관리 도구와 GitHub 또는 GitLab을 사용하여 기본적인 협업 및 코드 관리.
예시 3: 단순 데이터 저장을 위한 NoSQL 데이터베이스 사용
상황: 단순한 고객 정보와 주문 내역을 저장해야 하는 애플리케이션.
오버스펙: 간단한 관계형 데이터베이스로 충분한데도 불구하고, MongoDB나 Cassandra와 같은 복잡한 NoSQL 데이터베이스 사용.
적절한 대안: MySQL이나 PostgreSQL과 같은 관계형 데이터베이스 사용.
예시 4: 작은 모바일 앱에 복잡한 아키텍처 적용
상황: 작은 모바일 앱을 개발하고자 함.
오버스펙: 간단한 기능을 제공하는 앱에 MVVM, Dagger, Retrofit 등의 복잡한 아키텍처와 라이브러리 사용.
적절한 대안: 단순한 구조와 기본 라이브러리를 사용하여 유지보수와 개발을 간편하게 함.
소프트웨어 기술 선택은 프로젝트의 성공에 매우 중요한 요소입니다. 특히 외주를 줄 때는 외주 회사가 제안하는 기술이 실제로 프로젝트 요구 사항을 충족하는지 신중하게 평가해야 합니다. 외주사의 경우 실제 프로젝트에 적합한 기술보단, 해당 회사에 보유하고 있고 주력으로 밀고 있는 기술을 제안하는 경우가 많습니다. 필수적인 기술 요구 사항을 명확히 하고, 외주 회사의 경험과 제안된 기술의 적합성을 객관적으로 검토하는 것이 중요합니다. 이를 통해 불필요한 오버스펙을 피하고, 적절한 기술 선택으로 프로젝트의 성공 가능성을 높여야 합니다.
*자사의 경우 보유 기술이 아닌 경우, 자사가 진행하기 적합하지 않은 경우 관련 내용을 상세하게 설명 드리고 고객께 가장 적합한 내용을 권해드립니다.
소프트웨어 기술 선택 시 주의할 점
1. 개발자의 기술 스택 이해하기
특화된 기술: 개발자들이 매우 잘 아는 기술로, 그들이 가장 능숙하게 다룰 수 있는 기술입니다.
보통 수준의 기술: 개발자들이 일정 수준의 경험을 가진 기술로, 능숙하진 않지만 작업을 수행할 수 있는 기술입니다.
범위의 차이: 일부 개발자는 좁고 깊게 특화된 기술을 가지며, 다른 개발자는 다양한 기술에 넓게 경험을 가진 경우도 있습니다. 외주 개발사들은 이런 개발자들을 보유하고 있는 회사입니다.
2. 외주 회사의 기술 유도
특정 기술 유도: 외주 회사가 자신들이 잘 다루는 기술로 프로젝트를 유도하는 경우가 있습니다.
최고라고 포장: 자신의 기술을 과장하여 최고라고 주장하는 경우가 있습니다.
3. 기술 선택 시 주의사항
필수 요구 사항 확인: 프로젝트에 반드시 필요한 기술 요구 사항을 명확히 정의합니다.
기술 적합성 검토: 각 기술이 프로젝트의 요구 사항을 얼마나 잘 충족하는지 검토합니다.
외주 회사의 경험 검토: 외주 회사가 제안하는 기술에 대한 경험과 성공 사례를 검토합니다.
객관적인 평가: 외주 회사의 주장에 대해 객관적으로 평가하고, 필요시 외부 전문가의 의견을 구합니다.
장기적인 유지보수: 선택한 기술이 장기적으로 유지보수와 확장성에 적합한지 고려합니다.
4. 외주 계약 시 주의사항
투명성: 외주 회사와의 계약에서 기술 선택의 이유와 기술 스택에 대한 투명성을 요구합니다.
기술 문서화: 프로젝트의 기술적 요구 사항과 선택된 기술의 이유를 문서화합니다.
의사소통: 개발 과정에서 지속적인 의사소통을 통해 기술 선택이 적절한지 모니터링합니다.
리스크 관리: 기술 선택에 따른 리스크를 식별하고 관리 계획을 세웁니다.
5. 기술 선택 과정에서 발생할 수 있는 문제
기술 부족: 특정 기술에 대한 외주 회사의 경험 부족으로 인한 문제 발생.
비용 증가: 필요 이상의 복잡한 기술 선택으로 인한 개발 비용과 시간 증가.
유지보수 어려움: 적절하지 않은 기술 선택으로 인한 장기적인 유지보수 문제 발생.
기술 종속: 특정 기술이나 외주 회사에 지나치게 종속되는 문제 발생.
각 기술은 고유한 장단점을 가지고 있으며, 위에 나열한 모든 기술을 실무적으로 다루는 전문가는 있기가 어렵고, 각 기술에 최적화된 다양한 회사 또는 전문가가 존재합니다.
프로젝트의 요구 사항에 따라 최적의 기술을 선택하는 것이 중요합니다. 기술 선택 시에는 최대한 깊이 고민해보고, 각 기술의 특성을 면밀히 분석하여 프로젝트에 가장 적합한 기술을 선택하시길 권해드립니다. 또한, 전문가와 많은 이야기를 나누는 것이 큰 도움이 될 수 있습니다. 프로젝트 기술 선택은 프로젝트의 시작이며, 가장 중요한 첫걸음입니다.
위 포스팅 관련해서 1:1로 상담해 보고 싶으시다면 클릭해주세요!
프로그래밍 언어
언어/플랫폼/라이브러리 | 제작사 | 지향점 | 호환성 |
C | ANSI | 성능, 하드웨어 제어 | 크로스플랫폼 |
C++ | ISO | 객체지향, 성능 | 크로스플랫폼 |
C# | Microsoft | 생산성, .NET 통합 | Windows, Linux, macOS (.NET Core/5+) |
Java | Oracle | 객체지향, 플랫폼 독립성 (JVM) | 크로스플랫폼 |
Python | Python Software Foundation | 생산성, 가독성 | 크로스플랫폼 |
JavaScript | Netscape, Mozilla Foundation | 웹 개발, 이벤트 기반 프로그래밍 | 크로스플랫폼 |
TypeScript | Microsoft | JavaScript의 정적 타입 지원 | 크로스플랫폼 |
Ruby | Yukihiro Matsumoto | 생산성, 간결함 | 크로스플랫폼 |
PHP | The PHP Group | 서버 사이드 웹 개발 | 크로스플랫폼 |
Swift | Apple | 성능, 안전성 | iOS, macOS |
Objective-C | Apple | 객체지향, NeXTSTEP 및 macOS 개발 | iOS, macOS |
Kotlin | JetBrains | 현대적, 간결함 | Android, JVM |
Go | 성능, 병렬 처리 | 크로스플랫폼 | |
Rust | Mozilla Foundation | 성능, 메모리 안전성 | 크로스플랫폼 |
Dart | 프런트엔드, 성능 | 크로스플랫폼 | |
Scala | EPFL | 함수형, 객체지향 | 크로스플랫폼 (JVM) |
Perl | Larry Wall | 텍스트 처리, 스크립팅 | 크로스플랫폼 |
R | R Foundation | 통계, 데이터 분석 | 크로스플랫폼 |
Haskell | Haskell Committee | 함수형 프로그래밍 | 크로스플랫폼 |
Lua | PUC-Rio | 스크립팅, 임베디드 시스템 | 크로스플랫폼 |
MATLAB | MathWorks | 수학, 과학 계산 | Windows, macOS, Linux |
VBA | Microsoft | Microsoft Office 자동화 | Windows, macOS |
Shell Scripting | GNU Project, 기타 | 시스템 관리, 자동화 | Unix 계열, Windows (WSL) |
윈도우 개발 플랫폼 및 라이브러리
언어/플랫폼/라이브러리 | 제작사 | 지향점 | 호환성 |
.NET Framework / .NET Core / .NET 5+ | Microsoft | 범용 개발 플랫폼 | Windows, Linux, macOS (.NET Core/5+) |
WinForms | Microsoft | 데스크탑 애플리케이션 개발 | Windows |
WPF | Microsoft | 복잡하고 화려한 UI | Windows |
UWP | Microsoft | Windows 10과 이후 버전용 앱 개발 | Windows 10 이상 |
Win32 API | Microsoft | 전통적인 Windows API | Windows |
MFC | Microsoft | C++ 기반 애플리케이션 개발 | Windows |
DirectX | Microsoft | 고성능 그래픽스 및 게임 개발 | Windows |
XNA | Microsoft | 게임 개발 | Windows, Xbox |
Unity | Unity Technologies | 게임 개발 | 크로스플랫폼 |
맥 개발 플랫폼 및 라이브러리
언어/플랫폼/라이브러리 | 제작사 | 지향점 | 호환성 |
Cocoa | Apple | 네이티브 macOS 애플리케이션 개발 | macOS |
Cocoa Touch | Apple | 네이티브 iOS 애플리케이션 개발 | iOS, macOS |
AppKit | Apple | macOS GUI 개발 | macOS |
SwiftUI | Apple | 현대적 UI 개발 | iOS, macOS |
SpriteKit | Apple | 2D 게임 개발 | iOS, macOS |
SceneKit | Apple | 3D 그래픽스 | iOS, macOS |
Metal | Apple | 고성능 그래픽스 | iOS, macOS |
Core Data | Apple | 데이터 관리 및 영속성 | iOS, macOS |
크로스플랫폼 개발
언어/플랫폼/라이브러리 | 제작사 | 지향점 | 호환성 |
React Native | 모바일 크로스플랫폼 앱 개발 | iOS, Android | |
Flutter | 모바일 크로스플랫폼 앱 개발 | iOS, Android, 웹, 데스크탑 | |
Xamarin | Microsoft | 모바일 크로스플랫폼 앱 개발 | iOS, Android, Windows |
Electron | GitHub | 데스크탑 크로스플랫폼 앱 개발 | Windows, macOS, Linux |
Qt | Qt Company | 크로스플랫폼 GUI 개발 | Windows, macOS, Linux |
MAUI | Microsoft | 크로스플랫폼 UI 개발 | Windows, macOS, iOS, Android |
Kivy | Kivy Organization | 크로스플랫폼 Python GUI 프레임워크 | 크로스플랫폼 |
PhoneGap / Cordova | Adobe | 모바일 크로스플랫폼 앱 개발 | iOS, Android |
Unity | Unity Technologies | 게임 개발 | 크로스플랫폼 |
Unreal Engine | Epic Games | 게임 개발 | 크로스플랫폼 |
웹 개발 프론트엔드
언어/플랫폼/라이브러리 | 제작사 | 지향점 | 호환성 |
HTML | W3C | 웹 페이지 구조 | 크로스플랫폼 |
CSS | W3C | 웹 페이지 스타일 | 크로스플랫폼 |
JavaScript | Netscape, Mozilla Foundation | 웹 페이지 동적 동작 | 크로스플랫폼 |
TypeScript | Microsoft | JavaScript의 정적 타입 지원 | 크로스플랫폼 |
React | UI 컴포넌트 기반 프레임워크 | 크로스플랫폼 | |
Vue.js | Evan You | 경량화된 UI 프레임워크 | 크로스플랫폼 |
Angular | 전체적인 웹 애플리케이션 프레임워크 | 크로스플랫폼 | |
Svelte | Svelte Society | 컴파일러 기반 UI 프레임워크 | 크로스플랫폼 |
Bootstrap | CSS 프레임워크 | 크로스플랫폼 | |
Tailwind CSS | Tailwind Labs | 유틸리티 퍼스트 CSS 프레임워크 | 크로스플랫폼 |
웹 개발 백엔드
언어/플랫폼/라이브러리 | 제작사 | 지향점 | 호환성 |
Node.js | OpenJS Foundation | JavaScript 런타임 환경 | 크로스플랫폼 |
Express | OpenJS Foundation | Node.js 웹 프레임워크 | 크로스플랫폼 |
Django | Django Software Foundation | Python 웹 프레임워크 | 크로스플랫폼 |
Flask | Pallets Projects | Python 마이크로 웹 프레임워크 | 크로스플랫폼 |
Ruby on Rails | David Heinemeier Hansson | Ruby 웹 프레임워크 | 크로스플랫폼 |
Laravel | Taylor Otwell | PHP 웹 프레임워크 | 크로스플랫폼 |
Spring | Pivotal Software | Java 웹 프레임워크 | 크로스플랫폼 |
ASP.NET | Microsoft | .NET 웹 프레임워크 | Windows, Linux, macOS (.NET Core/5+) |
NestJS | Kamil Myśliwiec | Node.js 웹 프레임워크 | 크로스플랫폼 |
Koa.js | OpenJS Foundation | Node.js 웹 프레임워크 | 크로스플랫폼 |
Phoenix | Phoenix Team | Elixir 웹 프레임워크 | 크로스플랫폼 |
데이터베이스
언어/플랫폼/라이브러리 | 제작사 | 지향점 | 호환성 |
MySQL | Oracle | 관계형 데이터베이스 | 크로스플랫폼 |
PostgreSQL | PostgreSQL Global Development Group | 관계형 데이터베이스 | 크로스플랫폼 |
SQLite | D. Richard Hipp | 임베디드 관계형 데이터베이스 | 크로스플랫폼 |
MongoDB | MongoDB, Inc. | NoSQL 데이터베이스 | 크로스플랫폼 |
Redis | Redis Ltd. | 인메모리 데이터베이스 | 크로스플랫폼 |
Cassandra | Apache Software Foundation | NoSQL 데이터베이스 | 크로스플랫폼 |
MariaDB | MariaDB Corporation | 관계형 데이터베이스 | 크로스플랫폼 |
Firebase Firestore | NoSQL 클라우드 데이터베이스 | 크로스플랫폼 | |
Oracle Database | Oracle | 관계형 데이터베이스 | 크로스플랫폼 |
Microsoft SQL Server | Microsoft | 관계형 데이터베이스 | Windows, Linux |
DynamoDB | Amazon Web Services | NoSQL 클라우드 데이터베이스 | 크로스플랫폼 |
CouchDB | Apache Software Foundation | NoSQL 데이터베이스 | 크로스플랫폼 |
게임 개발
언어/플랫폼/라이브러리 | 제작사 | 지향점 | 호환성 |
Unity | Unity Technologies | 게임 개발 | 크로스플랫폼 |
Unreal Engine | Epic Games | 게임 개발 | 크로스플랫폼 |
Godot | Godot Engine | 게임 개발 | 크로스플랫폼 |
Cocos2d | Cocos | 게임 개발 | 크로스플랫폼 |
CryEngine | Crytek | 게임 개발 | 크로스플랫폼 |
Panda3D | Carnegie Mellon University | 게임 개발 | 크로스플랫폼 |
GameMaker Studio | YoYo Games | 게임 개발 | 크로스플랫폼 |
Phaser | Photon Storm | HTML5 게임 개발 | 크로스플랫폼 |
데이터 과학 및 머신러닝
언어/플랫폼/라이브러리 | 제작사 | 지향점 | 호환성 |
Python | Python Software Foundation | 데이터 과학, 머신러닝 | 크로스플랫폼 |
R | R Foundation | 통계, 데이터 분석 | 크로스플랫폼 |
Julia | Julia Computing | 데이터 과학, 고성능 컴퓨팅 | 크로스플랫폼 |
SAS | SAS Institute | 통계, 데이터 분석 | 크로스플랫폼 |
MATLAB | MathWorks | 수학, 과학 계산 | Windows, macOS, |
임베디드 시스템
언어/플랫폼/라이브러리 | 제작사 | 지향점 | 호환성 |
C | ANSI | 성능, 하드웨어 제어 | 크로스플랫폼 |
C++ | ISO | 객체지향, 성능 | 크로스플랫폼 |
Assembly | 각종 하드웨어 제조사 | 하드웨어 제어 | 크로스플랫폼 |
Rust | Mozilla Foundation | 성능, 메모리 안전성 | 크로스플랫폼 |
Python | Python Software Foundation | 임베디드 시스템 스크립팅 | 크로스플랫폼 |
Arduino | Arduino | 하드웨어 제어, 프로토타이핑 | Arduino 하드웨어 |
Raspberry Pi | Raspberry Pi Foundation | 교육, 프로토타이핑 | Raspberry Pi 하드웨어 |
클라우드 플랫폼 및 도구
언어/플랫폼/라이브러리 | 제작사 | 지향점 | 호환성 |
AWS (Amazon Web Services) | Amazon | 클라우드 컴퓨팅, 스토리지 | 크로스플랫폼 |
Google Cloud Platform | 클라우드 컴퓨팅, 스토리지 | 크로스플랫폼 | |
Microsoft Azure | Microsoft | 클라우드 컴퓨팅, 스토리지 | 크로스플랫폼 |
Heroku | Salesforce | 클라우드 애플리케이션 배포 | 크로스플랫폼 |
Netlify | Netlify | 정적 웹사이트 호스팅 | 크로스플랫폼 |
Vercel | Vercel | 정적 웹사이트 호스팅 | 크로스플랫폼 |
Docker | Docker, Inc. | 컨테이너화 | 크로스플랫폼 |
Kubernetes | 컨테이너 오케스트레이션 | 크로스플랫폼 |
모바일 앱 개발
언어/플랫폼/라이브러리 | 제작사 | 지향점 | 호환성 |
Android Studio | Android 네이티브 앱 개발 | Android | |
Xcode | Apple | iOS, macOS 네이티브 앱 개발 | iOS, macOS |
React Native | 모바일 크로스플랫폼 앱 개발 | iOS, Android | |
Flutter | 모바일 크로스플랫폼 앱 개발 | iOS, Android, 웹, 데스크탑 | |
Ionic | Ionic | 모바일 크로스플랫폼 앱 개발 | iOS, Android |
PhoneGap / Cordova | Adobe | 모바일 크로스플랫폼 앱 개발 | iOS, Android |
Unity | Unity Technologies | 게임 개발 | 크로스플랫폼 |
Unreal Engine | Epic Games | 게임 개발 | 크로스플랫폼 |
위시켓 프리모아 웹개발 앱개발 소프트웨어개발 크몽 외주개발 기술선택가이드

