[CS] 코딩 용어 사전

이유은·2023년 10월 22일

[CS]

목록 보기
1/11
post-thumbnail

📚 내 맘대로 정리하는 개발자 용어

... 추가예정

1. 소프트웨어 개발 / 프로그래밍 / 코딩의 차이

소프트웨어(Software Development) 개발이란?

  • 코딩과 프로그래밍을 베이스로, 실제 프로젝트 진행시 발생할 수 있는 다양한 이슈를 처리할 수 있는 능력
  • 시장의 목표나 사용자의 요구를 소프트웨어 제품으로 만드는 과정!

프로그래밍(Programming)이란?

  • 생각한바를 공학적인 요소와 함께 사용하여 효율적인 코드로 작성할 수 있는 능력
  • 프로그램의 작성방법의 결정, 코딩, 에러 수정 등 작업 모두를 가리킴

코딩(Coding)이란?

  • 생각한 바를 코드로 옮길 수 있는 능력!(프로그램의 코드를 짜는 것)
  • 주어진 명령을 컴퓨터가 이해할 수 있는 언어로 입력하는 것
  • 어떤사항을 기호화 하는것, 일정 프로그램 언어를 써서 프로그램을 작성하는 것

셋의 차이점!

  • 단어가 의미하는 영역!
  • 코딩 -> 프로그래밍 -> 소프트웨어 개발 순으로 영역이 넓어짐
참고 : https://cafe.naver.com/winspec/557178?art=ZXh0ZXJuYWwtc2VydmljZS1uYXZlci1zZWFyY2gtY2FmZS1wcg.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYWZlVHlwZSI6IkNBRkVfVVJMIiwiY2FmZVVybCI6IndpbnNwZWMiLCJhcnRpY2xlSWQiOjU1NzE3OCwiaXNzdWVkQXQiOjE2OTc5MDQxNzY2MzB9.h7nu2JrhOiYRAh7z-G6JwBWZYsIR-TwQZp0k0iEqbks


2. 기초 코딩 용어

  • 코드 : 프로그램을 만들기 위한 컴퓨터용 언어
    ◦ 컴퓨터용 언어는 C언어, Java, Python을 포함한 여러가지가 있다.
    C언어 는 하드웨어, 인공지능, 게임분야
    자바 는 웹, 모바일 앱 분야
    파이썬 은 인공지능, 빅데이터 분야 등에서 주로 사용됨
  • 알고리즘 : 주어진 문제를 논리적으로 해결하기 위해 필요한 절차, 방법, 명령어들을 모아 놓은 것
    ◦ 어떻게 구성하느냐에 따라 같은 문제를 풀더라도 오래걸릴 수도, 오류가생길 수도 있음! 효율적이고, 명확하게 만드는 것이 중요하다.

  • 라이브러리 : 컴퓨터 프로그램에서 자주 사용되는 프로그램들을 모아 놓은 것
    ◦ 대표적으로 자바스크립트의 JQuery가 있음
    ◦ 반복적 코드작성을 줄여 개발시간을 단축하기 위해 클래스나 함수들로 만들어두어 필요할때마다 원하는 기능을 가져다가 호출하여 사용 가능!

  • 프레임워크 : 개발을 수월하게 하기위해 소프트웨어의 구체적 기능들에 해당하는 부분의 설계와 구현을 재사용 가능하도록 협업화된 형태로 제공하는 소프트웨어 환경
    ◦ 자바스크립트의 리액트, 자바의 스프링등이 있다.

  • 컴파일 : 고급언어로 작성된 프로그램을 기계가 이해할 수 있도록 번역하는 것
    ◦ 고급언어 - 인간이 구분하기 쉬운 언어
    ◦ 기계어 - 컴퓨터가 읽을 수 있는 2진수로 이루어진 언어
    - 컴퓨터의 명령을 처리하는 CPU는 기계어를 사용함/ 0,1밖에 못읽음!

  • 디버그 : 개발 마지막 단계에서, 프로그램의 오류를 발견하고 그 원인을 밝히는 작업
    ◦ 오류 수정 작업은 '디버깅'
    ◦ 오류 수정 소프트웨어는 '디버거'
참고: https://blog.naver.com/sw_maestro/222833542905

