개발공부 9

SaaS (Software as a Service) ?

SaaS (Software as a Service)는 사용자가 소프트웨어를 설치하지 않고 직접 인터텟에서 사용가능한 소프트웨어를 말한다.구글의 엑셀시트나, 넷플릭스, 깃헙 그리고 흔히 이런저런 광고가 많은 설치없이 바로 할 수 있는 웹게임 같은것도 SaaS라고 할 수 있다.그렇다면 요즘 SaaS가 많이 쓰이고 있는 이유는 무엇이 있을까?우선 이는 요즘 AWS등의 클라우드컴퓨팅의 대세와도 크게 연관이 있다. 수평적 확장이 유연하고 자유로운 클라우드환경과 잘맞는 SaaS가 유용하다고 할 수 있다. 특징 1.초기비용이 낮다사는 형식이 아니라, 구독형식이기 때문에 초기 비용이 낮지만, 장기적으로 사용할 경우 오히려 더 비싸질 수 있다. 2.접근성이 좋다설치하지 않기 때문에 인터넷만 된다면, 어디서든, 그리고 다..

개발공부 2024.11.28

대칭키 비대칭키 (암복호화 방식)

HTTP의 통신등에서 데이터들은 평문 그대로 통신하기에, 중간에 누가 가로채거나 했을때에 정보가 누출될 우려가 있다.이런 보안적인 취약점을 보완하기 위해, HTTPS에서는 주고받는 데이터를 암호화한다.이때 대칭키/비대칭키 기반으로 암호화를 한다. 대칭키는 암호화 할때나 복호화 할때나 같은 키값을 사용하는것이고,비대칭키는 암호화 할때의 키값과 복호화 할 때의 키값이 서로 다른 2개를 사용 하는 방식이다.  *참조: 여기서 말하는 '키(key)'는 암호화/복호화에 쓰이는 값으로 암복호화를 하는 기준값 이라고 볼 수 있다. 해쉬 값이라고 봐도 무방하다. 대칭키 vs 비대칭키1.통신비용대칭키가 비대칭키에 비해 통신비용이 크다.대칭키는 암호화, 복호화에 같은 키가 쓰인다. 그렇다면 이 키 값을 모두에게 알려준다면..

개발공부 2024.06.17

MSA (Microservices Architecture)

MSA란? 마이크로(작은) 서비스들 + 아키텍쳐(건축물 등의 구조) = 작은 서비스들로 이루어진 소프트웨어 구조를 만드는 방식 이와 반대되는 느낌의 아키텍쳐 구조로는 전통적인 방식인 모노리틱 어플리케이션(Monolithic Application)은 모든 기능이 하나의 단일 소프트웨어 내에서 구현된다. 그럼이런 모노리틱 어플리케이션과 대비되는 MSA의 특징을 살펴보자. 1.모듈성(Modularity) 각 서비스는 특정 기능들을 담당하기 때문에 독립적으로 개발, 배포 및 확장 할 수 있다. 유지보수성 향상. 2.확장성(Scalability) 독립적이기에 시스템의 특정 부분에 대해 부하가 증가할 때, 해당 서비스만 확장하여 전체 시스템의 성능을 유지할 수 있게 해준다. 3.유연성(Flexibility) 다양한..

개발공부 2024.04.14

깃허브 fetch vs pull

fetch, pull 두개의 명령은 원격저장소인 깃허브에서 -> 내 로컬 저장소로 히스토리(변경이력)를 가져오는 것이다. 그렇다면 뭐가 다를까? fetch는 내가 작업하고 있는 부분의 헤드는 그대로 유지하면서, 원격저장소에 업데이트된 히스토리의 정보만 가져온다. 원격저장소(깃허브)에 저장된 코드의 변경점등을 확인하려고 할 때 사용 할 수 있다. pull은 내가 작업하고 있는 부분을 원격저장소에서 받아온 정보와 그대로 합쳐버린다. 내 로컬의 헤드와 원격저장소의 헤드가 동일한 커밋을 가리키게 된다. 즉 원격저장소의 코드와 로컬의 코드와 똑같아지게 되는 것이다.

