분류 전체보기 121

프로토콜(Protocol)의 개념, 요소, 특징, 계층 구성

프로토콜(Protocol)이란? 프로토콜은 서로 다른 시스템 및 기기 간 데이터 교환을 원활히 하기 위한 표준화된 통신규약이다. 기기 간 통신은 교환되는 데이터 형식에 대해 상호 협의를 요구하기 때문에 프로토콜이 필요한 것이며, 공통의 데이터 교환 방법이나 순서에 대해 정의한 약속, 규칙 체계를 의미한다. 따라서 동일한 프로토콜을 사용하면 기종 및 프로그램이 다르더라도 컴퓨터간 상호 통신이 가능하다. 따라서 정보 통신을 하기 위해 표준 프로토콜을 채택하여 통신망을 구축해야 한다. -> 각각의 프로그램, DB, 파일 서비스 등을 가지고 있는 컴퓨터 네트워크가 데이터를 주고 받기 위해 지켜야 하는 약속을 공식화 한 것 예) 손님이 주문을 받는 사람에게 외계어로 주문을 할 수 없다. 주문을 하기 위해 지켜야 ..

Computer Science 2022.12.29

마이크로서비스 아키텍처(MSA)란?

Monolithic MSA가 등장하기 이전 기존의 시스템은 정보제공을 위한 화면부터 데이터베이스까지 전체가 하나의 흐름으로 묶여있는 Monolithic Architerture이었다. Monolithic Architecture는 소프트웨어의 모든 구성요소가 한 프로젝트에 통합되어 있는 형태로 웹 개발을 예로 들면 웹 프로그램을 개발하기 위해 모듈별로 개발을 하고, 개발이 완료된 웹 어플리케이션을 하나의 결과물로 패키징하여 배포되는 형태를 말한다. 장점 개발 초기에는 단순한 아키텍처 구조로 인해 개발이 용이하다. 어떤 서비스든지 개발되어 있는 환경이 같아서 복잡하지 않다 배포가 간단하다 쉽게 고가용성 서버 환경을 만들 수 있다. 단점 프로젝트의 규모가 커짐에 따라 애플리케이션 구동 시간이 늘어나고 빌드 및 ..

Computer Science 2022.12.29

[python]백준 11053번: 가장 긴 증가하는 부분 수열(LIS)

