블로그

솔 (Sol)

우당탕탕! IT 회사 운영팀 공감 에피소드

“꼭 개발자만 코딩하고, 기술 얘기를 할까?” No! 테크 기업이나 개발자와 밀접하게 일하는 환경에서는 개발 직군이 아니더라도 문제를 해결하기 위해 코드를 짜고 구축하거나 개발자와 소통할 일이 종종 생기기 마련이죠.재미와 공감 사이! 인프런 운영팀에서 벌어진 가벼운 에피소드 세 가지를 소개할게요. (모든 에피소드에는 재미를 위한 약간의 양념(!)이 들어가 있습니다. ㅎㅎ)Episode 1. 강력 새로고침 그게 뭔데…?때는 2019년, 개발은커녕 컴퓨터도 잘 모르던 인프런 신입 콘텐츠 에디터 솔. 입사 첫 달, 버그를 발견하고 다급하게 개발 파트의 문을 두드렸는데요.조슈아(데브옵스 엔지니어) 말씀하신 버그 수정해서 배포했어요. 혹시 지금도 안 되나요?솔(콘텐츠 에디터) 넵! 아직 동작이 안 되고 있어요. ㅠㅠ조슈아(데브옵스 엔지니어) 아아 크롬 쓰시죠? 그럼 강력 새로고침 한번 해보실래요?솔(콘텐츠 에디터) …네?조슈아(데브옵스 엔지니어) 강력 새로고침이요!솔(콘텐츠 에디터) (멘붕) 어… F5를… 연타하면 되나요?구글 크롬(Google Chrome) 등의 브라우저에서 캐시된 데이터를 비우고 서버에서 새로 데이터를 받아오는 기능을 강력 새로고침(Hard Reload)이라고 하는데요. (Ctrl/Command + F5 또는 Ctrl/Command + Shift + R) 지금은 웃으면서 얘기하지만, 신입 시절 가장 당황스럽고 낯설었던 용어 중 하나였답니다 😂(부디 저만 모르는 용어가 아니었길 바라며...)Episode 2. 기술 사채(?)퇴근하고, 주말마다 짬짬이 파이썬 프로그래밍을 공부했던 B2B 파트 리드 고트. 이제 파이썬으로 자동화 처리나 웹 크롤링 등 간단한 작업을 할 수 있게 되었어요.고트(B2B 리드) 이제 이 코드를 실행시키면 제휴 기업에 필요한 데이터가 주루룩 떠요.솔(콘텐츠 에디터) 오오 대박… 완전 멋진데요. 근데 시간은 원래 이렇게 좀 걸리는 거예요?고트(B2B 리드) 그게 주먹구구로 코드를 짜서 성능은 어쩔 수 없어요. 저번에 코드 짜는 거 도와주신 개발자 한 분이 코드 보시더니 당황하시더라구.솔(콘텐츠 에디터) 기술 부채네요. ㅋㅋㅋ 리팩터링(Refactoring)을 해보면 어때요?고트(B2B 리드) ㅋㅋㅋㅋㅋ 음… 이건 기술 부채라고 할 만한 게 아니라 기술 사채를 쓴 거에 가깝기 때문에…영차영차 짜놓은 여러분의 코드, 지금 안녕하신가요? 파산 위기(?)에 놓이지 않게 조심하세요! 😓(기술부채_1장_요약.jpg) ©MBCEpisode 3. 위즈는 나야 둘이 될 수 없어?인프런 운영팀에서는 간단한 자동화가 필요할 땐 재피어(Zapier)라는 툴을 많이 활용하고 있어요. 특히 자동화에 진심(!)인 콘텐츠 MD 위즈가 여러 업무 태스크를 위한 자동화 봇을 재피어로 여러 개 구축해두었는데요.그 중 하나가 바로 æ-위즈! 콘텐츠 파트의 수많은 업무를 대신해주는 똑똑한 알림봇입니다.(요것이 æ-위즈. 걸그룹 에스파æspa에서 이름을 따왔어요.)하지만 자동화가 잘 갖춰진 환경을 마련하기까지는 쉽지 않은 법. 한번은 이런 얘기가 나온 적이 있었어요.메리(콘텐츠 MD) 근데 정산 관련해서 그 데이터는 누가 정리하고 있어요?코니(콘텐츠 MD) 어? 그거 æ-위즈가 자동으로 해서 알려주는 거 아니예요?위즈(콘텐츠 MD) 네 원래는 æ-위즈가 하는 게 맞는데…메리(콘텐츠 MD) 맞는데…? (불안)위즈(콘텐츠 MD) 재피어에서 뭐가 바뀌었는지 요새 봇이 안 울려서 æ-위즈 대신 사람 위즈가 하고 있습니다. 이번 달 데이터… 오늘 제가 정리해야 하거든요… ㅠㅠ전원 (숙연…)사람 손을 타지 않는 완전한 자동화의 길은 멀고도 험한 걸까요? 🥲더 편리한 업무 환경을 만들고, 똑똑하게 일하기 위한 팀원들의 고군분투는 계속됩니다. 쭉~!