개발공부 2024.03.25

깃 (Git)

깃 이란 무엇인가? 형상관리 시스템이라고 할 수 있다. 쉽게 말하면 우리가 게임을 할 때 중요한 순간에 저장을 하는 것을 생각해보면 된다. 언제든지 우리는 게임에서 저장한 순간부터 다시 게임을 할 수 있다. 깃도 이와 마찬가지다. 깃은 파일이나 프로그램등의 변경이력이 계속 기록되어서, 특정 시점의 상태로 언제든지 이동 할 수 있다. 게임에서 저장된 파일을 불러오듯이 말이다. 깃의 원리와 구조는 다음과 같다.

개발공부 2024.03.23

Client, Browser, Server, HTTP

클라이언트(사용자)가 브라우저를 통하여 서버에 데이터를 요청하는 통신을 보내는데, 이때 클라이언트와 서버 사이에서 데이터를 주고받는 통신의 형식(혹은 규칙)을 HTTP라고 한다. HTTP > 즉 Hyper Text Transfer Protocol 을 해석하면 하이퍼텍스트(텍스트뿐만 아니라 갖가지 동영상이나 이미지 등)를 전송하는 통신규칙 여기에서는 서버에 데이터를 요청하는 통신이므로 HTTP request가 이용된다. 이를 받은 서버는 HTTP response를사용하여 사용자가 원하는 데이터를 보내주면(응답) 사용자의 브라우저는 이것을 받아서 그려준다.

개발공부 2023.08.28

네트워크 관련 개념 정리

네트워크란?(Network) : 여러 컴퓨터나 기기들간에 서로 데이터를 주고받을 수 있게 해주는 연결 인터넷(Internet): 인터넷은 여러 통신망(네트워크)를 거대하게 연결된 통신망 WWW (World Wide Web) : 인터넷에 연결된 컴퓨터를 통해 사람들이 정보를 공유 할 수 있는 전 세계적인 정보공간, 간단하게 웹이라고도 부른다. > 일반적으로 흔히들 말하는 인터넷이랑 비슷하지만 다른데 웹은 인터넷에서 사용하는 하나의 서비스이다. 데이터란? : 현실세계에서 측정하고 수집한 사실이나 값. > 사실상 컴퓨터에서 데이터라고 하면 0과1뿐이지 않을까? 서버란? : 클라이언트의 요청으로 부터 응답해주는 프로그램 IP주소 : 네트워크에서 데이터 송수신중에 상대방을 특정하기 위한 위치 주소 + 포트번호도 ..

개발공부 2023.08.26

프레임워크와 라이브러리 간단 정리 및 차이

Framework (프레임워크) : 기본적으로 뼈대, 기반구조를 뜻하며 제공 해 주는 틀에 맞춰서 코드를 작성함. Library (라이브러리) : 자주 사용하는 함수들의 집합. 즉 도서관이다. 내가 코드에서 필요하다고 생각되면 가져와서 자유롭게 사용가능하다. 정해진 틀에 맞춰서 내가 코드를 작성해야하면 프레임워크, 내 코드로 가져와서 자유롭게 사용할 수 있으면 라이브러리.

개발공부 2022.12.07

클래스 개념 정리

코드를 통해 클래스와 그에 속한 전반적인 개념들을 정리 # 연관된 함수나 변수의 집합으로 이루어져있어 여러 객체를 찍어 낼 수 있는 하나의 틀이라고도 볼 수 있다. from turtle import speed from unicodedata import name #일반유닛 class Unit: def __init__(self, name, hp, speed): #init은 생성자, 객체가 만들어질때 자동으로 호출되는 부분, self의 정체는 뭐냐!? self.name = name #멤버변수이고 클래스내에서 정의된 변수이며 이 변수로 초기화를 할 수 있고 사용도 가능하다. self.hp = hp self.speed = speed def move(self, location): print("[지상 유닛 이동]")..

개발공부 2022.03.18