컴퓨터 개론 20

Codeit_컴퓨터개론을 완강하고 ;)

하... 미친듯이 이 수업 안듣고 무작정 HTML과 CSS만 공부했던 내 자신... 이 수업을 들었어야 했었다 진심... 비전공자면서 이정도 지식을 안갖추고 시작 하려했던건 내 자만이었던것 ㅠㅠ 늦은 나이에 시작하는 프론트개발자의 꿈에 한발 더 다가간것 같은 느낌적인 느낌 나한테 수료증까지 주는 고마운 코드잇♥ 오래 같이 가자 우리 ;)

컴퓨터 개론 2021.06.28

Codeit_네이티브 애플리케이션과 웹 애플리케이션

네이티브 애플리케이션과 웹 애플리케이션 플랫폼의 파편화 애플리케이션 개발자들이 겪는 고충이 있다. 플랫폼이란 프로그래밍에서는 프로그램이 실행되는 하드웨어, 소프트웨어 환경을 말한다. 예를 들어, 애플리케이션은 운영 체제가 제공해 주는 환경 그 위에서 실행된다. 그렇다면 애플리케이션의 플랫폼은 운영 체제인 것이다. 그리고 운영 체제도 소프트웨어 인데 이 운영 체제는 CPU 같은 여러 하드웨어를 사용해서 그 위에서 동작한다. 그렇다면 운영 체제의 플랫폼은 하드 웨어인 것이다. 프로그램을 만들 때는 항상 플랫폼을 고려해서 맞춤형으로 딱 맞게 만들어줘야 한다. 플랫폼이 맞지 않으면 아예 실행되지 않는다. 이렇게 프로그램을 만들 때든 실행할 때든 플랫폼의 영향을 받게 된다. 이것을 '플랫폼 의존성' 이라고 한다...

컴퓨터 개론 2021.06.23

Codeit_운영 체제

보이진 않지만 거대한 프로그램 운영 체제 애플리케이션을 도와주는 프로그램, 운영 체제(Operating System) 애플리케이션 뒤에서 도움을 주는 눈에 보이지 않는 프로그램이 있는데, 이게 바로 운영체제 OS 이다. 사실 우리는 운영 체제를 매일 쓰고 있다. 모든 컴퓨터나 핸드폰에 설치되어 있기도 하고, 이런 운영 체제 도움을 받아야지만 컴퓨터의 여러 장치들과 함께 애플리케이션이 잘 동작할 수 있다. 컴퓨터나 휴대폰의 전원을 켜면 자동으로 실행되기 때문에 우리가 직접 사용한다는 느낌이 덜 들긴 하지만 컴퓨터나 휴대폰은 매일 사용한다면 운영 체제를 매일 사용하고 있다는 것이다. 운영 체제는 어떤 역할을 하기에 모든 컴퓨터에 운영 체제가 필요한 것일까? 컴퓨터를 켜자마자 컴퓨터는 왜 운영 체제 부터 실행..

컴퓨터 개론 2021.06.23

Codeit_컴파일러와 인터프리터

컴파일러와 인터프리터 다양한 애플리케이션 얼마나 다양한 프로그램이 존재하고 있는지 알아보자 가장 먼저 살펴볼 프로그램은 우리가 가장 자주 사용하고 눈에 잘 보이는 애플리케이션 이다. 보통 앱이나 어플이라고 줄여서 우리가 스마트폰에 앱이나 어플을 설치해서 사용한다고 말한다. 애플리케이션의 정의를 내려보자면 프로그램을 만드는 사람이 아닌 실제 사용자 즉, 소비자가 직접 사용하는 프로그램을 애플리케이션이라고 할 수 있다. 제일 마지막 단계라는 관점에서 이런 실제 사용자 혹은 소비자를 엔드유저(End user) 라고도 한다. 시대에 따라서 사용되는 애플리케이션도 계속 변화한다. 요즘은 스마트폰이 컴퓨터와 상당히 유사해지고 있기 때문에 겹치는 부분이 많다. 우리가 놓치기 쉬운 애플리케이션들도 있다. 컴퓨터나 스마..

컴퓨터 개론 2021.06.21

Codeit_트렌드를 읽는 능력

트렌드를 읽는 능력 프로그래밍은 선택의 연속 프로그래밍에서는 돌이킬 수 없는 선택들이 많이 있다. 문제는 이런 선택이 자주 많이 발생한다는 것이다. 어떤 프레임워크, 라이브러리를 사용할지 뿐만 아니라 어떤 언어를 쓸지 그 안에서도 어떤 디자인 패턴을 사용할지 어떤 스타일 가이드를 사용할지 선택을 해야 하는 순간들이 많이 찾아온다. 따라서 프로그래밍 세계의 트렌드를 읽어내야 효율적으로 공부하고 유리한 고지를 점령할 수 있다. 트렌드를 읽는 방법1 : 활발한 기술 프로그래밍은 선순환이 일어나는데 좋은 언어, 좋은 프레임워크, 좋은 기술은 사람들이 많이 사용한다. 그리고 사람들이 많이 쓰면 커뮤니티, 좋은 자료, 좋은 문서들이 많이 만들어 진다. 그러면 그런 장점을 통해 더 많은 사람들이 기술을 사용한다. 그..

컴퓨터 개론 2021.06.21