기타 (개발 · 프로그래밍)강력새로고침기술부채자동화zapier재피어코딩

빠타박스

면접을 위한 CS전공지식 노트 [ 운영체제와 컴퓨터 ]

1. 운영체제와 컴퓨터3.1.1운영체제의 역할CPU 스케쥴링과 프로세스 관리CPU 소유권을 어떤 프로세스에 할당 할지프로세스의 생성과 삭제자원 할당 및 반환 관리메모리 관리한정된 메모리에 어떤 프로세스를 할당해야 하는지디스크 파일 관리디스크 파일을 어떠한 방법으로 보관 할지I/O 디바이스 관리마우스, 키보드 와 컴퓨터간에 데이터를 주고 받는 것을 관리구조유저 프로그램 < GUI = 시스템 콜 = 커널 = 드라이브 < 하드웨어— GUI, 시스템 콜, 커널, 드라이브 ) 운영체제GUI가 없고 CUI만 있는 리눅스GUI : 사용자가 전자 장치와 상호 작용 하는 사용자 인터페이스의 형태, 단순 명령창이 아닌 아이콘을 마우스로 클릭하는 단순 동작으로 컴퓨터와 상호작용드라이버 : 하드웨어를 제어하기 위한 소프트웨어CUI : 그래픽이 아닌 명령어로 처리하는 인터페이스시스템 콜운영 체제가 커널에 접근하기 위한 인터페이스유저 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출 할 때 쓴다.유저 프로그램이 I/O 요청으로 트랩(trap)을 발동하면 올바른 I/O 요청인지 확인 후 유저 모드가 시스템 콜을 통해 커널 모드로 변환되어 실행된다.이 때 유저 모드에서 파일을 읽지 않고 커널 모드로 들어가 파일을 읽고 다시 유저 모드로 돌아가 그 뒤에 있는 유저 프로그램의 로직을 수행한다. - 이 과정을 통해 컴퓨터 자원에 대한 직접접근을 차단할 수 있고 프로그램을 다른 프로그램으로부터 보호할 수 있다.I/O요청 : 입출력 함수, 데이터베이스, 네트워크 파일 접근 등에 관한 일메모리(프로세스, 스레드) ⇒ 시스템 콜 ⇒ 커널 ⇒ OS프로세스나 스레드에서 운영체제로 어떠한 요청을 할 때 시스템콜이라는 인터페이스와 커널을 거쳐 운영체제에 전달 된다.시스템 콜은 하나의 추상화 계층시스템 콜을 통해 네트워크 통신이나 데이터베이스와 같은 낮은 단계의 영역 처리에 대한 부분을 많이 신경 쓰지 않고, 프로그램을 구현할 수 있는 장점이 있다.modebit시스템 콜이 작동될 때 modebit을 참고해서 유저 모드와 커널 모드를 구분한다.I 또는 0의 값을 가지는 플래그 변수카메라, 키보드 등 I/O 디바이스는 운영체제를 통해서만 작동해야 한다.ex) 카메라를 켜는 프로그램 → 만약 유저모두를 기반으로 카메라가 켜진다면, 사용자가 의도하지 않았는데 공격자가 카메라를 갑자기 켤 수 있는 등 나쁜 짓을 하기가 쉽다. 물론 커널 모드를 거쳐 운영체제를 통해 작동한다고 해도 100% 막을 수는 없지만, 운영체제를 통해 작동하게 해야 막기가 쉽다.이를 위한 장치가 modebit이다.modebit의 0은 커널모드 , 1은 유저 모드라고 설정한다.유저 프로그램이 카메라를 이용하려고 할 때 시스템 콜을 호출하고 modebit을 1에서 0으로 바꾸며 커널 모드로 변경한 후 카메라 자원을 이용한 로직을 수행한다. 이후 modebit을 0에서 1로 바꿔서 유저모드로 변경하고 이후 로직을 수행한다.유저 모드 : 유저가 접근할 수 있는 영역, 제한적으로 두며 컴퓨터 자원에 함부로 침범하지 못하는 모드커널 모드 : 모든 컴퓨터 자원에 접근할 수 있는 모드커널 : 운영체제의 핵심, 시스템콜 인터페이스를 제공한다, 보안, 메모리, 프로세스, 파일 시스템, I/O 디바이스, I/O요청 관리 등 운영체제의 중추적인 역할 수행3.1.2 컴퓨터의 요소컴퓨터CPU, DMA컨트롤러, 메모리, 타이머, 디바이스 컨트롤러 등으로 이루어져있다.CPU(Central Processing Unit)산술 논리 연산 장치, 제어장치, 레지스터로 구성되어 있는 컴퓨터 장치인터럽트에 의해 단순히 메모리에 존재하는 명령어를 해석해서 실행하는 일꾼관리자 → 커널 → HDD or SSD,(프로그램) → 메모리(RAM) 프로세스 < = > 일꾼관리자 역할을 하는 운영체제의 커널이 프로그램을 메모리에 올려 프로세스로 만들면 일꾼인 CPU가 이를 처리한다.제어장치 (CU, Control Unit)프로세스 조작을 지시하는 CPU의 한 부품입출력장치 간 통신을 제어하고 명령어들을 읽고 해석하며 데이터 처리를 위한 순서를 결정한다.레지스터CPU안에 있는 매우 빠른 임시기억장치CPU와 직접 연결되어 있으므로 연산 속도가 메모리보다 수십 배에서 수백 배 까지 빠르다.CPU는 자체적으로 데이터를 저장할 방법이 없기에 레지스터를 거쳐 데이터를 전달한다.think. 그럼 레지스터에 저장되고, CPU로 보내기에 이전 데이터도 잠시 머무를 수 있어서 빠르게 불러 올 수도 있고, 저장 장치 이기에, 이미 처리된 데이터가 저장되어서 미리 빠르게 불러 들일 수 있을 것같다.?산술논리연산장치(ALU, Arihmetic Logic Unit)덧셈, 뺄셈, 같은 두 숫자의 산술 연산과 배타적 논리합, 논리곱 같은 논리 연산을 계산 하는 디지털 회로CPU의 연산처리제어장치, 레지스터, 산술논리연산장치를 통해 연산하는 예시제어장치가 메모리에 계산할 값을 로드한다, (레지스터에도 로드한다)제어장치가 레지스터에 있는 값을 계산하라고 산술논리연산장치에 명령한다.제어장치가 계산된 값을 다시 레지스터에서 메모리로 계산한 값을 저장한다.인터럽트어떤 신호가 들어왔을 때 CPU를 잠깐 정지시키는 것발생종류키보드, 마우스, 등 I/O 디바이스로 인한 인터럽트0으로 숫자를 나누는 산술 연산에서의 인터럽트프로세스 오류인터럽트가 발생되면 인터럽트 핸들러 함수가 모여 있는 인터럽트 벡터로 가서인터럽트 핸들러 함수가 실행된다.인터럽트 간에는 우선순위가 있고 우선순위에 따라 실행되며,인터럽트는 하드웨어 인터럽트, 소프트웨어 인터럽트 로 나뉜다.**하드웨어 인터럽트**키보드를 연결하다거나, 마우스를 연결하는 일 등의 I/O 디바이스에서 발생하는 인터럽트인터럽트 라인이 설계된 이후 순차적인 인터럽트 실행을 중지하고 운영체제에 시스템콜을 요청해서 원하는 디바이스로 향해 디바이스에 있는 작은 로컬 버퍼에 접근하여 일을 수행한다.**소프트웨어 인터럽트**트랩(trap)이라고도 한다,프로세스 오류 등으로 프로세스가 시스템콜을 호출할 때 발동한다.DMA 컨트롤러I/O 디바이스가 메모리에 직접 접근할 수 있도록 하는 하드웨어 장치CPU에만 너무 많은 인터럽트 요청이 들어오기 때문에 CPU 부하를 막아 주며, CPU의 일을 부담하는 보조 일꾼이라 보면 된다.하나의 작업을 CPU와 DMA컨트롤러가 동시에 하는 것을 방지한다.메모리전자회로에서 데이터나 상태, 명령어 등을 기록하는 장치RAM(Random Access Memory)를 메모리라 한다.CPU는 계산을 담당하고 메모리는 기억을 담당한다.비유 :CPU는 일꾼, 메모리는 작업장, 작업장의 크기가 곧 메모리의 크기작업장이 클수록 창고에서 물건을 많이 가져다 놓고 많은 일을 할 수 있듯이메모리가 크면 클수록 많은 일을 동시에 할 수 있다.타이머몇 초 안에는 작업이 끝나야 한다는 것을 정하고 특정 프로그램에 시간제한을 다는 역할시간이 많이 걸리는 프로그램이 작동할 때 제한을 걸기 위해 존재한다.디바이스 컨트롤러(Device Controller)컴퓨터와 연결되어 있는 I/O 디바이스들의 작은 CPU

