새로운 기술과 아이디어 구현에 관심있는 우리들을 위한 공간과 모임. 재밌는 아이디어, 공통의 관심사, 명확한 목표와 배움을 위해, 서로를 응원하기 위한 모든 모임을 응원합니다.
오픈 소스와 기술 공유
기술은 빠르게 발전하고 있고 단순한 것에서 이제는 복합적이고 상호작용하는 형태로 변하고 있어요. 개발자들이 배워야 하는 것은 더욱 많아지고 고려해야 하는 것들도 많아지고 있어요. 기술은 이러한 시대에 맞춰 자유롭게 공유되며 발전하고 있습니다. 코드웨이브에서는 서로서로가 기술을 가르치고 공유하고 배우는 곳이에요. 끝이 없는 항해와 같은 이 길을 즐겁게 갈수 있도록 동료가 되고 길잡이가 되고자 합니다. 혼자가 아닌 여럿이 힘을 함께하는 오픈 소스와 기술공유로 발전을 꿈꾸는 곳, 코드웨이브와 함께해요!
함께 하는 오픈 프로젝트
코드웨이브에서는 오픈 프로젝트를 운영합니다. 누구나 프로젝트를 만들고 참여하며 진행할 수 있어요. 멋진 아이디어가 있는 기획자, 독창적인 디자인을 하는 디자이너, 현실로 표현하는 기술을 가진 엔지니어 모두가 참여하고 프로젝트를 발전시킬 수 있어요. 혼자서는 한계에 부딪혀도 함께 한다면 꿈꾸는 목표를 이룰 수 있습니다. 코드웨이브 오픈 프로젝트를 통해서 다양한 분야의 멋진 동료들을 만나고, 새로운 경험을 얻고, 신나는 프로젝트를 만들고, 빛나고 값진 결과물을 만들어 보세요.
긍정의 패러다임 커뮤니티
코드웨이브는 다양한 커뮤니티 활동을 지원합니다. 기술이나 관심사를 나누는 가벼운 모임부터 프로젝트 기획부터 완결을 위한 커뮤니티까지 다양한 커뮤니티 활동을 할 수 있습니다. 또한 여러분이 직접 관심있는 분야에 커뮤니티를 만들고 운영해 보세요. 커뮤니티를 통해 여러분의 생각을 발전시키고 많은 사람들과 공유해보세요. 코드웨이브 커뮤니티를 동해서 여러사람이 함께 만들어가는 커뮤니티를 통해 다양성을 경험하고 서로의 생각을 공유하고 긍정적인 피드백들을 나누는 즐거운 커뮤니티를 함께 만들어가요.
채널을 통해서 많은 사람들과 소통하기를 기대합니다. 몽키 스패너는 웹앱 개발에 있어서 풀스택 개발을 지향합니다. 강좌를 통해서 풀스택 개발자가 되기까지 좋은 기술들을 소개하고 같이 성장해 가기를 바랍니다. 어려운 부분들도 같이 즐겁게 소통한다면 재밌고 효율적으로 배워갈 수 있을 거에요. 또한 추후에는 코드웨이브를 통해 서로 협업하여 만들어가는 프로젝트를 진행하기 소망합니다. 좋은 커뮤니티와 프로젝트를 통해 앞으로 펼쳐질 새로운 형태의 협업도 같이 상상해보아요~~
운영 목표
좋은 개발자로 풀스택 개발자로 같이 성장하기. 프로젝트와 커뮤니티를 함께 이끌어가기를 기대합니다.
사용하는 언어에 따라 다양한 프레임워크들이 있습니다. Javascript NodeJS 계열의 ExpressJS, PHP 언어로 된 Laravel, Python 으로 만든 Django, Ruby on Rails는 Ruby로 만들어 졌습니다. 그밖에도 코어의 기능이 더 간결하게 구성된 것들도 있어요. Slim, Flask 등도 있습니다. 언급된 프레임워크들은 모두 견고하고 신뢰성있게 만들어졌으며 여러 장점들을 가지고 있어 각 언어를 사용하는 유저들한테 있어서 가장 인기있는 프레임워크들입니다.
처음 선택한다면 프레임워크는 본인이 가장 편하고 많이 사용하는 언어로 만들어진 프레임워크를 선택하여 개발해 보는 것도 좋은 방법입니다.
프런트엔드 기술은 정말 많은 발전을 이루고 있습니다. 최근에는 코드 사이즈가 작고 빠른 컴파일러 형식의 SvelteJS, 가장 인기 있는 ReactJS, 접근하기 가장 쉬운 VueJS, 모든 기능을 갖춘 프레임워크인 AngularJS등 리액트하고 다이나믹한 뷰를 보여주기 위한 프런트엔드 기술들이 있습니다. 이러한 기술들은 사용되어지면서 또다른 진화를 하게 됩니다. 글로벌한 상태 관리를 위한 기능부터 컴포넌트와 뷰 렌더링의 효율성을 위한 Router기능 등 다양한 기능들을 함께 알아야 합니다. 또한 서버사이드 렌더링 기능을 제공하는 NextJS, NuxtJS등도 있습니다.
NodeJS는 javascript 를 실행하기 위한 런타임 환경 및 플랫폼입니다. NodeJS는 이벤트 기반 Non-blocking I/O와 단일 스레드 이벤트 루프를 통해 확장성 있는 네트워크 어플리케이션을 만들 수 있습니다. Chrome의 javascript 엔진인 V8(C++로 만들어짐, 각 브라우져는 javascript엔진을 가짐, Firefox의 엔진: SpiderMonkey, IE의 엔진: Chakra)로 빌드되었습니다. 다양한 NodeJS 기반의 프레임워크 또는 모듈들을 이용하여 효율적인 개발을 진행할 수 있습니다.
NPM
일반적으로 Node Package Manager라고 부릅니다. NodeJS의 기본 패키지 관리자로 npm을 이용하여 Node Package 모듈을 설치하거나 버젼관리할 수 있습니다.
NodeJS Fullstack
프론트부터 백엔드까지 NodeJS를 활용한 개발을 한다면 데이터베이스 MongoDB, 백엔드 ExpressJS, 프런트는 Angular or React or Vue 등의 기술 스택을 사용할 수 있습니다. MEAN/MEVN/MERN 으로 흔히 부릅니다.
모바일 앱 개발을 위해서는 무엇을 배울까요?
기존의 iOS/Android 네이티브 앱을 개발하는 방법은 iOS는 Swift 언어를 사용하고 Android는 Java 또는 Kotlin을 이용하여 개발할 수 있습니다. 그외에 개발 방식은 다양해져서 ReactJS를 활용한 React Native가 있으며 VueJS에도 Vue Native(React Native로 빌드됨)가 있습니다. 또한 웹의 장점을 이용한 설치가 필요없는 PWA(Progressive Web App), 그리고 크로스 컴파일이 가능하여 하나의 코드로 iOS와 Android를 동시에 개발할 수 있는 MS사의 Xamarin(C#), Google의 Flutter(Dart)가 있습니다.
Docker는 컨테이너 기반의 오픈소스 가상화 플랫폼 입니다. 각종 프로그램 즉, 백엔드에 필요한 프로그램부터 데이터베이스 등 다양한 프로그램과 설정 및 실행환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순화 시킬 수 있습니다. 구글에서 공개한 기술로 여러 호스트에서 컨테이너를 관리하기 위해서 Kubernetes를 사용합니다.
Jenkins는 개발 소스코드에 대한 지속적인 통합 및 배포 환경을 구축하기 위한 방법을 제공해 줍니다. 더 빠르고 강력한 빌드, 테스트, 배포 등의 배포 체인을 통합하는 방법을 제공해 줍니다. Travis CI는 지속적 통합을 위한 서비스입니다. 소스저장소(GitHub)에 푸쉬하면 Travis CI에서 Trigger를 받아 빌드작업을 수행하며 서버에 배포를 위한 동작을 전달합니다.