잘못된 풀이 처음에 이 문제를 봤을 때 부분 수열에만 집중하고 가장 긴 증가하는 부분 수열을 보지 못했다. 문제만 봤을 때는 순서 상관없이 증가하기만 하면 카운트해주면 되는구나 생각하고 코드를 작성했었다. N = int(input()) list_ = list(map(int, input().split())) result = [] for i in range(len(list_)): if i == 0: result.append(list_[i]) elif list_[i] > list_[i-1]: result.append(list_[i]) print(len(result)) 실제로 위와 같이 코드를 작성하게 되면 의도한대로 예제 출력과 같은 값이 나오고, result라는 리스트에는 순차적으로 증가하는 [10, 20,..

Algorithm 2022.12.28

객체지향 / 절차지향 프로그래밍이란?

객체지향 프로그래밍. 개발 공부를 시작하면서 너무나도 자주 들었던 말이다. 자주 들었던 말이지만 어떤 사람이 객체 지향 프로그래밍이 정확하게 어떤거야? 라고 물어본다면 대답하기 어려울 것 같아 이번 기회에 개인 공부도 할 겸 정리해볼까 한다. 절차지향 프로그래밍(Procedural Programming) 초기 프로그래밍 방식은 절차적 프로그래밍 방식이었다고 한다. 절차적 프로그래밍 방식은 물이 위에서 아래로 흐르는 것처럼 순차적인 처리가 중요시 되며 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법이다. 절차적 프로그래밍은 컴퓨터의 작업 처리 방식과 유사하기 때문에 객체지향 언어를 사용하는 것에 비해 더 빨리 처리되어 시간적으로 유리하다고 한다. 하지만 절차적 프로그래밍 방식은 각 코드가 유기..

Computer Science 2022.12.27

MongoDB에 데이터 저장 및 변경하기

MongoDB에 저장할 Index를 먼저 만든다. const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost:27017/test'); mongoose.connect('mongodb://localhost:27017/movieApp', { useNewUrlParser: true }) .then(() => { console.log("Connection!!") }) .catch(err => { console.log("oh no error!!!!") console.log(err) }) const로 mongoose를 선언하고 mongoose.connect를 이용해 mongodb에 연결시킨다. const movieSchema = new mo..

몽고DB(MongoDB) 설치 후 에러

더보기 몽고DB를 다운받아 강의대로 실행을 해보니까 네모와 같은 오류가 나왔다. cmd에서 mongod를 입력해서 서버는 열어놨기 때문에 그거에 대한 오류는 아닌 것 같은데 dbshell 파일을 못 찾는것 같은? 느낌이었다. mongodb 파일 위치를 옮겨보고, 환경 변수 편집에서 패스설정도 다시 해보고 했지만 여전히 똑같은 에러가 나왔다. 삭제했다가 다시 설치도 해보고 했으나 결과는 동일했다. 고민에 고민을 하던 중 예전에 주피터 노트북을 설치했을때의 오류처럼 user에 내 이름이 한글로 들어가서 파일을 찾을 수 없는 것 같아서 영문 사용자에다가 MongoDB를 다시 설치해보고 실행했으나 똑같은 오류가 나왔다. 에러가 났음에도 불구하고 JavaScript 기반의 문법 적용에는 문제가 없었다. 잘 되고 ..

RESTful 라우트 공부중에 생긴 오류

localhost를 localhost:3000/comments/new으로 설정하고 Git bash에서 nodemon index.js 파일을 실행해서 서버를 열었으나 알 수 없는 오류,, 뷰 디렉토리에서 comments/new를 발견하지 못했다는 이야기인데, 뭐가 문제인지 도통 모르겠었다.. index.js 파일에서 오타가 난게 있는지 오류가 있는지 이것도 수정해보고 저것도 수정해봤으나 아무 이상 없었다. 혹시 파일 위치 설정이 잘 못됐나 싶어서 이리 옮기고 저리 옮기고 해봤지만 결과는 똑같았고, app.set에서 path.join을 통해서 연결 시켜놔서 이것의 문제는 아닌거 같았다. 그러다가 발견한 for 구문에서의 commnets.... comments라고 써야하는데 e랑 n이랑 순서를 바꿔버렸다. h..

HTML 문법을 활용한 마라톤 제출 양식 코드리뷰

HTML 문법을 활용해서 위와 같은 형식의 마라톤 제출 양식을 만들어 보고자 한다. 배운 내용들을 바탕으로 아래와 같이 코드를 짜봤는데 보기도 좋지 않고 아직 머릿속으로도 잘 정리되지 않은 것 같아서 스스로 코드 리뷰를 해보면서 정리해보고자 한다. Race Registration First name Last name select a Race: Fun Run 5K Half Marathon Full Marathon Email Password Select Age Group Under 10 10~18 19~25 26~100 Register! 위에서부터 하나하나씩 짚어보면 Race Registration First name Last name Race Registration을 h1으로 묶었고 p로 문단을 나눴다. ..

WEB1 - HTML 간단 문법 정리

오늘 간단하게 배운 HTML 문법을 정리해보고자 한다. 프로그램은 ATOM을 사용했다. HTML의 This is heading This is heading This is heading This is heading This is heading This is heading HTML의 은 글의 크기를 조절. 1부터 6까지의 숫자를 넣을 수 있다. 기억해야 할 점은 1이 가장 큰 폰트 크기로 커질수록 글자가 작아진다. HTML의 , , Hypertext mark up Language. HTML elements are the building blocks of HTML pages. Hypertext mark up Language. HTML elements are the building blocks of HTML p..

파이썬의 상속(Inheritance), 다형성(Polymorphism), 가시성(Visibility), decorate

상속(Inheritance) 부모클래스로 부터 속성과 Method를 물려받은 자식 클래스를 생성 하는 것 class Person(object): def __init__(self, name, age): self.name = name self.age = age def __str__(self): return "저의 이름은{0} 입니다. 나이는 {1} 입니다.".format(self.name, self.age) class Korean(Person): pass first_korean = Korean("Myeonghak", 28) print(first_korean.name) 부모 클래스 Person에서는 name과 age가 있음 이를 Korean(Person)으로 상속을 받음 상속받았기 때문에 Person이 가지고..

728x90