블로그

일프로

[kubernetes] 쿠버네티스 첫 오브젝트 잘 끼우기 #6

해당 블로그는 [쿠버네티스 어나더 클래스] 강의에 일부 내용입니다. 많은 관심 부탁 드려요!강의 링크 : https://inf.run/NzKy 오늘 공부할 내용이 쿠버네티스에서 사용되는 오브젝트들의 한 20% 정도가 되지 않을까 싶어요. 그동안 공부한 양이 적지도 않았고언제 쿠버네티스를 다 배우나 무거운 마음일 수도 있는데 제가 좀 안심이 되는 얘기를 드리면..혹시 파레토의 법칙 이라고 들어보셨나요? 예를들어, 우리나라의 20% 인구가 80%의 땅을 갖고 있다던가, 회사에 100명이 일하고 있는데 20명이 사실 그 회사에 80% 일을 하고 있다는 거죠. 수학적으로도 증명 가능한 말이라고 하고요.결국 원인의 20%가 80%의 결과를 만들어낸다는 뜻인데 저는 이번 강의를 이렇게 말씀드릴 수 있을 것 같아요. 오늘 배울 20%의 오브젝트들이 앞으로 쿠버네티스에서 자주 쓰는 오브젝트의 80% 입니다. 그렇기 때문에 오늘 강의가 정말 중요하고 이번 블로그도 끝까지 잘 읽어 주시길 부탁 드릴게요.   이번 강의는 제가 오랜 시간 걸려서 쿠버네티스를 이해했던 단계들을 바탕으로 구성을 한 거고요. 오브젝트를 잘 이해하는 방법으로 세 가지 단계를 준비를 했습니다.쿠버네티스의 어떤 기능은 그림을 그려볼 때 이해가 쉽고, 어떤 기능은 실제 App이랑 동작을 하는 걸 봐야지 이해가 정확해요. 그리고 어떤 기능은 쿠버네티스 내부 동작을 아는 게 중요한데, 이번 수업에서는 [Object 그려보며 이해하기]만 다룰 거고요. Object 그려보며 이해하기카페 실습 자료실 링크 (link) 이 단계에서는 위 강의 자료실에 실습으로 사용될 yaml 파일을 읽어보면서 오브젝트들을 하나씩 그려보고, 각 오브젝트들에 대한 역할이나 기능들을 살펴보겠습니다.이제 Object들을 하나씩 그려 보면서 역할이나 기능들을 간략하게 설명을 드릴게요.Namespace를 보면 Namespace는 Object들을 그룹핑 해주는 역할이에요. 그리고 metadata에 name이랑 label이 있는데 일단 그림만 그려놓고 넘어갈게요.그리고 다음으로 Deployment는 Pod를 만들고 업그레이드를 해주는 역할이구요. 여기에 namespace로 위에서 만들었던 이름이 있죠? 이렇게 하면 이 Deployment는 이 Namespace에 소속이 됩니다. 그리고 여기 이름이 있는데 한 namespace 안에서 이 이름은 중복이 되면 안되요. 그리고 label이랑 이 selector는 앞으로 계속 나올텐데 한번에 정리를 해서 설명을 드릴 거라 일단 이런 게 있다고만 알고 넘어가고요.그리고 replicas는 pod를 2개를 만들라는거고 strategy의 RollingUpdate는 deployment 기능의 핵심인데, 이 업데이트 방식에 대해서는 다음 강의에서 실습으로 해볼거에요. 그리고 template 부터가 이 내용대로 pod가 만들어진다고 보면 되는데, nodeSelector는 pod를 띄울 노드를 선택하는 거고 containers라는 속성이 있고 그 밑에 옵션들이 쭉 있는데 이 image는 제가 DockerHub에 이 이름으로 컨테이너 이미지를 올려놨기 때문에 여러분들이 이 image에 이렇게 넣으면 다운을 받아서 쓸 수 있는 거예요.  그리고 밑에 envFrom가 있고 configmap과 연결이 되어 있는데, Application에 환경 변수랑 관련된 부분이고 configmap은 그 값을 제공해 주는 역할을 해요.그 밑에 프로브들이 3개가 있는데 startupProbe는 App이 잘 기동이 됐는지 체크를 하고 있다가 기동이 안 되면 App을 재기동시키고요. 잘 됐으면 이 밑에 readinessProbe랑 livenessProbe를 시작 시켜요. 그래서 readinessProbe는 App에 트래픽을 연결 할 건지를 결정하는 속성이고 이 livenessProbe는 App이 정상이 아니면 재시작을 시킬 건지 판단하는 속성이에요. 정말 중요한 속성이고 이건 실제 App기능을 보면서 자세히 이해를 해 볼 거고요.다음으로 resources는 pod에 CPU랑 memory를 할당을 시킬 거고 최대 limit까지 쓸 수 있다는 설정이 있는데 이걸 설정하지 않으면 pod가 노드의 자원들을 모두 써버리게 됩니다.그리고 volumeMounts가 있는데 이 mountPath는 pod 내부에 만들어지는 디렉토리이구요. 이 이름이랑 volumes에 이 이름이 매칭이 되서 실제 persistentVolumeClaim이라는 object랑 연결이 되는 거에요. 그리고 secret-datasource도 이렇게 name으로 연결이 되면서 secret object랑 연결이 됩니다.  다음으로 Service고요. 이렇게 metadata 3세트는 자주 나올 거예요. namespace에 속한 object고 name이랑 labels이 있죠. 그리고 밑에 selector랑 ports, type이 있는데, 이 Service의 역할은 pod한테 트래픽을 연결시켜 주는거에요. 근데 이름을 보면 한 namespace안에는 이름이 중복되면 안 된다고 했잖아요? 정확히는 같은 종류의 object끼리 이름이 같으면 안 되는 거예요. 그래서 Service랑 Deployment는 서로 다른 object라 이름이 같아도 되고요.이제 ConfigMap을 보면 pod의 환경변수 값을 제공하는 역할이고요. 이렇게 metadata 3세트랑 그리고 data가 있는데 이게 아까 말했던 환경변수로 들어갈 값의 내용이에요. 그리고 밑에 Secret도 ConfigMap이랑 비슷한데 pod에 좀 더 중요한 값을 제공하는 역할로 쓰여요. 다음 강의에서 App기능을 실습을 해보면서 좀 더 이해를 해 볼게요. 여기서는 data가 아니고 stringData가 있는데 좀 다르죠? 이렇게 쓰면 stringData 내용들이 pod 안에 파일로 만들어집니다.  그리고 PersistentVolumeClaim이 있고 pod에서 pv를 지정할 때 사용을 하는데, 밑에 저장 공간을 얼마나 사용할지 그리고 이 저장 공간의 accessModes로 읽기/쓰기가 가능하다는 옵션이 있는데, 이 내용은 이번 실습에서는 동작하지 않고요. 그냥 필수값이라서 넣어둔 거라 다음번에 Volume만 다루는 강의에서 다시 설명을 드릴게요. 이번 실습에서는 selector만 쓰입니다.그리고 다음으로 PersistentVolume인데, 실제 Volume을 지정하는 역할을 하고요. 근데 여기에는 namespace가 없죠? 이 object들의 가장 큰 범위가 Cluster거든요. Namespace도 Cluster 안에 속해 있는 object고요. PV도 여기에 만들어지는데,object들은 크게 두 분류로 나뉘어요. Namespace랑 PersistentVolume은 Cluster Level의 Object라고 하고요. Deployment랑 Service들은 Namespace Level에 Object라고 해요. 그리고 각 object들은 자신의 level이 있기 때문에 Deployment는 PV처럼 Cluster level에 만들어 질 수가 없습니다.다시 PV로 돌아와서 마찬가지로 이런 내용들은 일단 넘어가고, local이 중요한데 path를 volume으로 사용하겠다는 내용이에요. 그리고 그 대상 노드는 밑에 nodeAffinity가 있는데, 좀 복잡해 보이지만, nodeSelector랑 똑같이 결국 Master Node를 지정한다는 내용입니다. 그래서 여기에 path가 사전에 없으면 PV를 만들 때 문제가 생기기 때문에 디렉토리를 미리 만들어 준 거고요.  그리고 이제 마지막으로 HPA인데, 부하에 따라 pod를 늘려주고 줄여주는 스케일링 역할을 하구요. scaleTargetRef로 그 스켈링 대상을 지정을 하고, min/maxReplicas는 최소 두 개의 pod를 유지를 하고 있다가 부하가 생기면 최대 4개까지 늘어나도록 설정을 한 거예요. 그리고 metrics라는 설정은 pod의 cpu가 평균 40%가 늘어나면 스케일 아웃을 하라고 설정을 한 겁니다. 그리고 밑에 behavior는 pod가 한번 증가를 한 후에 600초, 그러니까 10분 동안 또 pod가 추가적으로 늘어나지 않게 하는 설정인데, pod가 2개에서 3개로 늘어나자마자 부하가 더 증가한다고 해서 바로 4개로 늘리고 싶진 않을 때 이런 설정을 해요.그리고 마지막으로 namespace에 대한 기능을 하나 더 말씀드리면, namespace를 삭제하면 이 안으로 만든 모든 object가 같이 삭제가 되거든요. 그래서 실습을 하고 강의에서 배포한 object를 모두 삭제를 할 때는 이 namespace를 삭제하는 명령 하나만 날리면 되구요. PV는 namespace에 속하지 않기 때문에 별도로 한번 더 삭제를 해 줘야 되요.그럼 여기까지 오브젝트들을 봤는데 지금 좀 혼란스럽고 이해가 안되는 상황이라면 그게 맞아요. 현재까지는 각 object들이 어떤 역할을 하는지 대략적인 느낌만 이해를 하면 됩니다 :)  Object 그려보며 이해하기 - (label/selector/naming) (1)제가 대리 때, 팀에 차장님 한 분이 새로 들어오셨는데, 같이 일 한지 한 두 달이 넘었을 때였어요. 옆팀 부장님이 저한테 새로 온 차장님 이름을 물어보시더라고요. 근데 저는 평소 강차장님이라고만 불러서 이름은 처음 인사를 할 때 듣고 까먹은 상태였거든요. 나중에 확인해 봐야지 하면서 차일피일 미루고 있었는데, 다행히도 이 부장님께서는 제 대답에 딜레이를 느끼시고 바로 다른 분한테 물어봤습니다. 근데 저는 이 상황이 많이 부끄러웠어요.여러분도 이렇게 시간이 어느 정도 지났을 때 모르고 있으면 부끄러워지는 상황들이 있지 않나요?지금부터 배울 이 내용이 바로 그런 느낌이에요. 저도 실제로 쿠버네티스를 시작하고 2년 정도가 지나서야 이 부분을 신경쓰기 시작했는데, 해당 내용은 강의 영상에서 잘 설명을 드릴 예정이고 여러분들은 부디 저와 같은 실수를 하지마시고 잘 챙기시길 당부 드릴께요. Object 그려보며 이해하기 - (label/selector/naming) (2)여기까지 읽으시느라 정말 수고하셨고요. 처음 이런 내용을 들으시는 분께는 뭔가 많은 내용처럼 보일 수도 있지만 정말 자주 쓰는 기능들이고, 조금만 쓰다 보면 금방 익숙해지는 부분들이니까 너무 부담 갖지 마세요.그럼 오늘 블로그는 여기까지 마치겠습니다. ps. 뒤로가기 함부로 누르지마라. 너는 누구에게 한 번이라도 좋아요♡를 준 사람이었느냐 :)

데브옵스 · 인프라인프런쿠버네티스어나더클래스지상편일프로kubernetesdevopskubeops첫오브젝트잘끼우기

감자

컴퓨터 공학(CS)이 중요할까요?

저는 학부 시절에 전공수업을 들으면서 항상 답답한 마음이 있었어요.논리회로, 컴퓨터 구조, 자료구조, 알고리즘, 운영체제, 네트워크 등 컴퓨터 공학에서 꼭 배우는 과목을 들을 때마다 너무 막연한 기분이었죠.분명히 한 과목을 들을 땐 해당 내용에 대해서 자세히 배우지만 너무 이론적인 것만 배우는 느낌이 들었고,"왜 지금 당장 결과가 보이는 내용으로 공부하지 않을까?"라는 질문을 했었죠.🧐CPU가 어떤 구조이고 어떻게 동작하는지 이론적으로는 배우지만 정작 CPU가 어떻게 생겼는지는 아무도 알려주지도 않고 스스로 찾아본 적도 없었어요.CPU뿐만 아니라 RAM, 하드디스크 등 주변장치가 어떻게 생긴 줄도 몰랐죠.다른 과 친구들은 "너 컴퓨터 잘 아니까 부품도 잘 알고 조립도 잘하겠네?"라고 종종 물어보지만 그렇지 않았죠.네트워크 수업 때는 모뎀, 허브, 라우터 등 전부 이론적으로, 기껏해야 그림으로 된 예시로 보니까 현실 세계랑 매칭이 잘되지 않았어요.교수님들은 학교에서 배우는 전공이 중요하다고 말씀하실 때 항상 따라붙는 말이 있었어요.컴퓨터 공학은 매우 복잡하므로 Divide and Conquer(분할 정복)로 접근해 하나씩 자세히 알아보는 것이 중요하다, 하지만 이렇게 하나씩 배운 개념을 조합해 전체적으로 볼 줄도 알아야 한다.당시엔 전체적으로 볼 줄 알아야 한다는 말이 크게 와닿지 않았었는데요. 첫 직장에서 백엔드 개발자로 일하는 순간부터 느꼈어요.회사에서 사용하는 기술 스택들은 처음 접해보는 것들이었고 말로만 듣던 AWS도 직접 만져봐야 했죠.이때 많은 기술 스택과 AWS에서 사용하는 용어들은 굉장히 혼란스러웠죠.하지만 용어만 다를 뿐 전공에서 배운 개념들은 그대로였어요.제가 고생했던 것은 "실제로" 이것들이 어떻게 연결되어 동작하는지가 머리에 잘 정리되어 있지 않았던 것이었죠.회사에서도 공부할 시간을 줘서 얼마 되지 않아서 정리할 수 있었어요.그때 교수님들의 말씀이 다시 생각났어요."하나씩 배운 개념을 조합하는 게 이래서 중요하구나~"라고요.회사에 적응하고 개발할 때도 학과에서 배운 내용이 직/간접적으로 도움 된 적이 많아서 그때마다 교수님들을 떠올렸죠.한 번은 사용자의 특정 요청 중 일부가 아주 가끔 중복돼서 들어오는 경우가 있었어요.똑같은 환경에서 테스트해봐도 확인해볼 수도 없었고 하루에 하나가 있을까 말까 했죠.저희 팀에선 이 문제가 한 달 넘게 해결하지 못하고 있었던 상황이었어요.저도 이 문제가 왜 발생하는지 골치 아팠었죠.🧟그러던 어느 날 문득 원인이 예측됐어요. 운영체제에서 배웠던 개념에서 떠올릴 수 있었어요.그래서 예측한 원인을 해결할 방법을 찾아 코드를 수정했고 지켜봤어요!똑같은 문제는 다시는 발생하지 않았죠. 👏 이렇게 실무에서 컴퓨터 공학(CS)의 중요성을 알게 되어 기본기가 탄탄해야 한다는 말에 극공감하게 됐어요.하지만 CS를 배우는 건 어렵고 지루해서 금방 포기하게 되죠.그래서 저는 수업에서 들었던 궁금증, 그때 알았으면 좋았을 것들을 그림과 예시를 들어가며 직접 만들기로 했어요.현재 준비하고 있는 강의는 네트워크인데요.이론적인 내용뿐만 아니라 우리가 일상에서 볼 수 있는 기기가 네트워크에서 어떤 용어로 쓰이고 어떤 역할을 하는지,큰 그림을 맞춰볼 거예요. 만약 CPU의 동작 방식을 배웠다면 위의 그림처럼 CPU가 실제로 어떻게 생겼는지도 알아야 헷갈리지 않겠죠?네트워크는 하드웨어와 소프트웨어가 공존하기 때문에 이렇게 하드웨어까지 알아가며 퍼즐을 맞춰갈 겁니다.이만 다음 강의인 "그림으로 쉽게 배우는 네트워크"를 준비하러 가보겠습니다.😊