3. 뜻을 정확히 알지 못하고 쓰던 친구들

  • 리눅스 : 오픈소스 운영체제(OS),

  • 운영체제 : Operating System / CPU, 메모리, 스토리지처럼 시스템의 하드웨어와 리소스를 직접 관리하는 소프트웨어.
    ◦ 컴퓨터 시스템의 자원들을 효율적으로 관리하며 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임
    ◦ 운영체제의 종류에는 windows98, windows10, unix, linux, ms-dos등이 있다

  • 마크다운 : 웹상에서 글을 쓰는 모든 사람들을 위한 글쓰기 도구(서식,포맷,양식)

    종류예시
    제목 : # , =====
    인용 : >
    강조 : , _
    링크 : [텍스트](주소 "설명 생략가능")
    이미지 : ![텍스트](이미지주소 "설명 생략가능")
    리스트 : 1 ,
    , - , +
    코드표시 : 코드 , 한줄 띄우고 스페이스 4칸 , 코드
    줄바꿈 : 엔터 2번 , 강제 줄바꿈은 문장끝에 스페이스바 2칸
    가로선 : ----- , * , +++++

  • ERP(WinForm)

  • .net

  • MS-SQL, MariaDB

  • 프로시져

  • IIS

  • 인터프린터 :

  • jdk :

  • jre :

  • jvm :

  • sql :

  • servlet :

  • MVC :

  • Jquery :

  • api :

  • 객체 : 변수, 자료구조, 함수 등/ 구현할 대상이고 속성과 기능을 가지는 프로그램 단위

  • 객체지향 프로그래밍 (oop) : 모든 데이터를 객체로 취급하고, 이러한 객체가 바로 프로그래밍의 중심
    ◦ 장점 : 코드 재사용 용이, 유지보수 쉬움
    ◦ 단점 :  객체가 많으면 용량이 커질 수 있어 속도가 느림

  • 클래스: 객체를 정의하는 틀 또는 설계도를 의미함 / 객체에 속성과 기능을 넣어줄 설계도

  • 인스턴스 : 설계도(클래스)를 바탕으로 (구현된)메모리에 할당된 객체를 의미함 

  • servlet : 클라이언트가 요청을 받고 응답을 해주는(전송해주는 역할을 하는) 프로그래밍기술/ 웹페이지를 동적으로 생성하기 위해 서버측 프로그램

  • 웹서버 :  아파치/ 클라이언트로부터 요청받아 서버에 저장된 리소스를 클라이언트에게 전달한다. / 정적타입의 데이터을 렌더링함

  • 웹어플리케이션 서버 : (Apache Tomcat) WAS라고 부르며 db와 직접 커넥션을해 동적으로 값을 웹서버에게 전달함 / 아파치와 톰캣이 합쳐진 것

  • tomcat : 웹서버와 연동하여 자바 실행할 수 있는 환경을 제공함 / 로직을 처리하는 동적데이터 처리가능함

  • jsp : java server page약자, html 코드에 java 코드를 넣어 동적웹페이지를 생성하는 웹어플리케이션 도구이다.

  • spring : java 기술들을 더 쉽게 사용할 수 있게 해주는 프레임워크

  • 트랜젝션 : 데이터베이스의 상태를 변경시키기 위해 수행하는 작업 단위. 예) select, update등 ROLLBACK, COMMIT 

  • json :  data 교환 형식, 키와 값의 쌍으로 이루어져있는 구조

  • ajax : 서버에 데이터를 비동기 방식으로 통신하는 것 , 페이지 새로고침 하지 않고 데이터를 불러오는 방식
    mvc패턴 : MODEL(정보, 데이터/ 데이터 처리), VIEW(정보를 화면으로 보여주는 역할), CONTROLLER(데이터를 model에 받아서 view에 반영함, 이벤트들을 처리하는 부분)의 약자

  • 모델1방식 : controller영역에 view영역을 같이 구현하는 방식

  • nginx : 비동기 방식의 웹서버 프로그램

  • node.js : 자바스크립트를 서버에서도 사용할 수 있도록 만든 프로그램

  • rest api : 자원의 이름으로 구분하여 정보를 주고받는것. 정보를 주고받는 규약

  • 오버로딩  : 기존에 없던 새로운 매소드를 정의하는 것 / 같은 이름의 함수(메소드)를 여러개 정의하고 변수의 타입과 개수를 다르게 하는 것  

  • 오버라이드 = 오버라이딩: 부모에게 상속받은 메소드의 내용을 재정의하는 것/ 매개변수를 재정의하는 것

  • odbc : 어떠한 응용프로그램을 사용하는지 관계없이 데이터베이스를 접근하기 위한 표준 방법

  • jdbc(api) : 자바 프로그램이 데이터베이스와 연결되어 데이터를 주고 받을 수 있게 해주는 인터페이스

  • mybatis(프레임워크) : 자바객체와 sql문 사이를 자동 매핑해주는 프레임워크 / jdbc사용을 편하게 만들어주는 것

  • JDK : 자바로 개발할 수 있도록 여러기능을 제공하는 패키지(키트)

  • 프로토콜 : 컴퓨터 사이에서 데이터를 주고받는 통신 규약

  • TCP/IP : 송신자가 수신자에게 ip주소를 사용하여 데이터를 전달하고 그 데이터가 제대로 갔는지에 대해 말하는 것 / 통신규약

  • TCP : 송수신간의 데이터를 교환하게 해주는 네트워크 프로토콜이다.

  • IP : 데이터를 전송하기 위해 지켜야 할 규약

  • spa : 랜더링 할때 서버에게 넘기지 않고 브라우저에 처리하는 방식으로 필요한 데이터만 받아 페이지를 갱신함

  • 쓰레드 : 프로세스내에서 실행되는 흐름의 단위 

  • 인터페이스 : 서로 두개의 장치나 소프트 웨어 사이의 정보나 신호를 주고 받을때 조건, 규약을 말함

  • 자바 인터페이스 : 동일한 목적으로 동일한 기능을 수행하게 하는 역할이다. 상수와 추상메소드만 존재 구현부가 없음
    배열

  • 스택 : 데이터를 한쪽끝에서만 넣고 빼는 구조이다. 나중에 들어온 것이 먼저 추출됨/push 넣는다. pop꺼낸다.

  • : 끝에 한쪽은 삽입만하고 다른쪽은 삭제만 한다. 먼저 들어온 것이 먼저꺼내짐

  • DML은 데이터 조작어 select update delete insert

  • join 종류와 정의 : inner join(양쪽 테이블에서 공통부분 데이터 추출), outer join

  • 머신러닝 : 인공지능을 만들기 위해 기계에 학습을 시키는 방법

  • 딥러닝 : 인공신경망 방법을 이용한 알고리즘을 통해 데이터를 학습하는 기술

  • AI(인공지능) : 사람의 능력을 컴퓨터 프로그램으로 구현하는 기술


4. 공부하면서 궁금했던 내용

  • 자바, 이클립스 등 버전이 다른 이유는? 또 버전이 안맞으면 실행되지 않는 프로그램들이 있는 이유는?

  • 깃과 깃허브의 차이점

  • 쇼핑몰 이미지를 넣기위해 서블릿 홈페이지에 들어가는 이유는?

profile
우당탕코딩

0개의 댓글