Codeit_개발자의 필수 프로그램 IDE

개발자의 필수 프로그램 IDE IDE(Integrated Development Environment, 통합 개발 환경) 개발자들이 코딩할 때 도움이 되는 기능을 모아둔 프로그램을 말한다. IDE는 내가 필요한 정보를 검색하지 않고도 편하게 할 수 있도록 잘 구성이 되어 있다. IDE는 코드를 효율적으로 작성할 수 있도록 많은 기능들이 있다. 자신에게 맞는 IDE를 고르고 거기에 익숙해지면 훨씬 더 빠르게 프로그램을 만들 수 있다. IDE 외에도 개발자들이 많이 사용하는 프로그램들이 많다. 프로젝트 관리 툴인 Jira, Trello etc.. 메신저인 Slack, Skype etc... StackShare에 가면, 다양한 툴을 찾아볼 수 있다.

컴퓨터 개론 2021.06.21

Codeit_버전 관리

버전 관리 프로그래밍을 하다 보면 코드 수정이 잦다. 게다가 여러 사람이 함께 작업을 하다 보니 수정 이력이나 버전 관리를 하는 게 매우 어렵다. 그래서 여러가지 문제가 발생한다. 여러가지 문제를 해결하기 위해서 버전 관리 라는것을 하게 된다. 버전 관리 git이 바로 버전 관리를 위한 소프트웨어 이다. gitHub는 git을 이용해 코드를 저장하는 온라인 저장 공간이다. 버전 관리 시스템으로 svn 이라는 것도 있었지만 요즘은 거의 git을 활용한다. 프로그래밍에서는 전체 코드를 여러 버전으로 저장하고 있지 않는다. 똑같은 부분들이 너무 많아져서 용량이 너무 커지고 코드의 수정 내용이나, 순서도 확인하기 어렵기 때문이다. git에서는 하나의 코드가 있고 여기서 뭔가 바뀌게 되면 이걸 바꾼 새로운 전체 ..

컴퓨터 개론 2021.06.21

Codeit_테스트 프로세스

테스트 프로세스 프로그램에서 뭔가 잘못 실행되는 동작 의도하지 않은 에러를 버그라고 한다. 소프트웨어에 버그가 안생기려면 테스트를 미리 해봐야 한다. 기본적인 테스트는 보통 개발자가 직접 개발하면서 함께 진행한다. 그리고 테스트는 똑같은 작업을 반복하는 경우가 많다 보니 요즘에는 자동화 테스트 도구를 활용하기도 하고 테스트 코드를 개발해서 직접 자동화하기도 한다. 그렇다면 현업에서 테스트 과정은 어떤 방식으로 진행될까? 누군가 버그를 발견한다면 그것을 담당 개발자에게 알려줘서 고치게 한다. 소프트웨어를 개발하다 보면 버그가 많이 자주 발생하기 때문에 관리하기 위한 프로세스가 필요하다. 버그는 얼마나 시급한 버그 인지에 따라 처리 방식이 다르고 개발자 마다 담당 업무가 있기 때문에 버그를 고칠 수 있는 사..

컴퓨터 개론 2021.06.21

Codeit_프로세스 관리

프로세스 관리 개발자의 코드가 실제로 출시되기까지는 여러 단계를 거치게 된다. (기획 → 개발 → 테스트 → 배포 → 유지/보수) 하나의 소프트웨어를 출시하기까지 다양한 사람들이 함께 일하게 된다. 여러 사람이 모여서 일을 하다 보니 의사소통에 문제가 생길 때도 있다. 그래서 사람들은 어떻게 일하는 게 가장 좋을지 고민을 하게 된다. 이런 협업 방식으로 가장 유명한 건 폭포수(Waterfall) 방식과 애자일(Agile) 방식이다. 폭포수(Waterfall) 방식 예전부터 사용되는 고전적인 방식이다. 각 단계를 완료하고 다음 단계로 넘어가는 것이다. 그래서 이해하기도 쉽고 관리하기도 쉽다. 어떻게 보면 굉장히 단순하고 직관적이다. 이 방식이 갖는 문제점은 만들고자 하는 게 복잡해질 경우 각 단계를 한 번..

컴퓨터 개론 2021.06.15

Codeit_소프트웨어 공학

소프트웨어 공학 소프트웨어 공학이라는 단어의 의미를 풀어보자면 소프트웨어를 활용한 공학 즉 소프트웨어로 새로운 제품, 서비스, 도구 등을 만드는 것에 관한 학문이라고 보면 된다. 그러니까 어떤 제품이나 서비스를 기획부터 제작하고, 테스트하고, 출시하고, 사후관리까지 하는 모든 프로세스를 포함한다. 소프트웨어 공학을 활용한 프로세스 기획 단계 : 어떤 걸 만들지 정하는 단계이며, 이때는 어떻게 하면 기획자가 원하는 걸 정확하게 개발자에게 전달할 수 있을까? 이런 고민을 많이 한다. 개발 단계 : 어떤 걸 만들지 기획 단계에서 정했을 것이다. 그걸 만드는 단계가 개발 단계 이다. 어떻게 하면 정해진 기획을 코딩으로 정확히 구현 할 수 있을까? 어떻게 하면 큰 규모의 프로그램을 여러 사람이 분업해서 효율적으로..

컴퓨터 개론 2021.06.14