기타 (개발 · 프로그래밍)CS전공자비전공자컴퓨터공학그림으로쉽게배우는네트워크

아셀

꿀팁 사이트 모음.zip

여러분은 매일 어떤 사이트를 이용하시나요?일상생활에서 유용하게 쓸 수 있는 꿀팁 사이트를 모아봤습니다 (●'◡'●) W3 Schools 웹 기술을 배우는 교육용 웹 사이트로, HTML/CSS, 자바스크립트, PHP, Bootstrap, JQuery 등에 대한 자료를 제공합니다. 듀얼 화면 코드 에디터를 제공하여 코드를 작성하면 브라우저에서 어떻게 반영되는지 실시간으로 확인이 가능해요. 각 섹션에 맞게 문제를 풀 수 있도록 퀴즈도 제공하고 있어서 직접 문제를 풀어볼 수 있으니, 시도해보시면 어떨까요? Clipping Magic배경색 누끼 따는 게 어렵고 귀찮으셨던 분들이라면 주목! 3초면 배경을 없애주는 서비스입니다. 이미지를 간단하고 빠르게 수정하여 바로 사용할 수 있도록 만들어주다보니, 북마크해두고 쓰기에 정말 편해요 ♪(´▽`) 아보카도 메일메일 쓰는 게 너무나 어려워서 머리가 아팠던 직장인 분들에게 큰 도움이 될 거예요! 완벽하게 쓰여진 메일 템플릿을 복사해서 수정하기만 하면 바로 사용이 가능하답니다. 요청/제안, 안내/공지, 문의/답변, 보고/컨펌, 인사/축하, 신청/제출, 사과/수습, 영어 등 정말 다양한 상황에서 쓸 수 있는 메일 가이드가 분류별로 나와있으니 필요한 상황에 따라 골라서 쓸 수 있어요! Noun Project내가 쓴 콘텐츠, 혹은 썸네일이 조금 더 돋보일 수 있도록 간단한 이미지를 사용하고 싶다면! 아이콘과 사진 등을 모아놓은 Noun Project를 추천합니다. 500만 개가 넘는 사진과 아이콘이 있어서 활용도가 매우 높아요. Internet Archive사이트들의 과거 모습을 보여주는 서비스입니다. 위의 이미지는 인프런의 2017년 모습인데요. 현재의 모습을 갖추기까지 점진적으로 큰 변화가 있었던 것 같아요. 우측 상단에서 시기를 조정하면 각 시기마다 어떤 모습이었는지 자세하게 확인이 가능해요! 여러분도 이전 모습이 궁금했던 사이트가 있다면 직접 확인해보세요!

교양꿀팁사이트모음

깔깔마녀

인프런 비즈니스 서비스 이용 기업수가 2,800개를 돌파했어요!

인프런 비즈니스 서비스는기업/기관 담당자가 임직원/소속 수강생이 인프런의 콘텐츠를 학습 할 수 있도록 관리해 주는 서비스 입니다.인프런 콘텐츠의 높은 퀄리티와 간편한 서비스 이용 방식으로, 임직원과 관리자 모두의 만족도가 높은것이 그 특징인데요! 2019년 처음 서비스를 도입 한 이후로 많은 기업에서 전해주신 애정어린 피드백과 조언으로 개선을 반복한 결과, 교육 담당자님들이 실제로 꼭 필요한 기능만을 쏙쏙 담은 서비스로 거듭나게 되었습니다. 🥳🥳 ✅ 합리적인 교육 비용꼭 필요한 강의만, 수강 신청한 만큼만 정산✅ 간편한 관리손쉬운 결제수단 등록/정산 처리수강생 간편 추가/삭제✅ 내부 교육 정책에 맞는 수강 환경 커스터마이징강의 가격/카테고리별 지원 여부 설정예산에 따른 지원 금액 및 개수 설정수강 신청 기간 및 학습 기간 설정✅ 학습 현황 모니터링 및 시스템 연동수강생 대상 공지사항수강 독려 메일 전송API & SSO 연동 오랜 기간 인프런 비즈니스를 이용해 주시는 기업과 더불어 새로운 기업에서도 인프런 비즈니스를 적극 이용하시고 사랑해주심에 따라, 인프런 비즈니스 이용 기업이 2,800곳을 돌파했습니다. 🎉🎉인프런 비즈니스 팀은 앞으로도 1:1 맞춤 컨설팅을 통해 기업에 꼭 맞는 교육을 운영하실 수 있도록 적극적으로 지원하겠습니다! 😘   관련 보도 자료스타트업엔 : https://www.startupn.kr/news/articleView.html?idxno=44150비석세스 : https://www.besuccess.com/it-%EA%B8%B0%EC%88%A0-%EA%B5%90%EC%9C%A1-%EC%98%A4%ED%94%88[…]B%8B%88%EC%8A%A4-%EC%9D%B4%EC%9A%A9-%EA%B8%B0%EC%97%85-2800/플래텀 : https://platum.kr/archives/222292와우테일 : https://wowtale.net/2024/02/06/71339/

경영인프런비즈니스사내교육역량강화교육기업교육

고승조

spring 과 springBoot의 차이점

Spring과 Spring Boot는 모두 스프링 프레임워크를 기반으로 한 자바 웹 개발 프레임워크입니다. 둘 간에는 몇 가지 차이점이 있습니다.Spring은 스프링 프레임워크의 핵심 모듈을 모아서 만든 프레임워크입니다. Spring에서는 개발자가 직접 설정 파일을 작성하여 스프링 컨테이너를 구성하고, 필요한 빈 객체를 등록하고, 빈 객체 간의 의존성을 설정해야 합니다. Spring은 특정한 구성을 위해 추가적인 라이브러리와 설정이 필요합니다.반면, Spring Boot는 스프링 프레임워크를 보다 쉽게 사용할 수 있도록 만든 프레임워크입니다. Spring Boot에서는 개발자가 설정 파일을 작성할 필요 없이, 프로젝트의 설정과 라이브러리 의존성을 자동으로 처리해주는 기능을 제공합니다. 또한, Spring Boot는 실행 가능한 JAR 파일을 만들 수 있습니다.Spring Boot는 Spring에서 제공하는 여러 기능들을 자동으로 설정하여 개발자가 보다 쉽게 사용할 수 있도록 해줍니다. 예를 들어, Spring Boot는 스프링 MVC, 스프링 Data JPA, 스프링 Security 등의 기능을 자동으로 설정하며, 개발자가 별도로 설정 파일을 작성하지 않아도 사용할 수 있습니다. 또한, Spring Boot는 Actuator라는 모니터링과 관리를 위한 기능을 제공하여, 애플리케이션의 상태를 모니터링하고, 필요한 조치를 취할 수 있도록 해줍니다.이러한 차이점들은 Spring과 Spring Boot의 사용 목적과 방식을 크게 달리 합니다. Spring은 개발자가 직접 설정 파일을 작성하고, 빈 객체를 등록하고, 빈 객체 간의 의존성을 설정하는 것을 요구합니다. 반면, Spring Boot는 개발자가 보다 쉽게 스프링을 사용할 수 있도록 설정과 의존성 처리 등을 자동으로 처리합니다. Spring은 스프링 프레임워크를 보다 세밀하게 제어하고자 하는 경우에, Spring Boot는 빠르고 간단하게 스프링 애플리케이션을 개발하고자 하는 경우에 사용됩니다.간단 요약 : 스프링(Spring)은 프레임워크이며, 스프링 부트(Spring Boot)는 스프링 프레임워크를 기반으로 한 도구입니다. 스프링은 설정 파일을 작성해야 하지만, 스프링 부트는 자동 설정을 제공하여 간편하게 개발할 수 있습니다. 또한, 스프링 부트는 내장 서버를 제공하여 쉽게 웹 애플리케이션을 실행할 수 있습니다. Spring은 스프링 프레임워크를 보다 세밀하게 제어하고자 하는 경우에, Spring Boot는 빠르고 간단하게 스프링 애플리케이션을 개발하고자 하는 경우에 사용됩니다.

스프링

일프로

Application 기능으로 이해하기-Configmap, Secret #7-2

해당 블로그는 [쿠버네티스 어나더 클래스] 강의에 일부 내용입니다. 많은 관심 부탁 드려요!강의 링크 : https://inf.run/NzKy전 처음 이 개념을 공부할 때, 책에서 설명을 읽으면서 "아 이거 알지", "이번 챕터는 거저 먹었네" 하고 챕터를 넘겼었거든요. App의 값을 넘겨주는 방법으로 환경변수를 사용하고 민감한 데이터일 경우, 암호화를 시켜서 파일에 담는 건 기존에 또 사용했던 방법이고 쿠버네티스의 Configmap과 Secret이 그 역할을 해준다는 거니깐요.근데 의외로 이 개념을 실무에서 쓰면서 목소리가 커질 일이 종종 생겼습니다일단 제가 처음 알았던 만큼만 설명을 드려볼게요 Configmap, Secret 개념 설명 Configmap과 Secret은 Pod에 바로 연결되고요. Object에 속성들을 보면 둘 다 데이터를 담을 수 있어요. 그래서 사용자가 데이터를 넣고 Pod에 값을 주입 시킬 수가 있는데, Pod에 연결되는 속성 이름을 보면 어떤 방식으로 들어가는지 알 수 있습니다.envFrom은 Pod안에 환경변수로 들어가게 하는 속성이고, 그래서 Configmap을 연결하고 Pod 안에 들어가서 env라는 명령을 쳐보면, 이 Configmap의 data가 주입 된 걸 볼 수가 있어요.Volume은 Pod와 특정 저장소를 연결하는 속성이고, Secret을 연결하고 Pod 안에 들어가서 마운팅 된 Path를 조회해보면, 이 Secret의 stringData가 있는 걸 볼 수가 있고요.특별히 어려운 내용은 없죠?아무리 처음 쿠버네티스를 공부하시는 분이더라도 환경변수와 마운팅의 개념은 기존에도 써왔기 때문에 쉽게 이해할 수 있어요. 그리고 Secret은 이름 부터가 뭔가 비밀스럽게 데이터를 처리해 줄 것 같은 느낌이 있으니까. 쿠버네티스에서 데이터에 어느 정도 보안을 적용해주는 가보다 생각할 수 있죠. Configmap 기능 설명Configmap의 데이터가  Pod에 환경변수로 들어간다고 얘기했는데, 환경변수에 들어가는 값은 다양하고요. Data에 내용을 보면 Key, Value 형식으로 spring-profiles-active에 dev가 있죠? 환경 변수로 흔히 들어가는 값인데, 인프라에 다양한 환경 개발/검증/운영 등에 환경이 있고, 이 App이 어느 환경에서 돌아가는 건지 App이 기동되는 시점에 알려주기 위한 변수에요.다음 환경변수에는 Application Role이라는게 있고. 말 그대로 이 App에 역할을 지정하는 건데, 예를 들어 한 App에 3가지 기능이 있는데, App 하나만 띄어서 모든 기능을 다 쓰기도 하고요. 스케일링 모드라고 해서 이 App을 기능별로 3개를 띄우고 부하가 많은 기능만 별도로 더 띄워요. 요즘은 마이크로 서비스 아케텍쳐를 반영해서 이렇게 만들어진 오픈소스도 많습니다.밑에 postgresql-filepath는 또 다른 예인데, 이건 여기 Secret 데이터로 연결할 파일에 경로에요. 이 경로는 Pod에 mountPath에서 정하거든요. 그리고 이 경로 DB 정보를 환경변수로 주면, App은 기동 될 때 이걸 읽어서 DB에 접속할 수 있도록 로직이 되있는데, 이 경로를 이렇게 환경변수로 입력해야 Pod에서 이 경로를 바꾸게 됐을 때 App을 다시 빌드해서 새 이미지를 만들지 않고, Configmap만 수정해서 App이 변경된 경로를 인식할 수 있도록 할 수 있겠죠?이렇게 외부에 변경되는 환경이 생길 때, 그걸 App에 전달해 주기 위한 값들도 있는거고, App 내부적으로 기동되는 시점에 이 환경변수 값에 따라 다르게 처리되는 로직이 있어야 되요.자 그럼 이제 이 내용을 Pod랑 연결을 하고 Pod가 생성됐을 때 상황을 얘기 해볼께요. 처음에 Configmap에 있는 data의 모든 내용이 컨테이너 내부 환경에 환경변수로 주입이 됩니다. 그리고 이 이미지를 만들 때 이런 자바파일 실행 명령을 넣어놨거든요. 이미지를 만드는건 sprint2에서 배울꺼고 이 명령이 컨테이너 생성 후에 자동으로 동작하게 되고, 이때 환경변수 값이 들어가는데, 만약에 환경변수로 spring-profiles-active가 없었다면 null값이 들어가게 되요. 밑에 Secret의 기능 설명과 두 기능에 대한 동작 확인은 강의 영상으로 설명 드리고요. Secret 기능 설명동작 확인영역 파괴의 주범 ConfigMap기존 VM환경이랑 쿠버네티스 환경의 배포 차이를 보면서 영역 파괴의 주범인 ConfigMap에 대한 얘기를 해볼께요. 각 환경마다 Pod가 만들어지고, 이 Pod에 들어가는 컨테이너는 dockerhub에서 모두 같은 이미지를 다운 받았어요. 하지만 환경마다 다른 값을 주려고 각각에 Configmap을 만들죠. 그리고 이미지 안에 변수값을 받아서 실행하는 명령어가 들어 있어요.이제 개발환경을 보면 이렇게 spring으로 개발을 하고 여기서 [개발자]가 Properties 파일들이 만들고 관리를 해요. 그리고 Github로 소스를 커밋하면, 여기서부터는 [데브옵스 엔지니어]가 Jenkins에서 이 소스를 받아서 파이프라인을 구성하는데, 소스 빌드와 컨테이너 빌드 과정에서 컨테이너 이미지가 도커 허브로 올라가요. 그리고 컨테이너 빌드 후에 개발환경을 바로 이어서 배포를 할 수 있고, qa와 prod는 필요할 때 배포 버튼을 따로 누르게 구성해 놨다고 해보겠습니다.그럼 VM 환경의 배포는 어떤지 보겠습니다.개발 환경과 CI/CD 환경은 비슷하고, [인프라 담당자]가 환경별로 서버를 세팅해 놓습니다. 각 환경별로 OpenJDK도 설치해 놓고요. 이 과정에서 VM 내부에서 사용할 환경변수들을 관리를 하죠. 그리고 배포는 이렇게 되는데, Jar 패키지 파일을 VM 환경에 복사 해놓고, 실행 명령을 직접 날리는데 이때 [데브옵스 관리자]이 App에 환경이나 목적에 맞는 변수를 넣어요. 그리고 환경이나 목적에 맞게 변수값이 채워진 스크립트를 실행시킵니다.그래서 여기까지 보면 쿠버네티스 환경 이전에는 각자의 영역에서 담당자들이 관리하는 환경변수들이 있었는데, 쿠버네티스가 나오고 이 ConfigMap에서 모든 역할을 다 할 수가 있게 된 거죠. 그래서 ConfigMap을 담당하는 사람이 다른 영역을 넘나들 수 있게 되고 이런 소지를 주는 Configmap을 좀 과격한 표현으로 영역 파괴의 주범이라고 표현을 한 건데.물론 이 전체를 혼자 다하는 슈퍼 개발자도 있겠지만, 프로젝트가 클 수록 각 영역에 담당자들이 있고요. 현재 이 모두가 쿠버네티스를 다 다룰 줄 아는게 아니기 때문에 만약 개발자가 쿠버네티스를 잘하면, 이 Properties 값들 중에 Pod를 재생성하기만 하면, 다시 빌드하지 않고 바로 반영될 수 있는 값들을 많이 집어넣겠죠? 그러다가 다른 영역에 있는 값들도 넣으면서 일을 주도하게 될꺼예요.하지만 다른 담당자 입장에서는 본인의 영역을 침범 당한다고 생각할 수 있는데, 참 별거 아닌 기능이지만, 여러 영역에 걸쳐 있는 기능이기 때문에 의견을 잘 조율을 해서 써야 되는 점 주의하시길 바랄께요. 이름 때문에 기대가 너무 컸던 Secret이 부분은 강의 영상을 확인해 주시고, 강의에서 만나요! ps. 좋아요♡는 준 만큼 받는다 :)

데브옵스 · 인프라인프런쿠버네티스어나더클래스지상편일프로kubernetesdevopskubeopsConfigmapSecret

일프로

[kubernetes] 실무에서 느껴본 쿠버네티스가 정말 편한 이유 #5

해당 블로그는 [쿠버네티스 어나더 클래스] 강의에 일부 내용입니다. 많은 관심 부탁 드려요!강의 링크 : https://inf.run/NzKy 저는 개발자로써 SI 프로젝트를 많이 했습니다. 그리고 제가 겪은 SI에 대해서 얘기 드리면..일단 개발에만 몰두할 수 있는 시간은 별로 없어요. 제안서 쓰고, 업무 프로세스 분석하고, 단계별 문서를 만들고 상황에 따라 인프라 구축도 하고, DB부터 Web Front까지.. 프로젝트 오픈에 필요한 많은 걸 경험해 봤어요.물론 이것도 하다 보면 익숙해지는 부분도 있지만 그래도 매번 SI프로젝트를 힘들게 만드는 요인이 뭐냐면하나는 매번 다른 업무 프로세스에요. 고객사마다 업무 프로세스가 다르니까 매번 새 업무를 분석하느라 고생을 하게 되고요. 그리고 변화가 빠른 웹 기술이에요. 웹 분야는 발전 속도가 빠르고 신 기술이 많아서 프로젝트를 할 때마다 같은 기술로 웹 페이지를 만들어 본 적이 별로 없었던 것 같아요. 그래서 매번 새로운 기술을 공부해야 됐고. 마지막으로 다양한 기술 솔루션 적용인데, 모니터링이나 로깅, 암호와 같은 솔루션이 고객사마다 쓰는 제품들이 다르고요. 비용 절약 때문에 개발자가 직접 해야 되는 경우도 비일비재해요. 그래서 이것도 매번 새 솔루션을 적용하는 법을 익혀야 됐습니다.더 많지만 이렇게 이번 프로젝트에서 고생을 해서 기술을 익혀도 다음 프로젝트는 또 고생을 하게 되더군요.하지만, 개발자가 아닌 쿠버네티스 엔지니어로서 SI프로젝트는 할만 했습니다.무엇보다 프로젝트가 반복될 수록 일은 더욱 쉬워졌는데, 이번 강의에서 [쿠버네티스 표준 생태계로 편해진 IT인프라 구축], [쿠버네티스 기능으로 편해진 서비스 안정화], [인프라 환경 관리의 코드화]를 주제로 그 이유를 자세히 설명 드려요.쿠버네티스 표준 생태계로 편해진 IT인프라 구축쿠버네티스가 나온 지 10 년도 안 됐는데, 현재 이렇게 많은 제품들이 쿠버네티스 생태계 위에서 돌아가요.IT에 관련된 모든 회사가 쿠버네티스와 컨테이너에 진입을 했다고 해도 과언이 아닐 정도인데, 이미 많은 회사들은 컨테이너가 미래에 인프라가 될 거라는 걸 예상했고 너도나도 이 시장의 넘버원이 되려고 뛰어 들었어요. 그 결과 정말 짧은 시간만에 쿠버네티스 기반의 IT 생태계가 이렇게 폭발적으로 커졌습니다.여러분 지금 기업에서 대부분 자바로 개발을 하잖아요. 자바가 95년도에 처음 만들어졌고 10년 뒤에 이걸로 스프링이 나왔어요. 그리고 또 5년이 지나서야 확산이 되기 시작한 건데, 그에 비해 쿠버네티스는 정말 이례적이라고 할 수가 있죠.근데 이 그림을 보면, 아 이제 늦었나? 쿠버네티스를 하려면 이렇게 많이 알아야 돼? 라고 오해를 할 수가 있을 것 같아요. 뭔가 많아 보일 순 있는데 점점 제가 단순화를 시킬 거니까 걱정 마시고요.CNCF에서 이 클라우드 생태계를 영역별로 카테고리화 시켰는데,[개발]은 기존부터 해왔던 App 개발에서 배포까지 써야되는 기술들 이고요. [오케스트레이션 / 매니징]은 이 App을 마이크로 서비스로 만들 때 쓰면 좋은 기술들이에요. 그리고 [플랫폼과 런타임]은 이 App을 클라우드로 올릴 때 주로 사용되는 기술들이 많고요. 그리고 [프로비저닝이랑 분석]은 실제 프로젝트에서 써야 되는 기술들이 있어요.만약에 프로젝트에서 App을 마이크로 서비스로 개발하고 클라우드까지 올린다면 여기 있는 카테고리를 다 알아야 되고 근데 요즘은 이런 프로젝트가 대부분이죠 :)그나마 불필요하다고 생각하는 부분은 그리고 밑에 [스페셜]은 쿠버네티스 관련 업체들이랑 교육 파트너고요. [서비스]랑 분석 쪽에 [카오스 엔지니어링]이랑 [최적화]부분은 메인 영역은 아니라서 과감히 빼버리겠습니다. 그리고 전체 그림을 다시 보면..아까보단 좀 나아진 거 같나요?이미지들이 살짝 눈에 보이는 거 같기도 하고요. 그래도 아직 쿠버네티스를 하기 싫어지는 그림이에요. 여기서 이제 디테일하게 줄여나가 보겠습니다. CNCF에 기여된 프로젝트는 성숙도에 따라서 이렇게 4가지 종류가 있는데, Sandbox는 아직 실험 단계라서 우리가 안 쓰게 될 확률이 커요. 그리고 그 밑에 Archived는 프로젝트가 비활성화 된 거에요. 그래서 더 이상 기술 지원이 없는 프로젝트니까 이 두 가지를 빼고요.CNCF에서 성숙도가 높다고 우리가 많이 쓰고 있는 건 아니거든요. 그래서 Graduated지만  Github에 Stars 수가 낮은 건 제외를 하고 Incubating 이지만 Stars 수가 높은 건 포함해서 보면..이정도가 있네요. 그리고 CNCF에 기여된 프로젝트 외에 CNCF 멤버와 비멤버 제품들도 있어요. 멤버와 비멤버의 차이는 CNCF에 회비를 내면서 제품 홍보나 등급별로 혜택을 받을 수 있나없나의 차이일뿐이고, 그래서 비멤버라도 표준 생태계에 영향력 있는 제품들이 많습니다.그래서 CNCF 멤버/비멤버 제품들 중 Github에 Stars 수가 높은 걸 골라보면.. 이 정도로 정리가 돼요. 이제 이렇게 추린 내용을 다시 이쁘게 정리해보겠습니다. 참고로 제가 짬으로 몇 개 추가/삭제한 것도 있어요.CNCF landscape 중 선별 기준CNCF 프로젝트 : Graduated Projects (Github Stars 낮음 제외), Incubating Projects (Github Stars 높음 추가), Sandbox Projects (X), Archived Projects (X)CNCF 멤버/비멤버 제품 : 깃허브 Stars 높음 추가, 일프로 임의 추가참고 링크 : CNCF (link), CNCF landscape (link) 이제 좀 그림이 보이기도 하고, 안구 정화가 되죠?눈에 잡히는 IT생태계를 보여 드리려고 이렇게 정리를 해 봤는데, 사실 CNCF를 졸업했고 멤버가 어떻고는 중요하지 않아요. 그리고 제가 이 정리된 그림을 먼저 보여 드려도 되는데 이런 선별 과정까지 보여 드린 이유가 있습니다.이 오픈 소스들을 공부하게 될 때 이것만 잘 깊이 있게 보면 좋은데 갑자기 누가 요즘 뭐가 좋다더라 이런 얘기를 하면 자기가 모르는 게 있으면 괜히 그게 커보이고 해야될 것 같은 기분이 들죠? 그래서 지금 공부에 집중력이 떨어질 수가 있어요. 그렇기 때문에 여기 이 제품들은 정말 많은 오픈 소스들 중에 대표이고 일단 처음엔 여기에만 집중해도 충분하다는 것을 보여 드리려고 이렇게 선별과정을 보여 드린거에요.물론 이것도 적지않죠?그리고 강의 영상 마지막에 쿠버네티스 엔지니어가 되려면 이 많은 내용들을 어떻게 공부해야 되는지 이 그림으로 설명드릴께요.   쿠버네티스 기능으로 편해진 서비스 안정화 강의에서는 쿠버네티스가 편한 이유 중 두 번째로 기존 VM 환경과 쿠버네티스 환경의 차이를 얘기드려요. 기존 환경에서 여러 담당자들이 수동으로 설정해야 했던 일들을 쿠버네티스 환경에서는 쿠버네티스 엔지니어 한명이 한번에 할 수 있게 되거든요.  모니터링 설치이젠 모니터링 설치하는 방법도 너무 쉽죠?카페 설치 링크 (link)참고 링크 : grafana docs (link) / dashboard (link), prometheus install (link) / docs (link), loki-stack install (link) / docs (link)기능 실습그리고 강의영상에서 쿠버네티스 대표 기능들을 실습해 봅니다.카페 실습 링크 (link)인프라 환경 관리의 코드화마지막으로 쿠버네티스 관리 환경의 코드화인데, 인프라 설정을 수동으로 하는 거랑 파드에 인프라 설정이 코드로 들어가서 자동으로 되는 건 엄청난 차이고요. 이 차이가 인프라 환경 관리를 정말 편하게 해줍니다.쿠버네티스, 인프라 환경 관리의 장점인프라에 대한 History 관리가 편해짐인프라 작업 추적 가능인프라 환경별 파일 생성 (시간 있을 때 미리 구성 가능, 작업은 Copy & Paste)인프라 반복 작업 x, 퀄리티 향상에 집중새 인프라 작업시 이전 경험을 녹인 코드 활용블로그는 여기까지고 강의가 오픈 되면 링크 걸어 놓을게요^^굿나잇! ps. 매너가 좋아요♡를 만든다 :)

데브옵스 · 인프라인프런쿠버네티스어나더클래스지상편일프로kubernetesdevopskubeopscontainer쿠버네티스편한이유

일프로

[쿠버네티스] 컨테이너 한방 정리 #3

해당 블로그는 [쿠버네티스 어나더 클래스] 강의에 일부 내용입니다. 많은 관심 부탁 드려요!강의 링크 : https://inf.run/NzKy  기술의 흐름으로 이해하는 컨테이너 쿠버네티스는 이제 [컨테이너]랑 [가상화] 그리고 [데브옵스]속에 깊숙히 자리잡고 있습니다. 그래서 이 세 가지를 알아야 쿠버네티스를 더 잘 알 수 있게 되는데, 이 단어들은 정말 큰 개념이라서 그냥 용어 설명으로는 이해하기 힘들어요. 그래서 기술에 전반적인 배경을 이해하는 게 중요하다고 생각합니다.그래서 이번 강의는 [컨테이너 한방 정리]로, 쿠버네티스를 잘 이해하기 위해 컨테이너를 중심으로한 여러 배경 흐름 들을 이야기 해요. 1. Linux OS 흐름컨테이너를 잘 알기 위해서는 Linux에 대해서 먼저 알 필요가 있습니다. 최초에 OS로 unix가 있었고,  한참 시간이 지나고 linux가 나왔어요. 그리고 이 linux를 기반으로 현재까지도 엄청 많은 배포판들이 만들어지고 있습니다.하지만, 다행이도 우리는 이 두 가지 배포판만 알고 있어도 충분해요. debian이랑 redhat 계열인데, debian linux는 커뮤니티용이라고 해서 무료고요. redhat linux는 redhat 이라는 기업에서 만들었고, 유료에요.쿠버네티스를 설치할 때도 이렇게 이 두가지 배포판을 기준으로 설치 가이드를 제공합니다. 데비안과 레드햇 계열에 대한 자세한 얘기는 강의 중에 설명드리고, 여기선 기업용으로 쓰는 redhat에 대해 좀 얘기를 해볼께요. redhat에서 linux 배포판이 만들어지는 순서가 있어요. 최초에는 fedora linux라고 해서 새로운 기능을 개발하는 버전이 있고, 이건 무료고요. 이 기능들이 안정화되면 redhat linux로 이름을 바꿔서 릴리즈를 합니다. 기업은 이걸 설치하면 유지보수 비용을 내야되는 유료 버전이고, redhat enterprise linux 앞자만 따서 RHEL, 렐 이라고도 통상 불러요. 그래서 이걸로 기업들이 설치를 하면 유지보수 비용을 내야 되는 유료 버전 이고, 그리고 이걸 복사해서 만든 게 centOS 배포판 이예요. rhel이랑 똑같이 안정화 버전인데, 무료로 쓸 수 있습니다.기업에서는 주로 redhat 계열을 많이 쓰고, 특히 centOS의 점유율이 높은데 centOS 8은 2021년에 지원을 종료 했고, centOS 7은 2024년도에 지원이 종료가 되거든요. 이 centOS가 종료되는 배경을 좀 말씀을 드리면 시장 점유율이 ubuntu가 압도적이고. 다음은 centOS랑 debian이 2, 3위를 왔다갔다 해요. redhat은 2%지만, 이 수치가 그래도 기업 배포판 중에 1위고요. 이 1위가 된 배경에는 사람들한테 centOS를 무료로 쓰게 해주면서 자연스럽게 redhat을 선택하게 하는 그런 전략이 있었거든요. 근데 현재 redhat은 IBM에 인수가 된 상태예요. 그리고 IBM의 새로운 전략은 centOS에 점유율을 rhel로 당기려는거 같아요.왜나하면 현재 redhat 배포판을 만드는 순서가 이렇게 변경됐거든요.처음엔 마찬가지로 fedora를 통해서 기능 개발을 하고, centOS대신 centOS Stream이라고해서 이 기능들을 테스트하는 배포판이 생겼어요. 테스트 배포판(테스트베드)이라고 생각을 하면 되는데 여전히 무료지만, 이 배포판에서는 바이너리 호환성 보장 안될 수 있다는 얘기를 해요. 무슨 내용인지 몰라도 이제 쓰면 안되나 싶은 생각이 들죠?그리고 테스트 과정이 끝나면, 안정화 버전인 Redhat Linux가 됩니다. 이렇게 배포판을 만드는 프로세스가 바꿨어요. 그래서 기존에 centOS를 쓰던 기업들은 앞으로 고민을 좀 해봐야 되는 게 지금 상황이고요. 아래와 같이 4가지 방법이 있는데 아래와 같습니다.이렇게 4가지 선택지 중에 전 4번을 선택을 했고, 이 강의에 실습 환경으로 사용이 되요. 저도 어떤 linux를 선택할까 고민을 많이 했는데, 1, 2번은 기업의 상황이라 제외를 하고, 타 OS로 ubuntu를 고민을 하다가 그래도 제가 가장 오래 사용을 했고, 문제가 생겼을 때 잘 가이드를 해드릴 수 있어야 하니까 4번, 새로운 복제본을 선택을 했습니다.그리고 AlmaLinux와 RockyLinux 중에서 Rocky Linux를 선택한 이유는 아래와 같아요.구글 트렌드에서 키워드 검색량 확인 (link)CentOS 공동설립자 중 한명 만들었음 (link)클라우드 서비스에서 VM 생성을 Rocky Linux로 하는 사례들 확인Github Watch/Fork/Start 비교 (rocky link), (alma link)  2. Container 흐름자, 이제 컨테이너에 대해서 얘기를 해 볼꺼예요. 지금까지 봐듯이 linux는 꾸준히 발전을 했고, 내부적으로도 많은 코어 기술들이 개발이 됐는데 그중 하나가 격리 기술이예요.chroot라고 해서 사용자 격리를 시작으로 파일이나 네트워크를 분리하는 기술들이 만들어 졌고요. 한참 지난 후에 cgroup이라고해서 각각에 App마다 cpu나 memory를 할당을 할 수 있게 됐어요. namespace는 보통 App 하나가 하나의 프로세스를 차지하거든요. 이 프로세스를 격리 시켜주는 기술이 만들어 지면서 우리는 이제 각각의 App을 소위 말하는 [독립적인 환경]에서 실행을 시킬 수 있게 됩니다.그리고 다음으로 이 기술들을 집약해서 정리한게 LXC라고 해서 linux container에 줄임말 이예요. 이 컨테이너의 어머니이자, 최초의 컨테이너죠. 그리고 이 기술을 기반으로 만들어진 이번엔 컨테이너에 대명사죠. Docker, 요즘은 위세가 많이 죽긴 했어요. 이전까지 컨테이너 기술은 저 같은 평범한 개발자들이 쓰기엔 좀 어려웠다면 docker는 이걸 누구나 쓰기 쉬운 형태로 만들었습니다. 요즘 잘 정리된 블로그 몇 개만 봐도 대강 이해해서 내 OS에 컨테이너를 띄울 수 있죠.docker가 나오고 rkt라고 rocket이라는 컨테이너가 나와요. docker가 보안에 안 좋은 점이 좀 있는데, 이 부분을 공략을 하면서 더 안정적인 컨테이너를 강조를 했고 실제 docker보다 성능도 더 좋다고 해요. docker가 보안에 안 좋은 점은 root권한으로 설치하고 실행을 해야 되기 때문인데, 현재는 rootless 설치 모드가 생겨서 보안이 강화가 됐습니다.한편 쿠버네티스는 점점 표준으로 정착이 되고 있고, 현재는 컨테이너간의 싸움 중입니다. 초반에 docker가 보안에 약하다는 것 까지는 사실 docker 대세에 크게 문제가 없었거든요. 시간이 지나면 충분히 보완 될꺼라는 기대도 있었고 실제로 보완이 됐죠. 근데 docker 위세가 조금씩 꺽이기 시작한 이유가 뭐냐면, 쿠버네티스에서 docker가 빠진 다는 얘기가 계속 있었어서 그래요. 그 이유는 docker가 쿠버네티스와 인터페이스가 잘 안 맞아서 그렇거든요. 물론 처음엔 docker를 메인으로 쿠버네티스가 만들어졌죠. 근데 쿠버네티스가 표준화가 될 수록 docker가 걸림돌이 되고 있는 상황이예요. 이제 누가 쿠버네티스랑 호환성이 좋은지가 컨테이너를 선택하는 중요한 결정요소가 됐습니다.그 이후에 나온 대표적인 컨테이너가 containerd랑 cri-o고요. containerd는 docker에서 컨테이너를 만들어주는 기능이 분리된 거예요. docker가 설치할 땐 간단해 보여도 엄청 많은 기능들이 녹아진 엔진이거든요. 그 큰 엔진에서 containerd 프로젝트만 분리 되서 나왔고 CNCF에 기부 됩니다. 번외로, docker는 현재 mirantis라는 회사에 인수된 상태예요. docker를 정말 많이 쓰지만 기술 투자 대비해서 수익이 큰 편은 아니었던 거 같아요. 그래서 mirantis라는 회사에 인수가 됐고 이 mirantis는 openstack 프로젝트를 하고 있는 회사 거든요. 이 openstack이 뭐냐면, kubernetes 이전에, 가상화에 대세라고 하긴 좀 그렇고, 가장 큰 가능성으로 가상화 시장을 선도한게 openstack 이예요. 저도 개인적으로 한 3년 정도 openstack 관련된 일을 했었고, 그래서 다음 가상화를 설명하는 강의에서 최대한 재미있게 얘기를 해 드릴께요. 여튼 docker가 mirantis에 인수된 이후부터 이 kubernetes 인터페이스를 잘 맞추려고 하고 있기 때문에 쿠버네티스에서 docker는 빠지진 않게 됩니다. 3. Container Orchestration과 Container 흐름강의 영상에서 컨테이너 오케스트레이션(쿠버네티스)과 컨테이너(컨테이너 런타임) 간에 한 단계 더 깊은 흐름을 이야기 합니다.가장 핵심은 쿠버네티스의 kubelet 변화와 그리고 이에 따른 컨테이너 런타임들 간의 흐름이예요. 바로 CRI가 어떤 배경에서 만들어졌고, 쿠버네티스 버전이 올라가면서 CRI가 어떤 방향으로 바뀌는지, 그리고 그에 따른 컨테이너 런타임들 간의 변화를 설명드립니다. 그리고 컨테이너에서 절대 빼놓으면 안되는 OCI가 있습니다. 컨테이너 표준인데, 컨테이너 런타임들은 이걸 잘 지키고 있기 때문에, 우리는 런타임을 바꾸더라도 기존에 만들었던 이미지를 그대로 사용할 수 있어요  블로그는 여기까지고요. 강의가 오픈 되면 링크 걸어 놓을께요.좋은 하루되세요! 좋아요 ​♡는 저에게 큰 힘이 됩니다 :) 

데브옵스 · 인프라인프런쿠버네티스어나더클래스지상편일프로kubernetesdevopskubeopscontainer컨테이너한방정리

코드캠프

Github Copoilot vs 주니어 개발자 (feat. 뭐야 내 직업 돌려줘요)

Github Copilot에 대한 의견이 분분하다는 걸 목격한 코캠, 지난 블로깅에서는 토론에 참여해 의견을 끼워넣어봤습니다.코캠 내부의 토론 결과, '주니어는 대체될 수도 있을 것 같다.' 라는 의견이 많았습니다.이 토론 결과에 동공이 흔들리는 주니어 바로 나야나... (내 직업 못잃어...)코드캠프 선배님들은 거침없이 왜 주니어가 대체 될 수 있는지에 대해 말씀을 시작하고,(그만..그만 말해..)주니어 막냉이는 오랜만에 심장에 떨림이 느껴지기 시작하고. 나 떨고있니..직업이 한순간 백수가 될까 불안에 떨던 저는 마음 먹었습니다.copilot을 직접 사용해보고 정말 날 대체할 수 있나 판단하기로.비교대상인 저는 코드캠프 2년차 주니어 개발자이며 언어는 javascript를 사용하고 있습니다.스택은 코드캠프 스택 + a 정도의 스택을 가지고 있습니다. 자, 그럼 [ 코파일럿 vs 주니어 개발자 ] 비교 가 보 자 구 💡주니어의 Copoilot 사용기1️⃣ 코파일럿 사용 세팅하기 [ Docs ]1 ) 깃허브 settings에 들어갑니다.2) 왼쪽의 사이드 바 'code,planning, and automation' 섹션에서 copilot을 클릭합니다.3) copilot 설정을 해줍니다.* 60일동안은 무료지만, 이후부터는 유료 서비스로 전환됩니다.그 전에 구독 취소하시면 비용을 지불하지 않아도 됩니다.모두 입력 후 설정값을 저장해주시면 됩니다!4) vsCode에 Github Copilot이라는 extension을 설치합니다.5) 설치하고 나면 깃허브 로그인,권한부여 등을 묻는 창이 작게 뜰텐데 로그인과 권한부여에 모두 동의해주시면 됩니다.6) 다 했는데 안될때는?설정 버튼을 눌러 [ 확장 설정 ]을 눌러주세요.위의 버튼을 눌러 setting.json 파일에 들어가 copilot 사용설정을 해주세요! 2️⃣ copilot VS 주니어 개발자⛔️ 본격적으로 주니어 개발자와 copilot의 비교에 앞서, 이 견해는 코드캠프의 주니어 개발자의 의견일 뿐 모두를 대표하지 않습니다. 비교를 위해 주니어 개발자인 저와 코파일럿이 같은 기능을 만들어 보기로 했습니다.기능 : unix 시간을 자바스크립트 Date객체로 변환해 화면에 예쁘게 출력하기[ 주니어 개발자 ]만드는 데 걸린 시간 : 30분직접 코딩시 장단점장점 : 구조를 내 마음대로 그때 그때 바꾸면서 사용할 수 있다.단점 : 모르는 파트가 나오면 구글링 + 구현시간이 꽤나 걸린다.[ 코파일럿 ]위 사진은 코파일럿이 만들어준 기능입니다.너무 신기하게도 제가 직접 작성했던 코드를 러닝해서 비슷하게 진행되면 제가 적었던 코드를 추천 합니다.위의 주석처리 된 함수는 제가 함수 이름만 만들어도 전에 적었던 함수를 추천해줬습니다.그럼 주석으로 한줄씩 만드는 데는 차이가 있을까하여 주석묘사로도 만들어봤는데, 주석도 추천해줍니다.(너무 신기)만드는데 걸린시간 : 5분신기하게도 내가 적은 코드도 러닝을 해서 내 코드를 추천해줌..한글 주석도 된다코파일럿으로 코딩시 장단점장점 : 누구보다 빠르게 코딩이 가능함단점 : 본인 실력이 아니기때문에 코드수정이 필요할 때 난감할 수 있음.기본 틀 자체를 추천하기 때문에 수정에 불리함.그 기능 만들거 아닌데 설레발로 자동완성 해주려고 하니까 불편함. 주니어 개발자의 전반적인 평가평가는 개인적인 견해이기 때문에 주니어 By 주니어지만, 제가 사용해본 코파일럿은 생각보다 똑똑했습니다.언어를 선택할 수 있다고 하길래 당연히 JS 에서만 자동완성이 되는 줄 알았는데, HTML 코드에서도 자동완성을 추천해줍니다.HTML 코드 추천은 제가 위에 적어놓은 코드+내용 바탕으로 추천하는 것 같은데 생각보다 정확합니다.사용하면서 계속 들었던 생각은 '어..이게 되네?' 와 '어..생각보다 똑똑한데...?' 입니다.물론 제가 복잡한 프로젝트내에서 적용하게 아니고, 간단한 기능을 만들었기 때문에 그럴 수 있지만 간단한 함수들을 만드는데는 전혀 무리가 없어보입니다.또한 깃허브에서 만든거라 주석묘사시 영문으로만 입력해야하나 걱정했는데, 한글로도 작성이 가능합니다.코파일럿을 이용해서 회사 내부 템플릿을 만들수도 있겠다는 생각이 드는게, 주석을 자세히 달고 해당 주석을 그대로 입력하면 템플릿을 복사해오지 않을까 싶습니다.이렇게 되면 공통 컴포넌트를 작업하는 시니어는 코파일럿을 만지고, 주니어는 크게 할 일이 없어질 수도 있을 것 같습니다. 결론은 아주 훗날, 라이선스 문제도 해결되고 회사에서 상용화 된다면 정말 주니어 개발자의 입지가 좁아질 수 있을 것 같다는 생각이 들 정도로 잘 됩니다. 그럼, 주니어 개발자는 어떤 걸 더 공부하고 성장해야 코파일럿에게 밀리지 않고 개발자 수명을 연명해 나갈 수 있을까요?(직업을 잃을 순 없잖아요)주니어 개발자가 공부하면 너~무 좋은 기술! 다음 블로그에서 만나보도록 하시죠!모두 코캠과 함께 공부하고 성장하는 개발자가 되어 직업을 잃지 않기로해요. 약속~👍🏻 

웹 개발코파일럿주니어대체GithubCopliot개발자대체프론트엔드백엔드코드캠프

코딩웍스(Coding Works)

[인프런 코딩웍스 강의 학습 순서]를 통해 개인 포트폴리오 홈페이지 제작까지~!!

안녕하세요. 코딩웍스입니다.이번 블로그 포스팅은 <인프런 코딩웍스 강의 학습 순서>를 이해하기 쉽게 알려드리려고 합니다.꽤 많은 수강생들께서 <인프런 코딩웍스 강의 학습 순서>를 문의하시는 경우가 많습니다.물론 인프런 코딩웍스 학습 로드맵이 있지만 블로그처럼 쉽게 설명하기가 어려워서 수강생 입장에서 어떤 것을 우선 순위로 해야 하는지 또 다음 학습은 어떤 것을 해야 하는지 명확하게 이해하시기 쉽지 않을거라 생각이 듭니다.그래서 나름 다시 블로그에 <인프런 코딩웍스 강의 학습 순서>를 정리했으니 참고하시기 바랍니다.⚡ 취우선 순위로 학습할 강의 - Small Roadmap #0101) <퍼블리싱 핵심이론 PDF 교재 및 예제파일>강의를 수강하시고 완독하시기 바랍니다.해당 강의는 퍼블리싱 학습을 하기 전에 필수적인 이론을 정리했으므로 앞으로 퍼블리싱 학습을 위한 기본서입니다.당장 완독할 필요까지는 없습니다. 먼저 전체를 보시고 앞으로 영상 강의에서 부족한 이론 부분을 찾아서 참고하시면 됩니다.[기대효과]퍼블리싱 이론서 보유PDF 교재이므로 필요할 때 언제 어디서든지 볼 수 있는 장점🚩 해당 강의소개 바로가기 : https://inf.run/4SVc02) <퍼블리셔 취업 진짜 실전 가이드(PDF)> 강의를 수강하시고 완독하시기 바랍니다.해당 강의는 퍼블리싱 학습을 하기 전에 필수적으로 알아야 하는 퍼블리싱 원칙, 바람직한 코딩 등 거의 모든 내용이 담겨 있습니다.앞으로 퍼블리싱 학습을 위한 기본 지침서가 될 것 입니다.[기대효과]퍼블리셔 취업을 위해 무엇을 어떻게 준비할지 요령을 알게 됩니다.퍼블리싱 기본기를 위한 습관과 원칙을 충분히 이해할 수 있습니다.퍼블리싱 실력을 키우는 효율적인 학습방법을 알게 됩니다.🚩 해당 강의소개 바로가기 : https://inf.run/nmFR03) <HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌1)> 강의를 수강하시고 완강하시기 바랍니다.해당 강의의 초반부의 기초 이론은 알고 있는 내용이라면 스킵하고 실전 예제 제작 섹션을 학습하세요.만약 기초 이론이 생소하다면 꼭 보시고 실전 예제 제작 섹션을 학습하세요.[기대효과]해당 강의를 완강하면 퍼블리싱 기본기를 충분히 갖추실 수 있습니다.실전 예제 제작 학습 후 테마를 변경해서 응용하면 퍼블리싱 결과물로 함께 준비할 수 있습니다.🚩 해당 강의소개 바로가기 : https://inf.run/t22k04) <중상급 퍼블리싱을 위한 CSS3의 모든 것> 강의를 수강하셔서 CSS를 심도있게 학습하세요.해당 강의 수강하지 않고 반응형 포트폴리오 제작 등 전체 웹사이트 제작 강의를 들으면 알지만 확실히 내 것이 된다는 느낌이 적을 수 있습니다.하지만 <중상급 퍼블리싱을 위한 CSS3의 모든 것> 강의의 내용을 확실히 알고 학습하면 하나 하나가 완전히 수강생의 것이 될 것 입니다.[기대효과]앞으로 이어질 강의, 포트폴리오 제작에서 근간이 되는 CSS 실력이 한층 상승됩니다.🚩 해당 강의소개 바로가기 : https://inf.run/uiQ405) <HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌2)> 강의를 수강하시고 완강하시기 바랍니다.<HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌1)> 강의와 <중상급 퍼블리싱을 위한 CSS3의 모든 것> 강의 정도의 이해도가 없다면 수업에 따라오시기 어려울 수 있습니다.[기대효과]해당 강의를 완강하면 퍼블리싱 기본기를 더욱 향상 시킬 수 있습니다.실전 예제 제작 학습 후 테마를 변경해서 응용하면 퍼블리싱 결과물로 함께 준비할 수 있습니다.개인 포트폴리오 홈페이지에 올라갈 클론 코딩 반응형 웹사이트 2개를 갖게 됩니다.🚩 해당 강의소개 바로가기 : https://inf.run/8o9A ⚡ 트랜드 신기술을 위해 학습할 강의 - Small Roadmap #0201) <플렉스(Flex) 반응형 웹사이트 포트폴리오> 강의를 수강하시고 완강하시기 바랍니다.실무에서 가장 많이 사용되는 플렉스에 대한 이해도 뿐만 아니라 활용할 수 있는 실력을 충분히 갖게 됩니다.[기대효과]플렉스로 만든 실전 퍼블리싱 결과물을 갖게 됩니다.플렉스로 만든 반응형 전체 웹사이트 포트폴리오 결과물을 갖게 됩니다.🚩 해당 강의소개 바로가기 : https://inf.run/5gug02) <SCSS(SASS)+GRID+FLEX 실전 포트폴리오 퍼블리싱> 강의를 수강하시고 완강하시기 바랍니다.퍼블리셔 채용에서 우대사항인 SCSS(SASS)에 대한 이해도 뿐만 아니라 활용할 수 있는 실력을 충분히 갖게 됩니다.실전 퍼블리싱 제작은 있지만 전체 웹사이트 제작 강의는 없습니다. 하지만 완강 후 수강생이 SCSS(SASS)로 전체 웹사이트 포트폴리오를 만들면 큰 경쟁력이 됩니다.[기대효과]퍼블리셔 채용에서 우대사항인 SCSS(SASS)를 기술할 수 있습니다.SCSS(SASS)로 만든 실전 퍼블리싱 결과물을 갖게 됩니다.🚩 해당 강의소개 바로가기 : https://inf.run/25Ho03) <그리드(Grid) 핵심이론 및 실전 활용> 강의를 수강하시고 완강하시기 바랍니다.그리드에 대한 이해도 뿐만 아니라 활용할 수 있는 실력을 충분히 갖게 됩니다.[기대효과]퍼블리셔 이력서에 그리드 사용 기술를 기술할 수 있습니다.※ 그리드 학습은 퍼블리셔 취업을 위해 당장 필요하지는 않으니 학습 우선 순위에서 지금은 빼셔도 됩니다.🚩 해당 강의소개 바로가기 : https://inf.run/FnCM04) <최고의 프론트엔드 CSS Frameworks, UIkit> 강의를 수강하시고 완강하시기 바랍니다.CSS Frameworks 중 UIKit에 대한 이해도 뿐만 아니라 활용할 수 있는 실력을 충분히 갖게 됩니다.[기대효과]퍼블리셔 이력서에 그리드 사용 기술를 기술할 수 있습니다.※ UIkit 학습은 퍼블리셔 취업을 위해 당장 필요하지는 않으니 학습 우선 순위에서 지금은 빼셔도 됩니다.🚩 해당 강의소개 바로가기 : https://inf.run/u2h1 ⚡ 전체 웹사이트 제작을 위해 강의 - Small Roadmap #03해당 로드맵을 학습하기 전에 최소한 Small Roadmap #01의 강의들은 충분히 학습된 상태여야 전체 웹사이트 제작 강의를 손쉽게 따라 오실 수 있습니다. 뿐만 아니라 완강 후 개인 포트폴리오 홈페이지에 올라갈 테마 변경 작업 웹사이트 제작도 자신감을 가질 수 있습니다.01) <반응형 웹사이트 포트폴리오(Architecture Agency)> 강의를 수강하시고 완강하시기 바랍니다.[기대효과]그동안 갈고 닦은 퍼블리싱 실력을 실전 웹사이트 제작에 사용하면서 실전 활용에 대한 경험을 갖게 됩니다.완강 후 테마를 변경해서 개인 포트폴리오에 올린 웹사이트 퍼블리싱 결과물을 만들게 됩니다.🚩 해당 강의소개 바로가기 : https://inf.run/h6S702) <반응형 웹사이트 포트폴리오(App Official Landing Website)> 강의를 수강하시고 완강하시기 바랍니다. [기대효과]그동안 갈고 닦은 퍼블리싱 실력을 실전 웹사이트 제작에 사용하면서 실전 활용에 대한 경험을 갖게 됩니다.완강 후 테마를 변경해서 개인 포트폴리오에 올린 웹사이트 퍼블리싱 결과물을 만들게 됩니다.🚩 해당 강의소개 바로가기 : https://inf.run/pkx603) <모바일 웹 퍼블리싱 포트폴리오 with Figma> 강의를 수강하시고 완강하시기 바랍니다. 퍼블리셔 취업을 위해 다양한 종류의 퍼블리싱 결과물이 필요합니다. 그 중에 모바일 웹 UI 디자인 및 퍼블리싱 결과물이 가장 중요합니다.Figma를 사용해서 제작된 강의이므로 요즘 대세인 Figma로 UI 디자인을 하면서 Figma 활용 능력 또한 가질 수 있습니다.[기대효과]가장 중요하고 경쟁력 있는 포트폴리오인 모바일 웹 퍼블리시이 결과물을 얻게 됩니다.Figma로 제작하는 UI 디자인 능력과 디자인 결과물을 보여줄 수 있습니다.🚩 해당 강의소개 바로가기 : https://inf.run/5vsq 04) <SCSS(SASS)+FLEX 실전 반응형 웹 프로젝트 with Figma> 강의를 수강하시고 완강하시기 바랍니다. 웹 퍼블리셔와 개발자를 위한 최고의 S웹 퍼블리셔와 개발자를 위한 최고의 반응형 웹 포트폴리오 제작일관성 있는 클래스네임과 함께 HTML 와이어프레임 구조를 만들어 퍼블리싱까지 완료하는 체계적인 반응형 웹 사이트 프로젝트 제작 과정Figma를 사용해서 제작된 강의이므로 요즘 대세인 Figma로 UI 디자인을 하면서 Figma 활용 능력 또한 가질 수 있습니다.[기대효과]SCSS(SASS) 핵심 이론 및 실무 활용 능력FLEX Layout 핵심 이론 및 실무 활용 능력PC, 모바일, 태블릿 대응 반응형 레이아웃 설계 및 제작🚩 해당 강의소개 바로가기 : https://inf.run/gxza ⚡ 퍼블리셔 취업을 위한 강의 - Small Roadmap #04해당 로드맵은 진짜 취업을 위해 개인 포트폴리오 홈페이지를 제작하는 과정이므로 Small Roadmap #01, 02, 03이 완료된 상태에서 진행하시기 바랍니다. 결과물이 없거나 부족한 상태에서 개인 포트폴리오 홈페이지 제작 방향을 잡기 어렵습니다. 또한, 이력서 작성과 취업을 위한 현실적인 자신의 상태를 체크하기도 어렵습니다.01) <면접과 취업을 부르는 '퍼블리셔 개인 포트폴리오 홈페이지' 제작> 강의를 수강하시고 완강하시기 바랍니다.[기대효과]막연한 개인 포트폴리오 홈페이지 제작 방향과 실제 제작을 할 수 있습니다.완강 후 퍼블리셔 취업을 위한 괜찮은 개인 포트폴리오 홈페이지를 제작할 수 있습니다.🚩 해당 강의소개 바로가기 : https://inf.run/Wuie02) <퍼블리셔 개인 포트폴리오 홈페이지 제작 완벽 가이드(PDF)> 강의를 수강하시고 완독하시기 바랍니다. [기대효과]막연한 개인 포트폴리오 홈페이지 제작 방향과 실제 제작을 할 수 있습니다.완강 후 퍼블리셔 취업을 위한 괜찮은 개인 포트폴리오 홈페이지를 제작할 수 있습니다.🚩 해당 강의소개 바로가기 : https://inf.run/ziSK03) <퍼블리셔 취업하는 훌륭한 이력서 작성 가이드> 강의를 수강하시고 완강하시기 바랍니다. [기대효과]경쟁력 있는 퍼블리셔 취업 이력서 및 자기소개서를 작성할 수 있습니다.면접 요령, 희망 연봉 적정선 등 취업과 면접을 위해 필수적인 사항을 아시게 됩니다.🚩 해당 강의소개 바로가기 : https://inf.run/VGv9 🏳‍🌈 마무리 하면서..<퍼블리셔 개인 포트폴리오 홈페이지 제작 완벽 가이드(PDF)> 을 Small Roadmap #01이 끝나면 먼저 보시는 것을 추천드립니다.<퍼블리셔 개인 포트폴리오 홈페이지 제작 완벽 가이드(PDF)>가 마지막 단계에서 필요한데 먼저 보시라고 하는건 전체적으로 개인 포트폴리오 홈페이지 제작을 위해 필요한 것들이 무엇인지 먼저 알고 준비하시는게 좋습니다. 어차피 해당 교재는 마지막 단계에서 필요하니 미리 봐두시는게 좋습니다. 물론 실습 부분을 따라 하실 필요는 없고 당장은 전체적인 제작 흐름과 필요한 준비가 뭔지에 대해서 이해하는 정도로 하세요. 한가지 더 말씀 드리면 코딩웍스 강의 중에 <웹디자인기능사 실기시험 완벽 가이드> 강의가 있습니다. 코딩웍스가 인프런에 처음으로 올린 강의라서 가장 애정하는 강의이기도 합니다. <웹디자인기능사 실기시험 완벽 가이드> 강의가 퍼블리셔 취업을 위해 필수적이지는 않습니다. 하지만 웹디자인기능사 자격증이 있으면 여러가지로 장점이 있습니다. 사실 회사에서 퍼블리셔 신입을 채용하면서 진짜 기본은 하는지 확인하는 방법은 현실적으로 일을 시켜봐야 알 수 있습니다. 그렇지만 퍼블리싱 기본 능력에 대한 확신을 채용 전에 갖기는 쉽지 않습니다. 반면에 웹디자인기능사 자격증이 있으면 최소한 퍼블리싱 기본 능력은 있다고 판단할 수 있습니다.

퍼블리셔포트폴리오반응형웹퍼블리셔취업

Inje Lee (소플)

인프런 단일 강의로 수강생 만 명을 넘기기까지 (6년간의 기록)

(이 글은 제 웹사이트에 작성한 글을 그대로 가져온 것입니다.)원문 링크: https://www.soaple.io/post/9/%EC%9D%B8%ED%94%84%EB%9F%B0%20%EB%8B%A8%EC%9D%BC%20%EA%B0%95%EC%9D%98%EB%A1%9C%20%EC%88%98%EA%B0%95%EC%83%9D%20%EB%A7%8C%20%EB%AA%85%EC%9D%84%20%EB%84%98%EA%B8%B0%EA%B8%B0%EA%B9%8C%EC%A7%80안녕하세요, 소플입니다.기존 티스토리 블로그를 제 웹사이트로 통합하고 처음으로 이렇게 글을 남기네요ㅎㅎ이번 글에서는 저에게는 꽤 의미있었던,인프런 단일 강의로 수강생 만 명을 넘기기까지 6년 동안의 과정을 한 번 적어보려고 합니다.글이 꽤 길지만 관심을 갖고 재미있게 읽어주셨으면 좋겠고,개발관련 강의 제작이나 소프트웨어 교육에 관심이 있는 분들에게 조금이라도 참고가 되길 바랍니다 😀 '소프트웨어 교육'이라는 꿈먼저 잠시 제 어릴 때 이야기를 해보려고 합니다.저는 어릴 때부터 컴퓨터에 관심이 많았고, 일찍부터 프로그래밍을 배우고 싶어했습니다.하지만 지방에 살았기 때문에 당시 다녔던 동네 컴퓨터 학원에서는 프로그래밍을 제대로 배울 수 없었습니다.학원에는 컴퓨터 자격증 반이 대부분이었고 프로그래밍을 배우려고 하는 학생이 거의 없었기 때문이죠.그래서 제대로 된 교육 과정도 없었고 가르쳐 줄 선생님도 턱없이 부족했습니다.저에게는 당시 배우고 싶었던 것을 배우지 못한 상실감이 꽤 컸습니다.그래서 제가 나중에 어른이 되면, 프로그래밍을 배우고 싶어하지만 여건이 안되는 학생들에게 양질의 소프트웨어 교육을 제공해주고 싶다는 생각을 하게 됐습니다.그렇게 시작된 생각은 저에게 소프트웨어 교육이라는 꿈을 갖게 만들었습니다.그리고 그 꿈은 점점 더 커져서 현재 제 인생의 최종 목표인 소프트웨어를 전문적으로 교육하는 학교를 설립하는 것이 되었습니다. 첫 오프라인 강의 (2017년, feat. Python)때는 바야흐로 2017년 말이었습니다.우연한 기회로 대전에서 3일 과정으로 파이썬 입문 강의를 하게 되었습니다.제 인생 첫 오프라인 강의였기 때문에 정말 두렵고 떨리는 마음으로 강의를 준비했습니다.그래서 아래와 같이 열심히 강의 자료를 만들었고, 저 때 지금의 제 강의 템플릿이 완성되었습니다.강의를 하기 전날 대전에 내려가서 숙소에서 계속해서 강의 연습을 했던게 아직도 기억납니다.강의 당일에는 너무 긴장해서 일찍 잠에서 깼고, 이른 시간에 강의장에 도착해서 기념 사진을 찍었습니다.당시 전체 수강생은 약 20명 정도였습니다.수강생중에는 흰 머리의 나이 지긋하신 아버님도 계셨고,재수를 해서 수능을 마치고 온 학생도 있었습니다.그렇게 제 인생의 첫 오프라인 강의를 시작하게 되었고,3일 동안 하루 8시간씩 정말 열심히 강의를 진행했던 기억이 납니다.강의가 끝나고 수강생 분들에게 메일로 실습 코드를 보내드렸는데,답장으로 좋은 말씀들을 너무 많이 해주셔서 정말 보람을 느꼈던 것 같습니다.그렇게 저는 교육이라는 것이 정말 보람찬 일이라는 것을 몸소 깨닫게 되었고,제 꿈에 더 확신을 가지게 되었습니다. 우연히 찾아온 기회 (2018년)2018년에는 제가 본격적으로 프리랜서 개발자로 활동하기 시작했습니다.프리랜서 프로젝트를 구하고 있던 와중에, 제가 병역특례를 했던 회사 대표님의 소개로 N사의 모바일 앱 개발 프로젝트를 수행하게 되었습니다.당시 N사의 CTO님과도 미팅을 할 기회가 생겼는데, 소프트웨어 교육이라는 공통 관심사로 많은 이야기를 나눌 수 있었습니다.그리고 CTO님께서는 구름 류성태 대표님을 소개해주셨습니다.소프트웨어 교육에 관심이 많으니 아마 서로 도움이 될 수 있을 거라고 하시면서 말이죠.그렇게 처음으로 구름과의 인연이 시작되었습니다.2018년 한 해 동안 저는 프리랜서 프로젝트를 주로 하면서,가끔 오프라인 강의도 하고 틈틈이 유튜브에 동영상 강의를 올리면서 보냈습니다.  첫 동영상 강의를 제작하다 (2019년, feat. 구름 에듀)당시 구름에서는 구름 에듀라는 강의 플랫폼을 만들어서 한창 키워나가고 있었습니다.강의 플랫폼의 초기에는 다양한 컨텐츠를 확보하는 것이 중요합니다.그래야 많은 사람들이 들어와서 강의도 듣고 결제도 할 것이기 때문이죠.그렇게 시간이 될 때 한 번씩 구름과 미팅을 하면서,먼저 AWS 강의와 리액트 강의를 제작해보기로 결정을 하게 되었습니다.AWS 강의는 기존에 제가 오프라인에서 강의를 할 때 만들어둔 자료가 있었기 때문에 그걸 사용해서 조금 빠르게 제작할 수 있었고,리액트 강의는 커리큘럼부터 강의자료까지 다 처음부터 만들어야 했습니다.기존에 유튜브 채널에 강의 동영상을 가끔 올리긴 했지만,제대로 된(?) 동영상 강의 제작은 처음이었기 때문에 설레기도 하고 걱정이 되기도 했습니다.당시 제가 프리랜서 프로젝트를 하느라 바빴기 때문에 남는 시간에 틈틈이 강의 내용을 구성했고,본격적인 강의 제작은 2019년 중순이 되어서야 할 수 있었습니다.그렇게 약 2달 동안 강의 자료를 만들고 녹음하고 편집하는 과정을 계속 반복했습니다.(참고로 제 모든 강의는 스튜디오가 아니라 조용한 시간에 집에서 녹음합니다🤣)그리고 2019년 6월, 구름 에듀에 제 인생 첫 동영상 강의인 처음 만난 AWS와 처음 만난 리액트가 출시되었습니다.보시는 것처럼 강의를 처음 출시 했을 때는 비싸진 않지만 유료로 판매했었습니다.플랫폼 입장에서 무료 컨텐츠는 초기에 사람들을 끌어모으는 역할은 하지만, 직접적인 수입원이 되지는 못합니다.그래서 결국은 컨텐츠를 유료로 판매해야 플랫폼은 수수료를 가져갈 수 있고, 강의자는 강의로 인한 수익을 창출하면서 공생할 수 있는 것이죠. 유료에서 무료로하지만 당시 저는 유료 강의에 대해 조금은 부정적인 생각을 갖고 있었습니다.어릴 때의 제 모습을 계속 떠올리면서, 어린 친구들이나 학생들은 돈이 별로 없기 때문에 단돈 1~2만원의 강의료도 부담이 될 것이라고 생각했기 때문입니다.또한 저 스스로도 아직 강의 컨텐츠에 대해서 돈을 받고 팔 정도의 자신은 없었습니다.수강생과 입장을 바꿔서 '내가 학생이라면 이 정도 강의를 이만큼의 돈을 내고 들을 것인가?' 라고 생각해봤을 때,당시 제 마음속의 대답은 '아니요' 였습니다.그래서 유료 강의를 출시한 이후에도 계속 저런 생각들이 들었고,고민 끝에 구름측에 양해를 구하고 강의를 무료로 전환하게 되었습니다.많지는 않았지만 당시에 무료로 전환하기 전까지 강의를 구매해주신 분들이 계셨습니다.규정상 따로 환불을 해드리지는 못했는데, 만약 이 글을 보고 계신다면 제 메일(inje@soaple.io)로 연락을 주시기 바랍니다.늦었지만 제 인프런 강의를 무료로 수강하실 수 있도록 쿠폰을 보내드리겠습니다🥹그렇게 구름 에듀에 출시한 강의를 모두 무료로 전환하고나니 몇 가지 변화가 생겼습니다.먼저 구름에서 주최하는 개발 프로그램에 참여하는 분들에게 제 강의를 무료로 제공할 수 있게 되었습니다.그리고 그런 프로그램에 참여하는 분들을 포함해서 수강생이 빠르게 늘기 시작했습니다.수강생이 늘면서 강의에 대한 평가도 늘기 시작했고,그 과정에서 강의에 대한 수강생 분들의 긍정적인 피드백을 받으면서 저도 힘을 받을 수 있었습니다.그렇게 시간이 흘러 현재까지 구름 에듀에서 처음 만난 AWS 1,233명, 처음 만난 리액트(v1) 2,040명, 처음 만난 리액트(v2) 328명의 누적 수강생을 달성할 수 있었습니다. 영어로 만들어서 달러를 벌어보자 (2020년, feat. Udemy)수강생도 꽤 늘어나고 강의에 대한 긍정적인 평가들을 받다보니 제 강의에 대해 조금 자신감이 생겼습니다.그리고 저도 지속적으로 강의를 제작하기 위해서는 강의로 수익을 창출하는 것이 필요하다는 생각을 하게 되었습니다.하지만 그때까지도 한국에서 유료 강의를 판매하는 것에 대해서는 제 마음이 내키지 않았고,영문판을 제작해서 유데미(Udemy)에 올려보면 어떨까? 라는 생각을 하게 되었습니다.당시 유데미는 영어로 된 강의가 대부분인 전세계를 대표하는 강의 플랫폼이었기 때문에,인기 강의의 수강생 수나 매출이 한국 플랫폼들과는 비교도 안 될 정도로 컸습니다.그래서 제 강의가 아주 조금만 어필이 되어도 꽤 큰 돈을 벌 수 있을 것이라고 생각했습니다.그렇게 달러를 벌어들이는 꿈을 꾸며 처음 만난 리액트 강의의 영문판을 제작하기 시작했습니다.영문판을 제작하면서 가장 힘들었던 점은 역시 언어의 장벽이었습니다.한글로는 쉽게 설명할 수 있는 부분들을 영어로는 어떻게 설명해야 할지 몰라서 참 어려웠던 것 같습니다.그래서 번역기와 영어권에서 많이 사용하는 표현들을 찾아가며 꽤 오랜 기간에 걸쳐 강의를 완성했습니다.그리고 2020년 7월, 유데미에 처음 만난 리액트의 영문판인 First met React 강의가 출시되었습니다.(당시 유데미에 출시된 강의 이미지를 분명 캡처해뒀는데 못찾겠네요ㅠ)강의를 출시하고 처음에 수강생을 모으기 위해 레딧에 홍보를 해보기로 했습니다.그래서 레딧의 리액트 서브레딧에 3일 동안만 등록 가능한 무료 쿠폰을 뿌렸습니다.그랬더니 운좋게 아래와 같이 Upvote를 많이 받아서 Hot에 올라가게 되었습니다.그렇게 레딧 홍보를 통해 초기 수강생을 꽤 모을 수 있었습니다.하지만 무료 쿠폰으로 등록한 수강생들이 대부분이었기 때문에 수익은 거의 없었습니다 😂그러다가 어느 날 자려고 누워서 유데미 수강생을 확인하는데, 갑자기 새로고침 할 때마다 수강생이 50~70명씩 늘어났습니다ㄷㄷ그래서 깜짝 놀라서 이게 도대체 무슨 일인지 확인해봤더니, 인도에서 수강생들이 엄청나게 몰려오고 있었습니다.누군가가 인도의 유데미 무료 쿠폰 코드를 공유하는 사이트에 제가 레딧에 올린 쿠폰 코드를 올린 것이었습니다.그렇게 강의가 출시된 7월에만 6,243명이 등록했는데,그들은 대부분 무료 쿠폰을 통해 유입된 수강생이었고 인도 사람들이 아주 큰 비중을 차지하고 있었습니다.아래 그림에서 인도에 그려진 큰 원이 보이시나요?ㅎㅎ이후로는 거의 수강생이 늘지 않았고 가끔씩 유료로 강의를 구매하는 수강생들이 있긴 했지만 절대적인 수는 얼마 되지 않았습니다.이후 한 동안 강의를 관리하지 못했더니 약 2년 전쯤 강의가 내려가게 되었고,누적 수강생 7,434명과 누적 수익 $46.18를 끝으로 달러를 벌기 위한 여정이 마무리 되었습니다. 처음으로 개발 서적을 집필하다 (2021년, feat. 한빛미디어)유데미에서의 뼈아픈 실패(?)를 경험하고, 2021년에 저는 1인 법인을 설립하게 됩니다.소프트웨어 교육과 관련된 활동을 꾸준히 해왔지만 그게 저의 본업은 아니었습니다.본업은 프리랜서 개발을 하면서 동시에 저만의 서비스를 개발하는 것이었죠.개인사업자로 4년 동안 프리랜서 개발을 해왔었는데, 2021년에 여러가지 상황이 겹치면서 법인을 설립하게 되었습니다.법인은 소프트웨어 교육과 관련된 것은 아니었고, 온전히 저만의 서비스를 위한 것이었습니다.(이 부분도 스토리가 길어서 기회가 된다면 나중에 다른 글에서 다뤄보도록 하겠습니다😃)법인을 설립하고 정신없이 서비스를 개발하던 중에 아래와 같이 출판사로부터 메일을 받게 되었습니다.당시 구름 에듀에 있던 제 리액트 강의를 꽤 많은 분들이 수강해주셨는데,출판사에서도 제 강의에 관심을 가지고 연락을 주신 것이었습니다.메일을 받고 나서 저는 정말 큰 고민에 빠졌습니다.개발자로서 개발 서적을 집필하는 것은 제가 언젠가는 꼭 이뤄보고 싶은 일 중에 하나였기 때문에 설레기도 했지만,법인을 설립하고 본격적으로 판을 벌려놓은 상태라서 '과연 책을 집필할 시간이 될까?'라는 고민이 들었습니다.당시 제가 책을 집필해본 적은 없었지만, 주변에서 책을 쓰는게 정말 힘들고 고통스럽다는 이야기들을 꽤 많이 들어왔기 때문에 더 고민을 했던 것 같습니다.하지만 정말 좋은 기회라는 생각이 계속 들었고, 처음 만난 리액트는 이미 강의로 제작되어 있는 상태였기 때문에 '책을 집필하는 과정도 조금은 수월하지 않을까?'라는 무식한(?) 생각으로 출판사와 계약을 하게 되었습니다.그렇게 1년 동안 개발도 하면서 틈틈이 책을 썼는데, 강의 컨텐츠가 어느정도 있었지만 책을 쓰는 과정은 전혀 수월하지 않았습니다😂마지막에는 정말 남은 힘을 다해서 꾸역꾸역 한 글자 한 글자씩 써내려갔던 것 같습니다.그렇게 해서 2022년 5월에, 소문난 명강의 시리즈로 소플의 처음 만난 리액트가 출간되었습니다.약 1년 동안 책을 집필하면서 느낀 점은,정말 힘든 과정이라는 것과 스스로 동기부여가 되어야만 할 수 있는 일이라는 것입니다.사실 개발 서적은 트렌드도 빨리 바뀌고 독자층도 한정되어 있기 때문에 책으로 인해 큰 수입을 얻기는 어렵습니다.하지만 저자의 이름을 알리거나 오프라인/온라인 강의를 하는 경우에는 꽤 도움이 되는 것 같습니다.그만큼 책을 출간한다는 것 자체가 스스로에게 큰 동기부여가 되지 않으면, 다른 데서 집필을 무사히 마칠 정도의 동기를 얻기가 어렵습니다.그래도 저는 오래 전부터 제가 꼭 이루고 싶은 일 중에 하나였기 때문에 무사히 책을 집필할 수 있었던 것 같습니다.그렇게 출간된 제 책은 나름대로 자리를 잘 잡고 꾸준히 판매가 되었습니다.처음에는 1쇄만이라도 다 팔려서 재고는 안 남았으면 좋겠다고 생각했는데,출간된 지 1년 반이 지난 현재 3쇄까지 거의 다 판매되었고 현재 개정판 출간을 앞두고 있습니다. 드디어 인프런에 첫 강의를 업로드하다 (2022년, feat. 인프런)제 책은 이미 강의로 제작된 내용을 기반으로 하는 책이었기 때문에,처음 출판사와 계약을 할 때부터 책이 출간되는 시점에 맞춰서 강의도 새롭게 리뉴얼 하는 것으로 정했었습니다.그래서 책을 거의 다 집필한 시점에 처음 만난 리액트 v2 강의를 제작하기 시작했습니다.기존 강의가 2019년에 제작되었기 때문에 그 사이 리액트에도 많은 변화가 생겼습니다.클래스 컴포넌트를 주로 사용하던 방식에서 훅과 함께 함수 컴포넌트를 사용하는 방식이 사실상 표준으로 자리잡게 되었습니다.그래서 새로운 버전의 강의에서는 기존 강의의 내용을 업데이트 하는 것과 동시에 책에 들어간 내용과 동일하게 새로운 내용들도 추가하게 되었습니다.그리고 제가 말하는 속도가 느린편이라서 강의가 졸리다는 의견도 꽤 있었기 때문에,새로운 버전에서는 말을 의도적으로 빠르게 하게 되었습니다🤣(지금 강의 속도가 조금 빠르다고 느끼는 분들도 간혹 계시지만 대부분 만족하시는 것 같습니다ㅎㅎ)그렇게 열심히 새로운 버전의 처음 만난 리액트 강의를 제작하게 되었고,구름 에듀, 인프런, 유튜브 등에 모두 업로드 하게 되었습니다.특히 제가 인프런에는 강의를 처음으로 올리는 것이었는데,강의를 올리면서 '드디어 이제서야 인프런에 강의를 올리는구나.' 라는 생각을 하게 됐습니다.왜냐하면 과거에 인프런에서 저에게 먼저 강의 제작을 제안한 적이 있었기 때문입니다.당시 인프런도 본격적인 성장세를 타고 있었던 시점이라 아마 다양한 강의 컨텐츠들이 필요했을 겁니다.그래서 저에게 처음에 리액트를 주제로 유료 강의 제작을 제안해주셨는데,그때까지도 저는 한국에서 유료 강의를 출시하는 것에 대해 마음의 결정을 내리지 못한 상태였습니다.그래서 MD님께 그러한 제 가치관에 대해서 잘 말씀드리고,향후 기회가 된다면 무료 강의를 제작해보겠다로 말씀드렸습니다.그리고 당시 위 이메일 내용처럼 지식공유자 신청만 미리 해두었습니다.그렇게 시간이 흐르고 흘러 2년 가까이 지나서야 인프런에 첫 강의를 출시하게 된 것이죠.어찌됐든 늦었지만 인프런과의 약속은 지켰다고 생각합니다😀그렇게 인프런에 강의를 출시하고 메인 페이지에 꽤 여러번 노출이 되었습니다.그 덕분에 수강생 수도 굉장히 빠르게 증가하였고, 2022년 말에는 아낌없이 주는 나무상까지 수상하게 되었습니다.제 리액트 강의가 2022년에 수강신청 수가 가장 많은 무료 강의였다고 합니다.그렇게 책도 출간하고 강의도 많은 분들에게 사랑을 받으면서 정말 뿌듯하게 2022년을 마무리했던 기억이 납니다. 수강생 10,000명을 달성하다 (2023년, 현재)어느덧 시간이 흘러 인프런에 리액트 강의를 출시한지 거의 1년 반이 다 되었습니다.그 사이 제 책과 강의는 더 많은 분들에게 관심을 받게 되었습니다.그래서인지 구글과 네이버에서 '리액트 강의'라고 검색하면 제 강의가 가장 먼저 나오게 되었습니다.그리고 강의 컨텐츠가 여기저기 수출(?)되기 시작했습니다.특히 프론트엔드 개발에 입문하는 분들이 제 리액트 강의를 학습하면서 개인 블로그에 많이 정리하셨던 것 같습니다.(붕어빵 그림은 제가 정말 한땀한땀 그렸는데 수출되어서 뿌듯하네요ㅎㅎ)아무튼 그렇게 책을 통해서도 제 강의를 접하고 검색을 통해서도 제 강의를 접하는 분들이 늘어나면서,최근에 드디어 단일 강의로 수강생 10,000명을 달성하게 되었습니다 🎉당시 스스로 기념하기 위해서 화면을 캡처해두었습니다 😎어떤 분들에게는 별거 아닐 수도 있지만,저에게는 첫 오프라인 강의를 시작하고 지난 6년 동안의 노력이 점점 결실을 맺어가는 것 같아서 굉장히 큰 의미가 있었습니다.그리고 많은 수강생 분들께서 남겨주신 소중한 수강평 또한 큰 힘이 되었습니다.이 글을 통해서 수강생 분들에게 다시 한 번 감사의 말씀을 전합니다!😀(정말 재미있게 리뷰를 남겨주신 휴식중인 오리님ㅎㅎ 혹시 휴식 끝나셨나요?) 유료 강의를 출시하다책도 어느 정도 팔리고 무료 강의로도 꽤 많은 수강생을 달성하고 나니,제 강의 컨텐츠에 대한 자신감이 어느정도 생기게 되었습니다.그리고 무료 강의를 운영하면서 느꼈던 여러가지 장단점으로 인해,올해에는 유료 강의를 한 번 출시해보기로 결정했습니다.그래서 현재 처음 만난 리덕스와 엊그제 공개 된 따끈따끈한 처음 만난 AWS까지 총 2개의 유료 강의를 제작하게 되었습니다.강의가 아주 많이 판매되지는 않고 있지만,구매해주시는 분들이 있다는 사실에 감사함과 뿌듯함을 동시에 느끼고 있습니다 😀 강의를 제작하면서 얻은 것들이렇게 지난 6년 동안의 이야기를 한 번 정리해보았습니다.저는 교육에 꿈이 있었기 때문에 시작한 것이지만,전체 개발자 분들 중에서 교육에 관심을 갖고 뛰어드는 비율은 현저하게 낮은 것 같습니다.회사일만 제대로 하기에도 바쁘기도 하고, 강의를 제작하는 것이 생각보다 어렵고 시간이 많이 걸리기 때문입니다.제가 강의를 제작하면서 얻은 것들은 다음과 같습니다.흩어져 있던 지식들을 체계화 할 수 있는 기회헷갈렸던 개발 관련 지식을 다시 한 번 복습하며 이해할 수 있는 기회코드 리뷰를 하거나 다른 개발자에게 설명을 할 때 더 쉽게 설명할 수 있게 됨돈으로는 살 수 없는 아주 큰 보람과 성취감저는 기억력이 그리 좋지 않아서 정리를 하면서 지식을 익히는 타입인데,그래서인지 강의를 제작하는 과정이 저에게는 개발 지식을 습득하는데 큰 도움이 되었던 것 같습니다.앞으로 강의를 제작할 계획이 있거나 소프트웨어 교육에 관심이 있는 분들은 참고하셨으면 좋겠습니다😀 앞으로의 계획 (2024년 ~)이제 2023년이 2달도 채 남지 않았습니다.저는 내년 계획을 아직 제대로 세우진 않았지만,아마도 새로운 강의를 적어도 하나 정도는 제작하고 오프라인 강의도 한 번은 하지 않을까 싶습니다.그리고 무엇보다도 제가 개발하고 있는 서비스가 어느정도 자리를 잡았으면 좋겠네요ㅎㅎ여러분들도 내년에 어떤 걸 공부하고 어떻게 성장할 것인지,어떤 새로운 일들을 해볼지 지금부터 계획을 세워보시면 좋을 것 같습니다!👏긴 글을 모두 읽어주셔서 감사드리며, 마지막으로 강의 쿠폰과 약간의 홍보를 하면서 마무리 짓겠습니다ㅎㅎ 광고 (AD)강의 50% 할인 쿠폰 (~ 2023년 12월 31일 까지만 유효)처음 만난 리덕스 🔗쿠폰 코드: 13533-912257c568a9처음 만난 AWS 🔗쿠폰 코드: 13534-3be05f545ba4소플이 만든 프론트엔드 지식 포털 FrontOverflow 🔗소플 웹사이트 🔗 그리고 개발 공부를 하고 싶지만 어려운 환경에 있는 분들은,주저하지 마시고 언제든지 아래 제 이메일 주소로 연락주세요.제가 도움을 드릴 수 있는 부분이 있다면 적극적으로 도와드리겠습니다! 😀inje@soaple.io

기타 (게임 개발)인프런지식공유10K강의리액트소프트웨어교육

이정환 Winterlood

[마감되었습니다] 한 입 크기로 잘라먹는 타입스크립트 사전 등록 이벤트

안녕하세요 이정환입니다 😃강의 출시와 함께 이벤트가 마감되었습니다.관심가져주시고 신청해주신 800여분의 여러분께 진심으로 감사드립니다.강의는 아래 링크로 보러가실 수 있습니다(현재 얼리버드 30% 할인 중입니다)https://inf.run/9ZRN 강의 소개유튜브 영상으로 보기한 입 크기로 잘라먹는 시리즈의 2번째 강의 한 입 크기로 잘라먹는 타입스크립트는배워도 배워도 자꾸만 헷갈리는 타입스크립트를 개념 이해와 함께 제대로 배워보는 강의입니다.복습을 위한 핸드북 제공강의를 들으면서 함께 보시거나, 강의 수강 이후 복습하시기 용이하도록강의 내용과 100% 일치하는 핸드북을 제공합니다.커리큘럼 소개🌱 Section 1. 타입스크립트 개론기술을 잘 이해하려면 그것이 어떤 배경에서 탄생했는지 알 필요가 있습니다.1섹션 에서는 타입스크립트의 탄생 배경을 살펴보며 타입스크립트가 해결하고자 했던 문제가 무엇이고 타입스크립트가 어떤 특징을 가지고 있는지 자세히 살펴봅니다.🌱 Section 2 ~ 3. 타입스크립트 기초 다지기가장 기본적인 타입스크립트의 문법을 살펴봅니다.동시에 타입스크립트가 말하는 타입이란 정확히 무엇인지그리고 타입들이 서로 어떤 관계를 맺고 어떻게 상호작용하는지 살펴봅니다.🌱 Section 4 ~ 6. 다양한 타입스크립트 문법 살펴보기함수 타입 정의, 함수 오버로딩, 인터페이스, 클래스 등타입스크립트의 다양한 기능과 문법을 살펴봅니다.🌱 Section 7 ~ 9. 마법사 처럼 타입을 직접 조작하기타입스크립트의 가장 독특하면서도 강력한 기능인 타입 조작 기능에 대해 살펴봅니다.제네릭, 인덱스드 엑세스 타입, 맵드 타입, Keyof 연산자, 조건부 타입 등아주 다양한 타입스크립트의 타입 조작 문법을 살펴봅니다.🌱 Section 10. 유틸리티 타입 이용하기타입스크립트가 기본적으로 제공하는 여러가지 유틸리티 타입들에 대해 살펴봅니다.유틸리티 타입을 지금까지 배운 지식을 이용해 직접 구현 해봅니다.🌱 Section 11. 리액트에서 타입스크립트 사용하기(보너스)이대로 끝나면 아쉽죠? 그래서 보너스 섹션으로 준비했습니다.아주 간단한 투두 리스트를 함께 만들어보며리액트 프로젝트에 타입스크립트를 적용하는 방법에 대해 살펴봅니다.닫는 말마지막으로 신규 강의를 끝까지 마무리할 수 있도록 계속해서 응원해주신기존 수강생 분들과 독자 분들 그리고 주변 지인 분들께 모두 감사드립니다.또 이 글을 보고 관심을 가져주신 모든 인프런 유저 여러분께도 감사드립니다.

프론트엔드타입스크립트프론트엔드자바스크립트typescriptjavascript

코드캠프

입문자도 가넝한 8주만에 개발자 되는 법

안녕하세요! 실무 코딩부트캠프, 코드캠프입니다 :)날씨가 조금씩 따뜻해지면서 식곤증이 부쩍 늘어나고 있지 않나요?(전지적 컴퓨터 시점)그래서 코드캠프가 눈이 번쩍! 뜨이는(👀) 강의 업데이트 소식을 준비해왔어요!특히 비전공이지만 개발 커리어에 관심이 있는 분들이라면, 주목해주셔도 좋아요 :)코딩을 몰라도(NEW!) 2개월만에 개발자가 되는 '관리형' 코딩 부트캠프인프런에 입성한지 얼마 되지 않았지만 뜨거운 관심과 애정 어린 피드백을 받으며, 더 나은 컨텐츠를 제공하기 위해 코드캠프도 열심히 성장 중인데요. (정말 감사합니다)그 중 사전 기초 지식 없이는 부트캠프 합류가 어려워 신청을 망설였던 분들을 많이 보았어요.그래서 상담 후 등록을 완료해주신 모든 분들께,[시작은 프리캠프], [강력한 CSS], [훈훈한 Javascript] 기초 강의를 무료로 제공합니다!사전 지식을 필요로 하시는 분들은 웹 개발의 기초를 습득하시고사전 지식이 이미 있으신 분들은 기초 내용을 복습하면서 튼튼하게 다져보세요 :)⚠️ 단, 기초 강의 수강 기간은 부트캠프 기간(8주)에 포함되지 않으므로 등록하신 기수의 개강 일정에 맞춰 수강해 주셔야 합니다!(MBTI가 P인 분들)개강 전 기초 강의 수강 계획을 짜기 힘드신 분들은 언제든 코드캠프에 문의해주세요!개강일에 맞춰 수강할 수 있도록 체계적인 시간표를 제공해드리겠습니다 😊👉 2기 일정 : 03.06 - 04.28 (선착순 모집) ▶ 20% 할인 중!👉 3기 일정 : 04.03 - 05.29 (선착순 모집) ▶ 20% 할인 중!

웹 개발웹개발프론트엔드백엔드부트캠프비전공자JavascriptNode.jsReactNext.jsNest.js

윤선미

👩‍💻인프런 지식 공유자는 이런 데이터가 궁금해요!

안녕하세요, 데이터리안 강의 기획자 S 입니다. 데이터리안이 '[백문이불여일타] 데이터 분석을 위한 기초 SQL'로 인프런에서 강의를 시작한 지도 벌써 1년이 넘었습니다.그동안 데이터리안 강의는 총 여섯 개가 되었고, 총 수강생은 삼천 명을 넘었네요.데이터리안 강의를 수강해주신 모든 분, 앞으로 수강해주실 모든 분, 그리고 항상 많은 도움을 주시는 인프런 관계자분들께 감사의 말씀을 전합니다. 감사 인사로 글을 시작하게 되었는데, 오늘은 지식 공유자로서 👩‍💻인프런 강의 데이터👩‍💻에 관한 이야기를 해보려고 합니다.인프런에서 활동하는 지식 공유자들은 대시보드 기능을 통해 ` 수강생 수`, `수익 현황` 등 강의 결제 관련 지표를 확인할 수 있습니다. 참고아래 화면은 실제 대시보드에서 ` 판매액 ` 등의 민감 정보를 제외한 화면입니다. 이번 달에는 ` 어떤 강의에서 어느 정도의 수익이 발생`했는지,  `지난 1년간 수익 현황`은 어땠는지 등 많은 정보를 살펴볼 수 있습니다.현황을 보다보니, 수강생들의 이용 현황 등 더 다양한 종류의 지표를 보면 좋겠다는 생각이 들었습니다.데이터리안이 데이터 분석가 커뮤니티인 만큼, 지식 공유자로서 확인하고 싶은 지표와 이를 통해 할 수 있는 액션에 대해 고민한 내용을 공유합니다. next.. 1. 데이터리안 강의를 어떻게 알게 되었을까? 1-A. 강의 유입 경로 비중 1-B. 강의 구매 ~ 실제 수강 사이의 기간과 실제 수강 비중 2. 강의 수강 중 어려운 점은 무엇일까? 2-A. 영상별 반복 재생 횟수 2-B. 음량, 재생 속도 변경 횟수 및 전체 재생 수 대비 그 비중 2-C. 완강률 & (완강하지 않은 채 이탈한 경우) 이탈한 지점 3. 이후에도 다른 데이터리안 강의를 계속 수강할까? 3-A. '[백문이 불여일타] 시리즈' 내의 다음 강의를 이용하는 수강생 비중 3-B. '[백문이 불여일타] 시리즈' 완강 이후 '추천 시스템' 강의 등록 비중 (혹은 그 반대 경우의 비중) 1. 데이터리안 강의를 어떻게 알게 되었을까? 1-A. 강의 유입 경로 비중 데이터리안 강의를 수강해주신 분들은 저희 강의를 어떻게 알게 되었을까요?지금 이 글이 올라와 있는 데이터리안 블로그를 통해 알게 되었을 수도, 혹은 인프런 내에서 `SQL`, `데이터 분석` 등의 키워드를 검색하여 알게 되었을 수도 있을 것입니다. 수강생의 유입 경로를 데이터로 파악할 수 있다면, 데이터리안은 이런 액션을 해볼 수 있겠네요. 인프런 내에서 검색을 통한 유입이 많다면? 강의에 여러 키워드를 추가하여, 지금 보다 더 다양한 검색 결과에서 데이터리안 강의가 노출될 수 있도록 한다. 데이터리안 블로그 혹은 인프런 블로그 를 통한 유입이 많다면? 블로그에 더 자주 글을 업로드 한다. 블로그 글이 더 많이 퍼질 수 있도록 여러 커뮤니티에 홍보한다. 현황을 확인하고 액션을 했다면 실제 효과를 확인해볼 차례겠네요. 액션 이후에 해당 경로를 통한 유입이 늘었는지를 계속 확인하며 효과를 분석해볼 수도 있을 것입니다. 1-B. 강의 구매 ~ 실제 수강 사이의 기간과 실제 수강 비중 수강생분들이 강의를 구매하고 실제로 공부를 시작하기까지의 기간은 얼마나 될까요? 그리고 실제 수강 비중은 전체 구매 고객의 몇 퍼센트일까요?AARRR 방법론에 따라 나눠보자면, 강의 구매는 `Acquisition`, 실제 수강은 `Activation` 이라고 할 수 있습니다. 이 `Activation`이 일어나기까지 얼마나 걸리는지, 즉 공부하고자 하는 마음이 들었을 때 강의를 구매해서 바로 수강을 하는지 혹은 미리 구매하고 나중에 시간이 될 때 수강을 시작하는지 궁금하네요.이 데이터는 확인할 수 없지만, 인프런측에서 제공해주시는 결제 데이터를 보며 발견한 한 가지 패턴이 있습니다.강의 할인을 하지 않을 때보다, 강의 할인이 진행되는 특정 기간에 구매가 증가한다는 점입니다. 더욱더 재미있는 부분은, 할인이 종료되는 마지막 날에 가장 많이 구매한다는 것입니다.이런 데이터를 보면, 할인 기간에 미리 강의를 구매하고 강의 수강은 나중에 하지 않을까 하는 생각이 드네요 :) 2. 강의 수강 중 어려운 점은 무엇일까? 2-A. 영상별 반복 재생 횟수 인프런 강의는 여러 섹션으로 묶인 영상으로 구성되어 있습니다. 이 중에서 `어떤 영상을 가장 많이 반복 재생`하며, `반복 재생을 많이 하는 영상은 어떤 섹션에` 가장 많을까요?반복 재생이 많은 영상 혹은 섹션이 있다면, 해당 영상의 난이도와 관련 질문 등록 수 등을 확인하여 영상 하단에 보충 설명을 추가하는 등의 액션을 해볼 수 있을 것입니다. 현재는 영상 재생 관련 데이터를 확인할 수 없으므로, 질문 주신 내용을 바탕으로 특별히 질문이 많이 들어오는 영상에 보충 설명을 덧붙이기도 했습니다. 2-B. 음량, 재생 속도 변경 횟수 및 전체 재생 수 대비 그 비중 데이터리안 SQL 강의 수강평에는 음량이나 설명 속도 등에 대한 피드백이 종종 있는데요, 영상마다 촬영 시점이나 환경이 다를 수 있으므로 불편을 느끼시는 부분을 데이터로 더욱 정확하게 확인할 수 있으면 좋겠다는 생각이 들었습니다. 어떤 영상에서 음량이나 재생 속도를 조정하는 횟수가 많은지 ( = 영상별 조정 횟수) 작게/느리게 조정을 하는지 혹은 크게/빠르게 조정을 하는지 ( = 변경 내역 ) 와 같은 데이터를 확인할 수 있다면, `해당 영상의 전체 재생 수 대비 변경 횟수` 등을 집계하여 영상별 변경 비율을 알아볼 수 있을 것입니다. 수치를 확인한 후에는 변경 비중이 높았던 영상을 직접 확인해보고, 강의의 음량이나 속도가 다른 강의와 어떻게 다른지 확인해볼 수 있겠네요.이런 식으로 데이터를 활용할 수 있다면, 앞으로 새로운 강의를 준비할 때는 많은 분이 원하는 음량 혹은 재생 속도로 편집하여 제공할 수 있지 않을까 생각합니다. 2-C. 완강률 & (완강하지 않은 채 이탈한 경우) 이탈한 지점 강의를 처음부터 끝까지 모든 영상을 시청한, 즉 완강한 비율은 얼마나 될까요? 만약 완강하지 않고 이탈했다면, 어떤 지점에서 이탈했을까요? 각 수강생이 수강한 영상과 그 날짜를 확인할 수 있다면, 완강한 고객 및 그렇지 않은 고객을 확인할 수 있을 것입니다.실제로 데이터를 확인할 수는 없지만, 확인할 수 있다고 가정한다면 먼저 두 가지를 고민해봐야 합니다. 이탈한 '지점'을 무엇으로 정의할 것인가? 어느 정도의 기간 내에서 이탈 여부를 판단할 것인가? 저희는 데이터리안 강의만을 대상으로 하므로 강의 결제까지의 퍼널보다는, 그 이후의 수강 현황이 더 중요합니다. 따라서 1번의 '이탈 지점'은 특정 '영상'을 기준으로 할 수 있을 것입니다. 완강하지 않은 고객이 `어떤 영상을 마지막으로 시청하고 이탈하였는지`를 살펴볼 수 있겠네요.그렇다면 여기서 이탈 여부를 판단하는 '기간'은 어느 정도가 적당할까요?수강 기간을 3개월로 제한한 강의는, 강의 결제 이후 3개월 이내에 완강하지 않은 고객을 이탈 고객으로 볼 수 있을 것이고, 해당 고객이 마지막으로 본 영상이 이탈 지점이 되겠네요. 수강 기간이 무제한인 강의는 이보다 더 길게 기간을 제한할 수도 있고, 혹은 동일하게 3개월로 잡아 강의 별 이탈률을 비교해볼 수도 있겠습니다. 3. 이후에도 다른 데이터리안 강의를 계속 수강할까? 3-A. '[백문이 불여일타] 시리즈' 내의 다음 강의를 이용하는 수강생 비중 많은 분이 사랑해주시는 '[백문이 불여일타] 시리즈'는 기초 ~ 고급 SQL 부터 문제 풀이 강의까지 총 다섯 강의로 구성되어 있습니다. 기초부터 고급까지 난이도 순서대로 수강하시는 분들의 비중은 얼마나 될까요? 종종 '다음 강의를 들으러 간다 '거나 '기초부터 고급까지 완강했다 '라는 수강평을 남겨주시는 분들이 계십니다. 데이터리안 강의를 믿고 끝까지 함께 해주셨다는 점에서 항상 감사드리며, 이런 흐름대로 수강하시는 수강생분들이 얼마나 계실지도 궁금해졌습니다.만약 이 비중을 확인할 수 있다면, `시리즈가 완성되지 않았을 때와 시리즈가 완성된 이후에 다음 강의를 구매하는 비율`이 차이가 나는 지를 확인해 볼 수 있을 것입니다. 만약 시리즈 완결 이후 다음 강의로 전환되는 비중이 높다면, 앞으로 시리즈 강의를 제작할 때는 다음 강의가 최대한 빨리 나올 수 있도록 하는 것이 중요하겠네요. 3-B. '[백문이 불여일타] 시리즈' 완강 이후 '추천 시스템' 강의 등록 비중 (혹은 그 반대 경우의 비중) 현재 데이터리안 강의는 크게 두 종류로 나눠집니다. 하나는 SQL을 다루는 '[백문이 불여일타] 시리즈 ', 다른 하나는 '추천 시스템 ' 입니다.두 시리즈는 서로 다루는 내용이 다르다 보니 `두 가지를 모두 수강해주시는 분`들은 얼마나 되며, 어떤 분들이 `어떤 순서로 수강하는지` 궁금합니다. 앞으로 나올 다양한 주제의 강의를 많은 분이 좋아하실지, 기존의 데이터리안 강의를 수강하신 분도 데이터리안을 믿고 새로운 강의를 수강하실지 파악해볼 수 있을 것 같습니다. 인프런의 지식 공유자로서 데이터리안은 이런 지표가 궁금한데, 다른 지식 공유자분들은 어떤 지표에 관심이 있으실지 궁금하네요. 지식 공유자로서 일방적으로 컨텐츠를 전달하는 것이 아닌, 강의 개선을 위해 어떤 액션을 해볼 수 있을지 고민해보는 뜻깊은 시간이었습니다. 지난 일 년 동안 데이터리안 강의를 수강해주신 모든 분께 다시 한번 감사 인사를 드리며, 앞으로 더 다양하고 발전된 강의로 오랫동안 찾아뵙겠습니다 :) 👉데이터리안 강의가 궁금하시다면? Click