본문 바로가기

PM으로 성장하기/개발 공부30

[컴과] Linux(리눅스): 소개, CLI, 셸, 명령어, 디렉토리와 파일, 운영체제, 사용자관리, vi, 파일시스템, 프로세스 관리, 소프트웨어 관리, 네트워크 관리, 원격제어, 웹서버 리눅스 소개 리눅스는 유닉스 운영체제 중 하나이다. 유닉스는 1970년대 초반에 개발된 시분할처리 시스템용 운영체제이다. 시분할처리란, 여러 명의 사용자가 사용하는 시스템에서 컴퓨터가 사용자들의 프로그램을 번갈아가며 처리해주어 각 사용자에게 독립된 컴퓨터를 사용하게끔 해준다. 리눅스는 1991년 리눅스 커널을 발표하여 알려지게 된다. 여기서 커널이란, 하드웨어를 제어하고 응용 프로그램과 상호작용하는 운영체제의 핵심부를 말한다. 리눅스는 소스 코드가 공개된 오픈 소스 소프트웨어이며, 수많은 사람들이 오픈 소스 프로젝트에 참여하고 있다. 유명 IT기업이나 도메인에서도 대다수 리눅스를 사용하며, 안드로이드, 웹서버, 클라우드, 모바일기기, 임베디드 기기 등에서도 사용되고 있다. 리눅스는 시분할 방식을 지원하고.. 2022. 11. 28.
[컴과] Python(파이썬): 개요, 구성요소, 객체와 클래스 Python 언어 소개 파이썬은 1991년 출시된 인터프리터형 프로그래밍 언어이다. 객체 지향 프로그래밍, 명령형 프로그래밍, 함수형 프로그래밍, 절차적 프로그래밍 패러다임을 지원하는 언어로, 최근 입문용 프로그래밍 언어로 인기가 매우 높다. 하지만 깊이 팔 수록 어려운 언어이며, 동적 언어에 익숙해져야한다거나 C와 관련된 프로그래밍 언어들과의 이질적인 문법으로 인해 입문용으로는 오히려 안좋을 수도 있다는 평이 있다. Python의 문법은 간단하고 직관적인 느낌이 든다. 다만 독특한 점은 다른 언어의 경우 { }를 통해 블록을 만들지만, 파이썬은 들여쓰기를 통해 블록을 구성한다. 그밖에 나무위키에서의 장점과 단점을 나열해보자면, C++나 Java로 만들려면 막막했던 코드들을 파이썬으로는 빠르게 만들 수 .. 2022. 11. 22.
[컴과] C++ 언어: 개요, 구성요소, 상속, 템플릿, 예외처리 C++ 언어 소개 1. C의 확장, 그러나 별개의 언어 C++는 C언어를 확장하여 만든 언어로, 객체지향 개념(클래스)과 일반화 프로그래밍(템플릿)을 추가로 지원한다. 나무위키에 따르면, C++의 객체지향은 다른 객체지향과는 성격이 다르다고 한다. C++에서는 많은 것을 컴파일 타임에 처리하고 메모리를 프로그래머가 직접 관리하는 반면, 다른 언어에서는 많은 부분을 런타임에 처리하고 메모리를 자동으로 관리한다고 한다. 또한 C++에서는 일반화 프로그래밍의 개념으로 템플릿이라는 개념을 사용한다. 일반화 프로그래밍이란 공통된 개념을 묶어 일반화함으로써, 여러 데이터 형식에 맞추어 동작할 수 있도록 한다. 일반화 프로그래밍으로 코드의 생산성을 높일 수 있다. 2. 프로그램의 작성 및 빌드 방식 C++ 프로그램을.. 2022. 11. 20.
[컴과] 프로그래밍 언어: 정의, 동작원리, 언어 패러다임, 종류, 구성요소 프로그래밍 언어란 프로그램은 컴퓨터의 명령어를 나열한 것이며, 프로그래밍 언어는 프로그램을 만드는 언어이다. 컴퓨터가 특정한 일을 수행할 수 있도록 컴퓨터와 소통하는 언어이다. 처음에는 컴퓨터가 이해할 수 있는 기계어로 시작되었지만, 점차 사용자가 쉽게 작성할 수 있도록 사용자 친화적인 언어가 탄생하게 되었다. 이러한 배경을 바탕으로 다시 정의하면, 프로그래밍 언어는 컴퓨터가 수행할 수 있고 동시에 사람이 읽을 수 있는 계산이라 할 수 있다. 프로그래밍 언어의 동작 원리 컴퓨터에게 일을 시키려면, 컴퓨터가 이해할 수 있는 언어인 기계어로 명령해야 한다. 기계어는 이진수 형태로 되어있는데, 이진수란 0과 1로 이루어진 것이다. 사람이 직접 0과 1로만 프로그램을 만들 수 없어, 어셈블리어가 등장하게 되었다.. 2022. 11. 12.
[컴과] 클라우드 컴퓨팅: 정의, 서비스모델, 배포모델, 클라우드 컴퓨팅 기술 클라우드 컴퓨팅 정의 클라우드 컴퓨팅이란 서버, 저장장치, 데이터베이스, 네트워크 등을 렌탈 서비스의 형태로 이용하는 것이다. 기존에는 물리적인 시스템을 도입했다면, 클라우드 컴퓨팅은 가상의 시스템을 도입하는 것이다. 클릭 몇 번 만으로 컴퓨팅 자원을 배치할 수 있게 된 것이다. 클라우드 컴퓨팅을 사용하는 이유 클라우드 컴퓨팅은 탄력적으로 사용이 가능하다. 필요할 때 사용하고 필요 없을 때는 사용하지 않으면 되므로, 서비스 확장에 맞추어 인프라를 구축해나가면 된다. 초기 투자 비용을 절감할 수 있는 것도 장점이다. 또한 기존에는 기계를 사는 데 수 개월이 걸리기도 하였지만, 클라우드 컴퓨팅 환경에서는 몇 번의 클릭만으로 빠르게 시스템을 구축할 수 있다. 무엇보다도 가용성(중단 없이 작동할 확률)과 신뢰성.. 2022. 11. 8.
[컴과] JSP 프로그래밍: 개요, 동작원리, 구성요소, 쿠키, 세션, 자바빈, 데이터베이스 연결, DAO/DTO 웹의 구성 요소 웹은 위 그림과 같이 네 가지 요소로 구성된다. 1. 웹 브라우저(클라이언트)는 서버에 요청을 보내고 응답 결과를 출력한다. 2. 웹 서버는 클라이언트의 요청을 처리하고 결과를 전달한다. 클라이언트가 요청한 웹 문서를 찾아서 전달하는 역할 외에도 인증 처리, 문제가 있으면 정해진 코드로 응답 등도 수행한다. 3. 웹 애플리케이션 서버(WAS)는 서버의 성능 개선을 위해 웹서버의 기능을 분리한 것으로, 동적 페이지를 만들거나 비즈니스 로직(결과 만들기)을 처리한다. (엄밀히는 비즈니스 로직을 처리하는 것이 웹 컨테이너이며, 웹 컨테이너에 보안처리, 장애처리 등이 추가되면 웹 애플리케이션이라고 한다) 4. 데이터베이스는 웹 서비스 수행에 필요한 데이터를 저장하고 제공한다. Apache Tom.. 2022. 11. 3.
728x90