게임 프로그래밍네트워크운영체제CS코딩게임개발it

Jason

파이참에서 새 프로젝트 만들기 (+줄 번호 옆 빨간 점)

파이참에서 새 파이썬 프로젝트를 만드는 방법에 대해 알아보자.   그전에 먼저, 프로젝트를 구분해야 하는 이유를 간단하게 알아보자. 흔히 a강의 실습, b강의 실습, 프로젝트c 등 다양하게 프로젝트를 만들어서 코딩을 한다. 이렇게 구분하는 이유는 가상환경 때문, 어떤 프로젝트에서 사용되는 패키지가 다른 프로젝트에서는 버전이 다르거나 필요없을 수 있다. 이름 구분 때문. 사실 가장 큰 이유이다. 다른 사람과 코드를 피드백, 전달, 협업할 때 유용하다. (프로젝트 파일을 통째로 넘기면 되니깐)   파이참에 접속하면 다음과 같은 화면이 뜬다. 혹시라도 안 뜬다면(기존의 프로젝트가 열린다면) 맨위에 파일 -> 새 프로젝트를 눌러주면 된다.   여기서 새 프로젝트를 눌러준다.       일단 프로젝트가 저장될 위치를 선택해야 한다. 바탕화면에 저장하는 것을 추천하다. 바탕화면에 hello 폴더(프로젝트 폴더)를 넣고 싶으면 윈도우는 사진처럼 적으면 된다. 그리고 바로 아래쪽에 다음을 이용한 새 환경을 체크한다. 이전에 구성된 인터프리터를 체크하는 것은, 다른 프로젝트의 버전, 패키지를 완전히 공유하겠다는 것이라서, 비추천한다, 다음을 이용한 새 환경을 체크하면, 자동적으로 프로젝트가 저장되는 폴더 안에 venv 폴더라고 지정되어 있을 것이다.   아래쪽에 main.py welcome script를 체크하는 개인의 기호에 맡긴다.   그리고 맨 아래쪽에서 오른쪽에 있는 생성 버튼을 누른다.   조금 더 기다리자.   모든 준비가 완료되면, main.py가 보일 것이다. (프로젝트 생성 시 체크박스를 체크하였다면)   가장 왼쪽에는 프로젝트 디렉토리 구조를 한 번에 볼 수 있다, 가운데부터 쭉 main.py 코드가 나와있다.   코드 가장 왼쪽에는 줄 번호가 나와있다. 그리고 실행조건이 나와있다. 여기서 빨간 점을 볼 수 있는데, 누르면 사라진다.(없앨 수 있다) 디버깅이라는 것을 할 때 사용되는 것이므로, 코드 실행에는 큰 영향을 주지 않는다.   코드를 실행하는 방법은 다양하다. main.py를 보고 있는 상태에서 Ctrl 키 + Shift 키 + 단축키F10을 동시에 눌러준다. main.py 코드 아무데서나 마우스 오른쪽을 누른 후 실행을 누른다. 파이참 화면 오른쪽 위에 실행버튼을 누른다.     다음은 디렉토리 구조가 나와있는 곳(파이참 화면에서 왼쪽)에서 파일이나 디렉토리를 생성하는 영상이다.   다음은 디렉토리 구조가 나와있는 곳에서 파일이나 디렉토리를 삭제하는 영상이다.

