| 프로그래밍
프로그래밍이란, 사용자의 요구사항에 따라 프로그램 언어의 명령어 혹은 문법을 사용해 코드를 작성하는 일을 말한다.
- 웹 or 앱 서비스 모두 아래와 같이 런칭까지 일련의 과정을 거치는데
[ 요구사항을 분석 -> 설계 -> (디자인 및 퍼블리싱) -> 개발 -> 테스트 -> 배포(런칭) ]
회사마다 방식은 조금씩 다르겠지만 이 과정을 원활히 수행하기 위해 프론트와 백엔드로 공수를 나누는 경향이 있다.
1. 프론트엔드와 백엔드
프론트엔드 | 백엔드 | |
내용 | 웹 브라우저에 보이는 UI 및 화면에 대한 작업 | 네트워크를 통해 웹서버에 넘긴 요청을 처리하는 작업 * url 처리 및 데이터 처리 |
사용 언어 | html, css, script(javascript) | php, c#, java, python, javascript, ruby...... |
라이브러리 | jQuery | c# : asp/asp.net java : jsp ...... |
프레임워크 | Angular, React, Vue.js | php : Laravel java : Spring python : Django javascript : Angular ...... |
roadmap | 바로가기 | 바로가기 |
1-1. 자바 스크립트 Framework
Vue.js | MVVM 패턴을 기반으로 하며 러닝커브가 가장 적음 | Angular개발자에 의해 개발(2014) |
React | 가장 많이 사용되는 프레임워크 | 페이스북이 공개(2013) |
Angular | MVC 모델을 기반으로 하는 프레임워크 |
구글에서 시작 |
1-2. 정적이다 vs 동적이다.
정적이다 | 변화의 가능성이 없다 |
동적이다 | 변화의 가능성이 있다 |
1-3. 백엔드를 통한 데이터의 영구적인 저장
- CS개념을 정리한 포스팅에서도 다루었지만, 데이터를 저장하는 메모리는 주기억장치와 보조기억장치로 나뉠수 있다.
- CPU에서 동적으로 처리하는 데이터들은 주기억장치에 들어가며,
- 데이터를 영구적으로 저장하기 위해서는 보조기억장치(SSD나 HDD)에 저장을 해야한다.
(OS상으로는 내컴퓨터의 c드라이브나 d드라이브가 거기에 해당)
- 영구적인 데이터는 파일 상태로 보조기억장치에 저장이 되는데, 각 운영체제마다 파일 저장 시스템은 다르지만 결국 중요한 건 "파일 형태"로 저장된다는 것이다.
- 이 때, 사용자 한 명이서 파일의 데이터를 조회하고 수정하거나 한다면 상관이 없겠지만, 다수의 사용자가 동시다발적으로 데이터를 조회하거나 수정/삭제할 때는 문제가 발생할 수 있다.
- 그래서 사용하는 것이 DBMS이다.
>> 위 1~3을 바탕으로 정리된 백엔드 프로그래밍은 아래와 같다.
백엔드 프로그래밍이란,
백엔드 프로그래밍 언어를 사용하여, 영구적인 저장공간(데이터베이스)에
주어진 조건 및 로직에 맞게 데이터를 CRUD하는 일을 말한다.
| 라이브러리 / 프레임워크 / 아키텍처 / 플랫폼
- 위 개념을 말로 한 번에 설명하기 어려워 이번 기회에 자료를 찾아서 정리했다. (출처는 최하단에 적혀있다)
- 출처에서 제공한 비유적인 표현에 따르면,
라이브러리는 차의 부품이며, 프레임워크는 자동차 그 자체이고,
아키텍처는 자동차 설계도이며, 플랫폼은 자동차의 주행 환경이다.
- 다시 풀이하면
라이브러리는 편리한 기능을 제공하는 녀석이고,
프레임워크는 아키텍쳐(설계도안)를 통해 만든 프로그래밍 구조를 말하며
플랫폼은 프로그램와 연관된 모든 환경을 뜻한다고 보면 될 것 같다.
구분 | 내용 | 예시 |
라이브러리 | 프로그램 제작 시 필요한 기능들로, 함수나 객체를 말한다. | jQuery - 자바스크립트를 쉽게 쓸 수 있게 만든 라이브러리 GUI - 사용자가 쉽게 컴퓨터와 소통할 수 있게 제공하는 그래픽 컴포넌트 OOP - 자바에서 제공하는 클래스 라이브러리 |
프레임워크 | 프로그램 기본 구조(뼈대) | Spring, Django, Angular, Laravel... |
아키텍처 | 프로그램 주요 구조 설계 | Azure 솔루션 아키텍처 |
플랫폼 | 프로그램 실행 환경 | 디바이스 기기, OS환경, Java의 JRE |
[ 참고 및 출처 ]
- 부트 캠프 강의를 듣고 정리한 내용입니다.
- 앱 서비스 런칭을 위한 프로세스 : https://aragagi.tistory.com/10
- vue.js https://wikidocs.net/17701
- 라이브러리, 프레임워크, 아키텍처, 플랫폼 https://blog.gaerae.com/2016/11/what-is-library-and-framework-and-architecture-and-platform.html
'Java, Spring > 웹프로그래밍 시작하기' 카테고리의 다른 글
[자바 프로그래밍] DB연결을 위해 필요한 것 (0) | 2022.08.27 |
---|---|
[자바 프로그래밍] 회원정보와 회원가입처리 클래스 (0) | 2022.08.27 |
[자바 프로그래밍] JVM과 자바 개발 환경 구축 (0) | 2022.08.26 |
웹 프로그래밍 기초 개념 - 웹, 웹표준/웹접근성, 디바이스 (0) | 2022.08.08 |
[WAS] WAS란? 아파치 톰캣 설치하기 (0) | 2022.04.26 |