Bu11etmagnet의 멘션처럼 cpp에서 aws-sdk를 사용하기 위해서는 먼저 InitAPI를 호출해야만 합니다. InitAPI를 호출하지 않고 aws-sdk를 사용하려고 했기 때문에 위와 같은 오류가 발생했습니다. aws-sdk 사용에 앞서 다음 코드를 수행해 주시면 됩니다.
시놀로지는 파일 서비스를 제공합니다. 파일 서비스는 중요 디지털 자산을 빠르고 안전하게 공유하고 Windows, macOS, Linux 플랫폼 간에 원활하게 파일을 공유할 수 있도록 DSM에서 네트워크 프로토콜(FTP, SMB, AFP, NFS, rsync 및 WebDAV)을 종합적으로 지원합니다. Universal Search와 Mac의 Finder가 통합되어 Synology NAS에서 탑재된 폴더에 있는 인덱싱 된 문서, 사진 및 기타 콘텐츠를 빠르고 자세하게 검색할 수 있습니다.
Server Message Block(SMB)는 윈도우 운영체제 간 통신에 주로 이용되는 프로토콜입니다. 기본적으로 네트워크 드라이브라는 것을 통해 네트워크상 다른 윈도우 기기와 연결해 파일 입출력과 실행을 담당하는 프로토콜입니다. 윈도우의 탐색기에서 \\HOST\FOLDER 같은 형식으로 접속할 수 있습니다. TCP/IP 기반의 NetBIOS 프로토콜을 사용하며 NFS, NIS와 같은 유닉스의 분산 인증 구조와 유사합니다.
AFP 프로토콜
Apple Filing Protocol(AFP)는 SMB의 macOS 버전이라고 생각할 수 있습니다. 맥에서는 파일을 전송할 때 AFP라는 프로토콜을 이용해 전송합니다. 최근의 맥은 SMB, AFP, NFS, FTP, WebDAV 모두를 지원하고 있습니다. 맥의 FInder를 킨 뒤 cmd + K 혹은 이동 -> 서버에 연결을 클릭해 AFP://HOST 같은 형식으로 접속할 수 있습니다.
NFS 프로토콜
Network File System(NFS)는 리눅스에서 파일 입출력을 담당하는 프로토콜입니다. 파일 공유 프로토콜이라는 점에서는 SMB, AFP, NFS전부 비슷하지만 방식은 약간씩 다릅니다. mount -t nfs <HOST> :/ <SHARE> <DIR> 같은 형식으로 접속할 수 있습니다.
FTP와 TFTP 프로토콜
File Transfer Protocol(FTP)는 파일 업로드와 다운로드만을 위해 만들어진 프로토콜입니다. 업로드, 다운로드, 생성, 제거 등의 파일과 관련된 명령어만 수행합니다. 보통 외부망에서 연결해 파일을 주고받을 때 사용합니다.
Trivial File Transfer Protocol(TFTP)는 FTP와 마찬가지로 파일을 전송하기 위해 만들어진 프로토콜입니다. 하지만 FTP보다 더 단순한 방식으로 파일을 전송합니다. FTP와 달리 UDP 기반이며 로그인 절차와 파일 디렉터리 조회 없이 단순히 파일을 전송합니다.
RSync
Remote Sync(RSync)는 원격에 있는 파일과 디렉터리를 복사하고 동기화하기 위해 사용되는 툴이자 프로토콜입니다. 리눅스와 유닉스에서는 백업 용도로 널리 사용됩니다. 동기화 작업을 진행할 때 비교 작업을 수행해 동일한 부분은 그대로 둔 채 수정된 부분만 찾아서 옮겨주는 작업을 수행해 줍니다.
WebDAV
Web Distrbuted Authoring and Versioning(WebDAV)는 HTTP의 확장으로 HTTP를 이용해 파일 서비스가 가능하도록 해주는 프로토콜입니다. 웹 서버를 표준 네트워크 드라이브로 표시할 수 있게 되며 HTTP 포트를 이용해 파일 전송을 할 수 있습니다.
그리고 VS2019를 재시작합니다. 해당 글쓴이는 이렇게 해결했지만 제 문제는 여전했습니다.
해결책 4 - 시스템 변수 확인
여기까지 해도 해결이 되지 않으신 분들은 저와 같은 현상으로 이번에는 해결하셨으면 좋겠습니다. 해결책 3을 시도하던 도중 이상한 것을 발견했습니다. 해결책 3에서 설명한 대로 터미널을 열고 dotnet 버전을 확인하기 위해 "dotnet --info"를 입력했습니다.
아무 생각 없이 넘어갔었는데 경로가 뭔가 이상했습니다. 해결책 1에서 dotNet5.0을 재설치할 때 확인한 화면하고 뭔가 달랐습니다.
이제 원인이 명확해졌습니다. 왜 어째서인진 모르겠지만 dotnet 기본 경로가 "C:\Program Files (x86)\dotnet"로 잡혀있었습니다. 왜 이런가 해서 찾아보니 "사용자 변수의 Path"값은 "C:\Program Files\dotnet\"로, "시스템 변수"의 값은 "C:\Program Files (x86)\dotnet\"로 잡혀있는 상황을 확인했습니다.
시스템 변수를 수정하고 다시 터미널을 열고 dotnet 버전을 확인하기 위해 "dotnet --info"를 입력합니다.
그동안 해결하겠다며 삽질하면서 설치한 모든 SDK가 쭉 나오면서 경로가 제대로 잡힌 걸 확인할 수 있습니다. 이제 Solution을 새로 만들고 확인하니 모든 프레임워크가 정상적으로 동작하는 걸 확인할 수 있었습니다.
셀프 호스팅 블로깅 / CMS 아름다움, 웹 표준 유용성에 중점을 둔 시멘틱(sementic) 개인 게시 플랫폼입니다.
#2. Mailchimp
이메일 마케팅 간편한 이메일 뉴스 레터.
#4. HubSpot
마케팅 자동화 인바운드 마케팅을 수행하는데 필요한 모든 소프트웨어를 제공합니다.
#5. Zendesk
안내 데스크 최고의 클라우드 기반 고객 서비스 소프트웨어.
맺는 글
우리가 매년 말했듯이 이러한 순위는 여러분들이 제공합니다. StackShare 커뮤니티는 사용 중인 스택뿐 아니라 스택을 선택한 이유를 공유함으로써 이와 같은 시상식을 가능하게 합니다. 올해 우리는 가장 흥미로운 협업 기능인 Stack Advice를 출시했습니다. 이는 특정 기술 스택 결정에 대한 조언을 쉽게 얻고 제공할 수 있는 방법입니다. Stack Advice는 성장하는 50만 명 이상의 개발자 커뮤니티와 연결하여 중요한 기술 결정을 내리는 데 도움을 받을 수 있는 새로운 방법입니다.
그래서 올해의 시상식에서 우리는 필요한 모든 종류의 중요한 기술 스택 결정에 대해 동료 개발자들에게 조언을 제공하기로 선택한 커뮤니티 회원을 인정하고 싶었습니다. 6개월 만에 여러분과 나머지 커뮤니티가 Stack Advice를 통해 3,000개가 넘는 토론에 참여했습니다.
이 모든 멋진 스택에 조언을 제공하는 데 중요한 방법으로 기여한 수천 명의 개발자가 있지만, 아래 15 명은 누군가를 돕기 위해 기꺼이 시간을 많이 들였고 특별히 인정받을 자격이 있습니다.
조언을 구 해주신 모든 분들과 추천을 해주신 모든 분들께 감사드립니다! 아래에서 각 개발자의 링크를 클릭하면 그들이 공유 한 모든 결정과 조언을 볼 수 있습니다!
올해 우리는 StackShare 커뮤니티에 공유된 8백만 개 이상의 데이터 포인트를 분석하여 이러한 순위를 제공하게 되었습니다. StackShare Awards를 처음 본다면 편하게 잠시만 기다려 주세요.
그리고 이제 여러분 모두가 기다리셨던 것... StackShare Top Tools Awards 2020의 수상자를 위한 카테고리입니다.
StackShare Top Tools Awards 2020의 수상자
2020년의 새로운 툴
2020년의 분석 툴
2020년의 애플리케이션 호스팅 툴
2020년의 웹 서버
2020년의 애플리케이션 유틸리티
2020년의 자료 및 미디어 툴
2020년의 업무 지원(Back Office) 툴
2020년의 빌드, 테스트, 배포 툴
2020년의 협업 툴
2020년의 커뮤니테이션 툴
2020년의 데이터 베이스
2020년의 디자인 툴
2020년의 프로그래밍 언어
2020년의 프런트엔드 프레임워크
2020년의 백엔드/풀 스택 프레임워크
2020년의 모바일 언어
2020년의 모니터링 툴
2020년의 결제 툴
2020년의 영업, 지원, 마케팅 툴
언제나 그렇듯이 이 시상식이 매년 가장 큰 일입니다. 우리는 방대한 데이터들을 살펴보고 여러분이 알고 있거나 시험해 보거나 이미 사용하고 있어야 하는 최고의 도구인 좋은 도구들을 찾습니다. 30만 개 이상의 기술 스택, 320만 개 이상의 팔로우, 수백만 개 이상의 개발자 댓글과 리뷰 그리고 투표에서 사용량을 집계했습니다. 자 이제 확인해 보도록 합시다.
이 결과가 놀랍지 않았다고 말한다면 그건 거짓말일 겁니다. COVID-19로 인해 전 세계의 모든 사람들이 격리되었다는 사실은 2020년에 원격 작업 툴이 인기가 많았음을 의미합니다. 사람들이 재택근무를 더 쉽게 하기 위해 연구한 툴입니다. 그러나 이 모든 것들 가운데 스웨덴의 디자이너이자 Simple 제작자인 Rasmus Myhrberg 덕분에 2020년은 실제로 프리랜서의 해가 될 수 있었습니다.
다행히도 전 세계의 소프트웨어 개발자와 엔지니어들은 격리 기간 동안에도 작업을 계속할 수 있었으며 많은 사람들이 더 많은 일을 하게 되었습니다. 모든 사람들이 사무실 밖에서 일하는 상황에서 작업 시간을 추적할 수 있는 도구가 1위라는 사실은 놀랄 일이 아닙니다. Simple은 말 그대로 작업 시간을 추적하는 아주 간단한 툴이며 작업에 얼마나 오랜 시간이 걸렸는지 확인할 수 있습니다. 모바일, 데스크톱, 태블릿 등 모든 기기에서 실시간으로 동기화됩니다. 모든 흥미로운 점들이 무엇인지 알고 싶다면 한번 사용해 보세요. 자세한 내용은 Simple 웹 사이트를 참고해 주시기 바랍니다.
#2. Better Uptime
웹사이트 모니터링.
사이트가 다운되었을 때 팀에서 적합한 사람을 호출합니다.
#3. Playwright
브라우저 테스팅.
Microsoft에서 제공하는 단일 API로 Chromium, Firefox 및 WebKit을 자동화하는 노드 라이브러리.
한 솔루션에서 S3 지원 업그레이드 소스를 작성하고 다른 솔루션에 적용하기 위해 소스코드를 그대로 가져와 컴파일하는 도중에 Aws::MakeShared에서 "std::shared_ptr<Aws::FStream>"에서 "std::shared_ptr<Aws::IOStream>"으로의 사용자 정의 변환이 적절하지 않습니다. 라는 이상한 에러가 발생합니다.
VC100을 VC141로 업그레이드하는 도중에 발생했습니다. 실행은 되지만 해당 함수에서 false를 반환하고 해당 기능이 동작하지 않는 현상이 있습니다. 그냥 죽었으면 바로 알았을 텐데 출력 로그에만 찍히고 프로그램의 다른 기능은 잘 돌아서 놓치고 있던 문제였습니다.
출력 로그를 확인해보니 다음과 같은 에러 메시지가 확인됩니다.
[Exception] : SendErrorMessage - 파일이나 어셈블리 'Newtonsoft.Json , Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' 또는 여기에 종속되어 있는 파일이나 어셈블리 중 하나를 로드할 수 없습니다. 찾은 어셈블리의 매니페스트 정의와 어셈블리 참조가 일치하지 않습니다. (예외가 발생한 HRESULT: 0x80131040)
해당 문서는 .Net에 관련된 문서지만 예외 코드가 같으니 그냥 봅니다. 중간에 원인으로 다음과 같이 설명하고 있습니다.
When Microsoft .NET Framework 3.5 Service pack 1 is installed and the ClickOnce store is used for the first time, cdf-ms files may be deleted. This can also be caused by deleting the registry key HKEY_CURRENT_USER\Software\Classes\Software\Microsoft\Windows\CurrentVersion\Deployment\ClickOnce35SP1Update. The missing cdf-ms files will cause ClickOnce to wrongly share strong named assembly with the same version but different file hash.
문제가 생기는 dll의 버전을 확인해 봅시다.
라이브러리에 사용된 dll의 버전과 응용 프로그램에서 사용하려고 하는 dll의 버전이 달라 발생하는 문제였습니다. 해당 버전 불일치 문제를 수정해주면 정상 동작하는것을 확인할 수 있습니다.
자바와 스프링 또는 파이썬과 장고를 사용하는 것처럼 웹 애플리케이션의 백엔드를 개발하기 위한 많은 선택사항이 있지만 최근에는 Node.js가 선호되는 옵션으로 등장했습니다.
NodeJS의 가장 좋은 점은 단 하나의 프로그래밍 언어인 자바스크립트를 사용해 완전한 웹 애플리케이션을 개발할 수 있다는 것입니다.
만약 Node 루트로 가고 싶다면 Rob Percival과 Andrew Mead의 "The Complete Node.js Developer course"부터 시작하는 것이 좋습니다.
2. 자바
저는 주로 웹 개발 및 기다 프로그래밍 언어를 배운 자바 개발자이므로 백엔드 개발과 관련하여 선호하는 선택은 자바입니다 Core Java 또는 Jaba + Spring Boot를 사용하여 최첨단 고성능 백엔드를 만들 수 있습니다. 자바와 스프링 루트로 가고 싶다면 참여할 수 있는 몇 가지 강의가 있습니다.
The Complete Java Masterclass
Spring Framework 5: Beginner to Guru
3. 파이썬
파이썬은 강력한 프레임 워크와 라이브러리로 가득 찬 또 다른 멋진 언어입니다. 파이썬을 사용하여 백엔드를 개발하여는 경우 파이썬 프로그래머를 위한 풀 스택 웹 개발 프레임워크인 장고를 사용할 수 있습니다. 파이썬을 시작하기 위한 파이썬과 장고를 배울 수 있는 몇 가지 강의가 있습니다:
The Complete Python Bootcamp
Python and Django Full Statck Web Developer Bootcamp.
4. 루비
루비는 웹 개발에 완벽한 또 다른 강력한 언어입니다. 웹 애플리케이션을 정말 쉽고 빠르게 만들 수 있는 Rails라는 훌륭한 프레임워크가 있습니다. 루비로 시작하고 싶다면 Udemy의 "The Complete Ruby on Rails Developer Course"를 확인하세요.
최고의 리소스 중 하나이며 만약 더 많은 선택이 필요하고 무료 리소스를 통해 배우는 것을 꺼리지 않는다면 무료 루비 및 Rails 강좌를 살펴볼 수 있습니다.
5. PHP와 MySQL
사람들이 PHP에 대해 부정적인 말을 하는 것은 잊어버리세요. 여전히 서버 측 코드를 작성하는 가장 쉬운 방법이며 인터넷 상의 거의 50%가 PHP와 MySQL 스택에서 실행됩니다.
PHP 학습에 관심이 있는 경우 Udemy에서 초보자를 위한 PHP를 위한 강의를 확인할 수 있습니다. 더 많은 선택 사항과 무료 리소스가 필요한 경우 시작할 수 있는 무료 PHP와 MySQL 코스 목록을 확인할 수도 있습니다.
이것이 2021년에 웹 개발자를 시작하는 방법에 대한 모든 것입니다. 이 자료는 항상 원했던 웹 개발자가 되기 위한 몇 가지 경로를 강조하기 때문에 웹 개발자를 시작하기에 좋은 리소스입니다.
하지만 어딘가에 막혀있고 혼동이 있는 경우 언제든지 여기에 질문할 수 있으며 가능한 한 최선을 다해 답변해 드릴 것입니다.
프로그래밍 세계가 처음이라면 이 로드맵과 많은 기술이 당신을 겁나게 만들지 마세요. 이는 지침일 뿐이며 웹 개발을 배우고 웹 개발자가 되기 위해 다른 루트를 선택할 수도 있습니다. 여러분은 원하는 경로를 선택하고 그에 충실하면 됩니다.
맺는말
지금까지 이 글을 읽어 주셔서 감사합니다. 배워야 할 것이 너무 많고 참여할 강의가 너무 많다고 생각할 수도 있지만 걱정할 필요는 없습니다. 대부분의 내용은 이미 알고 있을 가능성이 높으며 사용할 수 있는 유용한 무료 리소스도 많이 있습니다. 여기저기서 모든 것이 무료는 아니지만 그만큼 가치가 있는 최고의 리소스와 함께 연결해 두었습니다.
저는 Udemy 강좌의 특별한 팬입니다. 강좌를 구입하면 돈을 받는 것 때문이 아니라 매우 저렴하고 아주 적은 금액으로 많은 가치를 제공해 주는 강좌를 원하는 대로 자유롭게 선택할 수 있기 때문입니다.
하루하루 끝날 때마다 여기에 언급된 내용에 대하여 충분한 지식과 경험을 쌓아야 합니다. 웹 개발 여정에 행운을 빕니다. 확실히 쉽지는 않겠지만 이 로드맵과 가이드를 따르면 웹 개발자가 되는데 한걸음 더 가까워질 겁니다.
웹 개발 여정에 최선을 다하고 멋진 콘텐츠를 제작 한 Kamran Ahmed에게 큰 감사를 드립니다.
2021년에 프런트엔드 개발자가 되고 싶다면 아래 프런트 엔드 개발자 로드맵을 따르는 게 좋습니다. 여기서 배우고 따라야 할 중요사항은 노란색 상자에 강조되어 있으며 이 상자에 집중하는 것이 좋습니다. 로드맵 아래에는 학습에 도움되는 책과 코스 같은 추가 리소스가 있습니다.
웹 개발자가 되고 싶다면 인터넷, 웹 애플리케이션, HTTP와 같은 프로토콜 및 웹 개발 전반에 대한 기본 사항을 알아야 합니다. 고맙게도 이것들 뿐 아니라 그 이상을 배울 수 있는 수많은 강의들이 있습니다.
웹 개발을 배우고 싶은 모든 프로그래머들에게 다음 리소스를 권장합니다.
The Web Developer Bootcamp by Colt Steel
The 2021 Complete Web Developer Bootcamp by Angela Yu
The Advanced Web Developer Bootcamp
2. HTML과 CSS
HTML과 CSS는 모든 웹사이트의 중심입니다. HTML은 구조를 제공하고 CSS를 스타일을 제공해 시각적으로 더 멋지게 보이도록 도와줍니다. 진정한 프런트엔드 개발자가 되고 싶다면 이 두 가지를 마스터해야 합니다. 이 두 가지를 시작하려면 이 무료 HTML과 CSS 강의를 확인해 온라인으로 배울 수 있습니다.
3. 자바스크립트
객체 지향 프로그래밍에서 추상화, 캡슐화, 다형성, 상속의 네 개의 기둥이 있는 것처럼 웹 개발에는 HTML, CSS, 자바스크립트라는 세 개의 주요 기둥이 있습니다.
처음 두 개는 구조와 스타일을 제공하지만 상호 작용을 추가해 생생하게 만드는 것은 자바스크립트입니다. 요즘의 자바 개발자가 자바 스크립트를 배우는 것은 매우 중요하며 고맙게도 초급 자바스크립트와 고급 자바 스크립트를 모두 배울 수 있는 많은 강의가 존재합니다. 다음 몇 가지 권장사항이 있습니다.
The Complete JavaScript Cource 2021
A Beginer's Guide to Advanced JavaScript and ES6
4. 타입 스크립트
C와 C++가 있는 것처럼 타입 스크립트는 C++ 만큼 인기가 많지 않지만 자바 스크립트++로 여겨질 수 있습니다. 타입 스크립트의 좋은 부분은 자바스크립트 코드에 타입 안정성을 추가해 개발 단계에 불쾌한 자바스크립트 타입 관련 오류를 확인할 수 있다는 것입니다.
또한 자바스크립트용 객체 지향 코드를 쉽게 개발할 수 있습니다. 타입 스크립트를 배우고 싶다면 "Understanding TypeScript"는 시작하기 좋은 강의입니다. 더 많은 선택 사항이나 무료 강의가 필요한 경우 시작할 수 있는 또 다른 무료 타입 스크립트 강의가 더 있습니다.
5. 앵귤러
사람들이 일반적인 HTML, CSS, 자바스크립트를 사용해 웹사이트를 구축하던 시대는 지났습니다. 요즘 대부분의 작업은 앵귤러, 리액트, 뷰 js와 같은 프레임워크에서 수행됩니다. 코드를 저장하기 위한 구조를 제공해 줄 뿐 아니라 웹 애플리케이션을 빠른 시간 내 쉽게 개발할 수 있습니다.
앵귤러는 구글에서 지원하므로 앵귤러를 배우는 것은 모든 최산 웨 개발자에게 좋은 선택입니다. 앵귤러를 배우고 싶다면 Max의 "Angular - The Complete Guide"보다 좋은 과정은 없을 겁니다.
6. 리액트
앵귤러와 마찬가지로 리액트는 웹 애플리케이션 개발에 널리 사용되는 라이브러리입니다. 재사용 가능한 컴포넌트를 작성하여 현대적인 인터랙티브 웹 페이지를 만드는 데 사용됩니다.
앵귤러가 구글에서 지원하는 것처럼 리액트는 페이스북에서 지원하므로 유명합니다. 리액트를 배우고 싶다면 Stepgen Grider의 "Modern React with Redux" 또는 Max의 "React - The Complete Guide on Udemy"에 참여하세요. 둘 다 온라인에서 리액트를 배울 수 있는 훌륭한 과정입니다. 링크는 다음과 같습니다:
Modern React with Redux
React - The Complete Guide
7. 뷰 js
뷰 또는 뷰 JS는 작년에 속도에 대한 성능이 개선되었으며 점점 더 많은 사람들이 뷰 js를 추천하고 상요하고 있습니다. 저는 여전히 뷰의 초보자이며 아마도 뷰를 배우고 뷰 기반의 애플리케이션으로 마이그레이션 하는데 시간이 걸릴 것입니다. 그러나 이미 뷰 js를 배우기로 결정을 내린 경우 Udemy의 Vue.js Essentials 강의부터 시작할 수 있습니다.