파이참pycharm파이썬python코딩프로그래밍인프런

휴식중인 가재

[전액무료,실시간온라인] 지역ICT 이노베이션스퀘어 확산사업_블록체인 고급 프로젝트과정교육

    안녕하세요. 한국취업센터입니다.   지역ICT 이노베이션스퀘어 확산사업_블록체인 고급 프로젝트과정 안내드립니다.   수강혜택으로 수료증발급, 블록체인 자격증 응시 기회까지 제공해드리고 전액무료, 누구나 과정을 이수할 수 있으니 신청해보세요.   학생, 취업준비생, 재직자, 이직자 예정자분들 병행 추천드립니다!                     블록체인 고급 프로젝트과정 참여자 모집 공고를 아래와 같이 안내 드리오니, 참여 희망자는 해당 홈페이지로 참가 신청서를 제출하시길 바랍니다. 블록체인 고급 프로젝트과정 > 블록체인 | AI배울랑교_동남권ICT이노베이션스퀘어 (baeulang.kr) 조기 신청자가 많기에, 빠른 지원 바랍니다.   ※ 경상권 거주자분들은 즉시 신청 가능하며, 타 지역거주자는 신청 전에 오픈카톡으로 문의를 주시기 바랍니다. (경상권 거주자 즉시 참여가능) - 블록체인 훈련과정 문의 [ https://open.kakao.com/o/sctcWywe ]    [모집 개요] * 사업명: 블록체인 고급 프로젝트 과정 * 대상인원: 30명 * 모집대상: 블록체인 분야에 관심있는 누구나 / 블록체인 관련 스타트업을 준비하는 사람 * 모집기간: 2022년 08월 17일 ~ 2022년 09월 27일 * 교육기간: 2022년 09월 28일 ~ 2022년 11월 19일 * 교육장소: 경남테크노파크 정보산업진흥본부(봉암동) (실시간 온라인 수강 가능) * 교육내용: 암호기술, 스마트 컨트랙트 및 보안 취약점 사례 분석 등 자세한 내용 첨부파일 참조 * 교육비: 전액 무료 * 수강혜택: 교육비 전액 무료 , 수료증 발급, 블록체인 민간 자격증 응시 기회 제공       [교육 문의 사항] - 블록체인 훈련과정 문의 [ https://open.kakao.com/o/sctcWywe ] - E-MAIL : by.choi@k-abc.com/hi.kang@k-abc.com - 전화번호 : 02 - 6101 - 9956 / 8855       자세한 내용은 블록체인 고급 프로젝트과정 > 블록체인 | AI배울랑교_동남권ICT이노베이션스퀘어 (baeulang.kr) 에서 확인하시기 바랍니다. 문의사항이 있으신 경우 연락주시길 바랍니다. 감사합니다.  

백엔드프론트엔드자바자바스크립트스프링리엑트파이톤클론코딩코딩