본문 바로가기

All or Nothing

(101)
동기와 비동기의 개념 1. 동기 방식(Synchronous)요청이 들어온 순서에 맞게 하나씩 처리하는 방식이다. 순서에 맞춰 진행되는 장점이 있지만, 여러 가지 요청을 동시에 처리할 수 없다. 위 그림의 (a)처럼 커피 주문을 받고 나올 때까지 기다리는 것이 동기 방식의 예시라고 할 수 있다. 2. 비동기 방식 (Asynchronous)하나의 요청에 따른 응답을 즉시 처리하지 않아도, 그 대기 시간동안 또 다른 요청에 대해 처리 가능한 방식이다. 여러 개의 요청을 동시에 처리할 수 있는 장점이 있지만 동기 방식보다 속도가 떨어질 수도 있다. 위 그림의 (b)처럼 점원 한명이 커피 주문을 받고 다른 점원이 커피를 건네주는 것이 비동기 방식의 예시다. 동기와 비동기의 차이는 어떤 요청이나 혹은 그와 관련된 작업을 처리하고자 하는..
HTTP Status Code 1. HTTP Status Code (상태 코드) 클라이언트가 서버에 HTTP 요청을 보냈을 때 정상적으로 처리되었는지 아니면 에러가 발생했는지 알려주는 것이다. 클래스의 정의만 지킨다면 RFC2616에서 정의된 상태 코드를 변경하거나, 서버 독자의 상태 코드를 만들 수 있다. HTTP 상태 코드는 60종류 이상이 있지만, 그 중에서 대표적으로 사용되는 상태 코드를 살펴본다. 2. 응답 상태 코드 2.1 2xx: 성공(Success)2xx 응답은 클라이언트의 요청이 정상적으로 처리되었음을 나타낸다. ① 200 OK클라이언트가 보낸 요청을 서버가 정상 처리하였음을 나타낸다. 응답할 때 상태 코드와 함께 되돌아 오는 정보는 메소드에 따라 다르다. ② 204 No Content이 응답은 서버가 요청을 받아서 ..
40대가 30대에게 하는 조언 부끄러움을 무릅쓰고 하는 말, 그리고 삼십대에게 하는 당부는 재미가 없습니다.조언이라는 것은 지극히 개인적인 의견이지, 왕도가 될 수 없죠.각자의 소신껏 사는것이 가장 옳습니다.제가 들려드리는 이야기는 들을만한 부분만 수용하시면 좋겠습니다.1. 어떤 회사를 다닌다고 말하지 말고, 어떤 일을 하는 사람이라고 말할 수 있어야 한다. 그것이 당신의 이름표이다. 2. 버는 돈의 금액으로 커리어를 쌓으려 말고, 존재감에 집중하라. 일하는 분야에 없어서는 안되는 사람을 목표로 해야 한다. 3. 자기 주관과 가치관을 정립하라. 휩쓸려 판단하고 맹목적으로 따라가면, 훗날 원하는 일을 할 수 없다. 4. 사회와 경제 상황, 정치를 모든 결과의 이유로 탓하는 습관을 갖지 마라. 부조리를 비판하고 저항할 수는 있으나, 그것..
URI / URL / URN 1. URI (Uniform Resource Identifier)통합 자원 식별자로, 네트워크에 있는 자원을 나타내는 유일한 주소이다. 네트워크에서 요구되는 기본 조건으로써 프로토콜에 항상 붙어 다닌다. 2. URL (Uniform Resource Locator)통합 자원 지시자로, 네트워크 상에서 자원이 어디 있는지를 알려주기 위한 규약이다. 리소스가 정확히 어디에 있고 어떻게 접근할 수 있는지 분명하게 알려준다. 3. URN (Uniform Resource Name) 통합 자원 이름으로 URN은 콘텐츠를 이루는 한 리소스에 대해, 그 리소스의 위치에 영향 받지 않는 유일무이한 이름 역할을 한다. 리소스의 이름을 변하지 않게 유지하는 한, 여러 종류의 프로토콜로 접근해도 문제없다.
SOLID 원칙 객체지향 디자인 원리들을 사용하면 좀 더 유지보수하기 쉽고, 유연하고, 확장이 쉬운 소프트웨어를 만들 수 있다. 이 원리들은 그 크기를 대비해 보면 패턴보다 훨씬 작지만, 표준화 작업에서부터 아키텍처 설계에 이르기까지 다양하게 적용되는 원칙이다. ① Single Responsibility Principle : 단일 책임의 원칙(SRP) 한 클래스에 하나의 책임만 가진다. 여기서 책임이란 '기능' 정도로 생각하면 된다. 설계를 잘한 프로그램은 기본적으로 새로운 요구사항과 프로그램 변경에 영향을 적게 받는다. 즉, 응집도는 높지만 결합도는 낮은 프로그램이다. 만약 한 클래스가 갖는 책임이 많아지면 클래스 내부의 함수끼리 결합도가 높아져서 유지보수가 어려워질 수 있다. 그래서 책임을 분산시킬 필요가 있다. ②..
[번역] 사이드 프로젝트는 왜 중요한가? 트렐로, 크레이그 리스트, 언스플래쉬, 트위터, 구글 등등. 세계적으로 성공한 회사들은 무슨 공통점을 가지고 있을까? 바로 대부분 의미없다고 생각하는 '사이드 프로젝트'에서 그들의 아이디어가 시작되었다는 것이다. 사이드 프로젝트는 다양한 목적과 형태로 제공된다. 어떤 사람들은 좋은 제품을 만들고 성공적인 회사를 세우기 위해 사이드 프로젝트를 시작한다. 하지만 그것 외에도 사이드 프로젝트를 하는 중요한 근거가 있다. 배움에 고삐를 당길 수 있다.새로운 기술을 익히고 숙달하는데 힘들 수 있지만, 끈기와 동기부여로 성취할 수 있는 것은 많다. 코딩을 배우는 것처럼 어렵고 좌절하거나 시간이 오래 걸릴 수도 있다. 결국, 포기하지 않고 꾸준히 경험을 쌓는 것이 중요하다. 물론 수학이나 논리적인 사고, 컴퓨터 공학..
OOP(Object-Oriented Programming)이란? 1. OOP?객체지향 프로그래밍(Object-Oriented Programming)의 줄임말로, 프로그램을 어떻게 설계해야 하는지에 대한 일종의 개념이자 방법론이다. 프로그램을 단순히 데이터와 처리 방법으로 나누는 것이 아니라 수많은 '객체'라는 기본 단위로 나누고 이 객체들의 상호작용으로 서술하는 방식이다. 2. OOP의 특성① 추상화(Abstraction)공통의 속성이나 기능을 묶어 이름을 붙이는 것으로, 사물들의 공통된 특징을 파악해 인식의 대상으로 삼는 행위를 말한다. 각 개체의 구체적인 개념보다 추상적인 개념에 의존해야 설계를 유연하게 변경할 수 있다. 강아지, 고양이의 공통된 특징은 '동물'이라는 집합으로 다룬다. '강아지나 고양이 고유의 울음소리(구체적인 개념)'이 아니라 '울음소리(추상적인..
[대화의 신] 래리 킹에게 배우는 말하기의 모든 것 스스로 말을 잘하지 못한다고 생각해도, 당신은 잘할 수 있다.스스로 말을 잘한다고 생각해도, 지금보다 말을 더 잘할 수 있다.어떤 기술이 개발되든지, '말하지 않고는 살 수 없다'는 것이 변함없는 진리다. -p226 인생을 살아가면서 조심해야 하는 것이 있는데, 대표적인 것이 '말'이다. 말 한마디에 천냥 빚도 갚는다는 말이 있듯이 말의 힘은 엄청나다. 상대방에게 내가 하고 싶은 말을 듣기 쉽게 전달하는 것. 정말 쉽지 않다. 개발자라는 직업 특성상 타 직군이나 클라이언트와 소통해야 하기 때문에 커뮤니케이션 능력은 정말 중요하다. SNS의 발달로 유행어와 신조어가 넘쳐나는 시대다. 그것들을 모르면 대화를 하기 어려울 정도다! 그래서 유행어나 신조어를 찾아볼 때가 가끔 있는데, 이 책에서는 오히려 유행어나..