본문 바로가기

코딩연습/과제

(16)
백앤드와 프론트엔드의 차이점 프론트엔드 프론트 엔드는 즉 우리가 눈에 보이는 것들(화면)을 프론트 엔드의 영역이라고 합니다. 프론트엔드 파트는 UX designer, Web designer, Front-End developer로 구성됩니다. UX 디자이너는 사용자에게 최상의 편리한 경험을 제공하기 위해 사이트의 구성/기능을 담당합니다. Web 디자이너는 이를 디자인으로 멋지게 뽑아내는 것이고, 프론트엔드 개발자는 뽑아낸 디자인을 웹어플리케이션으로 구현하는 것입니다. 프론트엔드는 HTML, CSS, Javascript 이렇게 3개의 언어가 요구됩니다. HTML로 웹페이지의 틀을 구성하고 CSS로는 HTML로 작업된 홈페이지에 디자인을 담당하며 Javascript를 이용해 정적인 웹페이지를 동적으로 만들어 줍니다. 백엔드 백엔드는 우리..
네이밍 컨벤션 네이밍이란? 컴퓨터 프로그래밍에서 네이밍 컨벤션이란 소스코드와 문서에 있는 변수이름, 타입, 함수 등의 식별자에 사용되는 문자열을 선택하기 위한 여러가지 규칙입니다. 프로그래머들이 네이밍 컨벤션을 사용하는 이유는 다음과 같습니다. 소스코드를 읽고 이해하는데 필요한 노력을 줄이기 코드를 검토할때 이름과 명명 기주에 대한 논쟁보다 더 중요한 주제에 집중하기 코드 품질 검토 도구들이 문법과 스타일 설정 이외의 중요한 사항들을 주로 보고 할 수 있도록 만들기 이름의 중요성 좋은 이름은 가독성을 높입니다. 좋은 이름은 원활한 의사 소통의 필수 요소입니다. 좋은 이름은 대화의 맥락을 쉽게 파악할 수 있게 도와줍니다. 이름은 문제 영역을 대표합니다. 좋은 이름의 특징들은 명확성, 유일성, 일관성,영속성이 있겠습니다...
aws vs azure vs gcp, Cloud 클라우드 컴퓨팅 클라우드컴퓨팅은 인터넷을 통해 가상화된 컴퓨터의 시스템리소스(IT 리소스)를 제공하는 것이다. 예를 들면 데이터베이스 저장공간 어플리케이션 문서작업등을 말한다. 클라우드 서비스란 인터넷 상에 자료를 저장해 두고, 사용자가 필요한 자료나 프로그램을 자신의 컴퓨터에 설치하지 않고도 인터넷 접속을 통해 언제 어디서나 이용할 수 있는 서비스를 말한다. 클라우드 서비스를 통해 인터넷 상에 저장된 자료들은 간단한 조작 및 클릭으로 쉽게 공유하고 전달할 수 있다. 인터넷 상의 서버에 단순히 자료를 저장하는 것뿐만 아니라, 따로 프로그램을 설치하지 않아도 웹에서 제공하는 응용 프로그램의 기능을 이용하여 원하는 작업을 수행할 수 있으며, 여러 사람이 동시에 문서를 공유하면서 작업을 진행할 수도 있다. A..
xml와 json XML(Extensible Markup Language) Xml은 HTML과 매우 비슷한 문자 기반의 마크업이고 사람과 기계가 동시에 읽기 편한 구조로 되어 있다. Xml은 HTML처럼 데이터를 보여주는 목적이 아닌, 데이터를 저장하고 전달할 목적으로만 만들어졌다. 또한, Xml 태그는 HTML 태그처럼 미리 정의되어 있지 않고, 사용자가 직접 정의할 수 있다. JSON(JavaScript Object Notation) JSON은 경량의 DATA 교환 형식이다. 이형식은 사람이 읽고 쓰기에 용이하며 기계가 분석하고 생성함에도 용이하다. JSON은 완벽하게 언어로 부터 독립적이지만 C-family 언어 - C, C++, C#, Java, JavaScript, Perl, Python 그외 다수 - 의 프로그..
비밀키 VS 공개키 비밀키(대칭키) 대칭기 암호방식으로 암호화한 정보를 누군가에게 보낼때 암호키도 함께 보내야하는데 암호키 자체는 암호화가 되지않은 평문으로 분실하거나 타인에게 노출되면 보안에 매우 취약해진다. 키 전달 및 관리에 어려움이 있지만 대칭키 암호는 암호화 연산속도가 빠르기 때문에 효율적인 암호 시스템을 구축할 수 있다는 장점이 있다. 암호화 방식 블록암호 블록암호는 평문을 일정한 크기의 블록으로 잘라낸후 암호화 알고리즘을 적용하여 암호화한다. 사용하는 암호 알고리즘=DES,3DES,AES등이 있다. 스트림 암호 스트림암호는 데이터 흐름을 순차적으로 처리해가는 암호 알고리즘의 총칭이다. 암호화 방식은 평문의 키 스트림을 XOR하여 생성한다. 스트림 암호는 블록 암호화 방식보다 매우 빠르지만 암호화 강도는 약하다 ..
하드웨어, 소프트웨어, 미들웨어 하드웨어(Hardware)의 뜻 컴퓨터나 컴퓨터에 붙어 있는 주변 장치들을 "하드웨어"라고 합니다. 즉, 하드웨어는 컴퓨터의 육체이고, 하나의 "기계"입니다. 컴퓨터 본체, CPU, 하드 디스크, 마우스, 모니터, 비디오 카드, 사운드 카드 등 손으로 만질 수 있는 모든 것이 다 하드웨어입니다. 하드웨어는 "물건"이기 때문에, 인터넷으로 다운로드받을 수가 없습니다. 컴퓨터 가게에 가서 구입해야 합니다. 소프트웨어(Software)의 의미 쉽게 말해서 소프트웨어는 "프로그램"입니다. 컴퓨터로 게임을 한다고 할 때, 컴퓨터 자체에는 어떤 게임도 들어 있지 않습니다. 컴퓨터의 하드 디스크에, 게임 프로그램을 설치해 주어야 컴퓨터로 게임을 할 수가 있게 됩니다. 소프트웨어는 아무리 복잡한 소프트웨어라도 결국 0..
소프트웨어 개발 방법론 소프트웨어 개발 방법론 이란 - 소프트웨어 개발에 필요한 반복적인 과정(절차, 방법, 산출물, 기법, 도구) 즉, 수많은 소프트에어를 개발하면서 겪었던 과정들을 통해 어떤 상황과 경우에서, 어떠한 방법으로 소프트웨어를 개발하는 것이 좋을지를 사례를 통해 정리/분석하여 체계적으로 정리한 것이다. 1.구조 방법론 구조적 방법론은 절차 중심의 소프트웨어 개발 방법론으로 코드를 제한된 구조에서 생성하여 순차적으로 실행 시키는 특징이 있다. 알고리즘 단위는 순차 선택 반복 이런 구조로 코드를 표현하면서 프로세스 단위로 문제를 해결하고, 코드 보안을 유지하며 유지보수를 용이하게 한다. 2. 정보 공학적 방법론 정보공학 방법론은 설계와 구현 단게에서 데이터를 우선적으로 개발하고 문제 영역을 세분화하고 Top-Down..
API, RESTful API란? API는 애플리케이션 소프트웨어를 구축하고 통합하기위한 정의 및 프로토콜 세트로, 애플리케이션 프로그래밍 인터페이스를(Application Programming Interface) 말한다. API의 장점 구현 방식을 알지 못해도 제품또는 서비스가 서로 커뮤니케이션할 수 있다. 시간과 비용을 절약할 수 있다. 유연성을 제공하고 설계, 관리, 사용방법을 간소화 하며 혁신의 기회를 제공한다 REST란? REST는 분산 시스템 설계를 위한 아키텍쳐 스타일이다. 아키텍쳐 스타일이라는건 쉽게 말하면 제약조건의 집합이라고 보면된다 RESTful은 무엇인가? RESTful은 위의 제약조건의 집합(아키텍쳐 스타일, 아키텍쳐 원칙)을 모두 만족하는 것을 의미한다. REST라는 아키텍쳐 스타일이 있는거고 REST..