-
travel 과 trip 의 차이General/🗣 영어회화 2022. 11. 1. 21:42
정리 travel : 여행이라는 개념 그 자체 - I like traveling by myself. (나는 혼자 여행하는 것을 좋아합니다.) trip : 하나하나의 그 여행 - go on a trip - take a trip - we took a trip to new york last weekend. (우리는 저번주에 뉴욕을 여행했습니다.) 예제 이번 주말에 가족이랑 여행가요. - I’m taking a trip with my family this weekend. 나는 올해에 여행을 세 번밖에 못했어요. - I took only 3 trips this year. 나는 짧게 자주 여행하는 것을 좋아한다. - I enjoy taking frequent short trips by myself. - I enjo..
-
[CS] 유니코드(Unicode)와 UTF-8 (feat. 토스페이스)General/🟢 General 2022. 4. 5. 23:48
자고로 개발자는 유니코드에 대해서 모르면 안된다~ 스폴스키 아저씨의 말에 충격을 받고, 부랴부랴 정리해보았다. 생각해보니 프로그래머로서 유니코드에 대해 많이 접했지만 제대로 개념을 가지고 있지 않고 넘어갔다는 사실에 조금 부끄러웠다😳 유니코드는 중요하지만 개념은 그렇게 어렵지 않았다. 그럼 시작해보자! 문자열 인코딩에 대해 정리한 이전 글을 보면 더 이해가 쉬울수 있다. 이전 글도 조엘 온 소프트웨어와 위키를 참고해 작성하였다. 유니코드 전세계 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준이다. 다국어 환경에서 서로 호환이 되지 않던 기존의 문자열 인코딩들의 문제를 해결하였다. 따라서 유니코드는 컴퓨터 소프트웨어의 국제화(I18N) 와 지역화(L10N) 에 널리 사용되었다. ..
-
[Git] Cherry Pick 사용하기General/🟢 General 2022. 2. 20. 12:25
체리피킹은 어떤 회사의 제품이나 서비스 가운데 비용 대비 효율이 뛰어나거나 인기 있는 특정 요소만을 골라 합리적으로 소비하려는 현상을 가리키는 경제 용어이다. 체리피킹에 대해서 알고 계신가요? 나에게 이득이되는 점만 쏙 사용하고 나머지는 버리는 전략인데요. 예를 들어 스포티파이 무료체험 3개월만 사용하고 실제 유료 결제 구독은 하지 않는 거죠 😆 그런데 우리 프로젝트의 버전관리에서도 이런 전략을 취할 수 있습니다! Cherry Pick : 다른 브랜치에서 하나의 커밋만 가져와서 반영시키기 보통 다른 브랜치의 커밋을 내 브랜치에 반영하는 방법은 병합이나 리베이스 입니다. 병합은 브랜치가 분기된 시점부터의 모든 커밋을 내 브랜치에 반영하게 됩니다. 하지만 다른 브랜치가 아직 미완성 상태여서 모든 커밋을 가져..
-
[Design Patterns] 옵저버 패턴이란?General/🟢 General 2022. 2. 18. 00:01
키워드 : 옵저버, 구독, 이벤트, 알림, 폴링 옵저버는 Subscriber, Listener 등으로도 불립니다. 옵저버는 이벤트가 발생하면 수행할 동작을 정의해놓고 옵저버블을 감시, 구독합니다. 옵저버블은 자신을 구독하려는 옵저버를 등록하고 (register) , 이벤트가 발생했을때 등록된 옵저버들에게 알려줍니다.(notify) 위와 같은 방식으로 옵저버는 이벤트에 바로 반응할 수 있습니다. 폴링이라는 개념과 비교하여 이해해볼까요? 폴링은 옵저버블이 옵저버에게 알려주는 대신, 옵저버가 직접 이벤트가 발생하는지 주기적으로 감시하는 방법을 사용합니다. ( for , while 등을 떠올리면 됨 ) 하지만 주기가 아닐때 발생한 이벤트를 알지 못하고, 발생하지 않을 때도 자원을 점유하고 있기 때문에 오버헤드가..
-
[SOLID] 의존관계 역전 원칙이란?General/🟢 General 2022. 2. 17. 23:46
Dependency inversion principle 고수준의 모듈이 저수준의 모듈에 직접 의존하지 않고, 인터페이스에 의존한다. 저수준의 모듈도 이 인터페이스를 의존한다. 저수준의 입장에서 의존 받는 입장에서 의존 하는 입장으로 관계가 역전된다. 처음보면 이해가 잘 가지 않습니다. 아래 설명을 한번 볼까요? High Level Module 과 Low Level Module 보통 더 많은 정보를 가지고 있으면 하이레벨 ( 동물원 ) 상대적으로 적은 정보를 가지고 있으면 로우레벨이라고 설명합니다. (동물들) 정리하자면 동물원은 펭귄, 사자, 코끼리에 의존하고 있습니다. 이것이 보통은 자연스러운 관계입니다. 하지만 ... 프로그래밍 세계에서는... 양이나 소, 토끼 등 동물들이 계속 추가되면 동물원은 더 ..
-
[Git] Rebase 사용하기General/🟢 General 2022. 2. 13. 14:57
안녕하세요🐶 이번 시간에는 개념은 알았지만 실제 적용은 많이 해보지 않았던 rebase 에 대해 정리해보았습니다. 이제부터라도 깃이 제공하는 다양한 기능들을 제대로 사용해보려구요. 리베이스는 어려운 개념이 아닙니다. 그럼 시작할게요! 무엇을 하는 명령인가? 베이스 커밋을 갈아치기 한다. base 를 다시(re) 정한다. 목적 불필요한 병합 커밋을 줄여서 그래프를 깔끔하게 보이게 할 수 있다. 활용할 수 있는 상황 upstream 의 main 브랜치로 풀 리퀘스트를 보내려고 하는데, merge conflict 가 발생한다. 보통과 같은 상황이면 자신의 작업 브랜치로 main 을 머지해서 충돌을 해결한후, 다시 pr 을 보내면 된다. ( fast-forward merge 가 될 것 이다 ) 이렇게 하면 원래..
-
문자열 인코딩이란?General/🟢 General 2022. 2. 12. 10:55
위와 같이 웹 페이지가 알 수 없는 문자로 보이신 경험 있으신가요? 문자열 인코딩과 관련이 있는 문제입니다. 문자열 인코딩 문자열 인코딩이란, 사용자가 입력한 문자를 컴퓨터가 해석할 수 있는 신호로 변환하는 것입니다. 이 때, 신호로 변환하는 규칙이나 기준이 있어야할 것 입니다. 어제는 'a' 라는 문자를 0010 으로 저장하기로 했다가, 오늘은 0011 로 저장한다면 어제 저장해 놓은 글자는 오늘 알아볼 수 없게 될 것입니다. 이렇게 신호로 변환하는 규칙을 문자 집합 이라고 부릅니다. 가령 'a' 는 비트열 16진수 61로 저장하기로 정한다!!! 라는 규칙과 같은 것입니다. 저장된 문서의 인코딩 규칙을 알고 있고, 해당 규칙을 이해하고 있는 컴퓨터는 16진수 61을 만나면 'a' 라는 문자를 화면에 잘..
-
[1%의 네트워크 원리] 프로토콜 스택의 내부 구성General/🕸 Network 2022. 2. 6. 22:34
안녕하세요🐶 이번 주말에 저는 선물 받은 조엘 온 소프트웨어 라는 책을 읽었습니다. 책 내용 중 '허술한 추상화의 법칙' 이라는 주제에 대해 보게 되었는데, 작가가 추상화의 예로 TCP 와 IP 를 들었습니다. 안정적인 통신을 보장하는 TCP 는 사실 불안정한 IP 를 기반으로 이루어지며, 이것이 바로 추상화의 마법 🧙♀️ 이라고 설명합니다. ( 실제 내용은 추상화를 옹호하려는 취지의 글은 아닙니다. ) 흥미로운 부분이기도 했고, 오랜만에 네트워크 개념도 복습할 겸 리마인드 하는 마음으로 당분간 해당 부분을 다시 정리해볼까 합니다 :) 구성 요소를 중심으로 관심 있는 부분 살펴보기 애플리케이션 영역에는 네트워크 애플리케이션과 소켓 라이브러리가 있다. 윗 부분이 아랫부분의 기능을 사용하여 목적을 달성하는..
-
ARM 이해하기General/🟢 General 2021. 12. 27. 14:07
궁금증의 발단 이전 글 “x86_64? arm64?” “ARM 기반 애플의 SoC 를 이해하기 위한 간단 배경지식” 저는 상식으로 이런 내용들을 이해해가는 과정이 너무 재미있더라구요 :) ARM 이란? ARM 은 ARM 아키텍처를 설계하는 영국 소재의 팹리스 회사다. ( 현재 NVIDIA 의 인수 절차 진행 중 ) 동시에 ARM Holdings 에서 설계하는 명령어 집합의 총칭이다. * ARM은 타사에 라이센스를 제공해서 받은 로열티로 수익을 낸다 대표적인 상품으로 스마트폰 등의 모바일 디바이스의 AP 로 사용되는 Cortex 아키텍처 등이 있다. 애플은 아이폰6s 이후부터 ARM 의 명령어셋 라이센스를 취득해 ARM 호환 CPU 아키텍처를 직접 설계하여 사용하고 있다. IDM, 팹리스, 파운드리 반도체..