총 1127개의 태그를 찾았습니다.

10-200-rule

1건의 항목

  • 코드를 짜다보면, 어느새 얽히고 섥혀있는 내 프로젝트를 마주한다. 부지런함이 개발자의 덕목이 아닌가라고 생각될 정도로 항상 깔끔함을 유지하는 것이 참 중요하다는 생각이 들곤한다. 혹은 미래의 나와 과거의 나가 항상 현재에서 싸우는 듯하기도 한다.

3-way-handshake

1건의 항목

  • 이 계층에서도 TCP 헤더를 붙여 세그먼트(Segment)를 만드는 캡슐화를 진행한다. 연결형 통신에 사용 연결이라는 통신로를 확보해야 한다. 가상의 통신로 연결을 확립하기 위해서는 TCP 헤더의 코드 비트를 확인해야 한다.

3d-printing

6건의 항목

  • 3D 모델이 만들어지는 기반 플랫폼. 프린터의 작업 표면. 빌드 플레이트(Build Plate)는 3D 프린터에서 3D 모델을 만들 때 사용되는 기반 플랫폼이며, 일반적으로 이 플레이트 위에 소재가 적층되어 모델이 만들어집니다.

  • 인쇄물 생성 중인 3D 프린터 내부의 공간을 의미한다. 온도를 유지, 인쇄물의 건조도를 제어, 인쇄물의 안정성과 질을 향상 일부 인쇄 재료(예: ABS)의 경우 챔버 내부의 온도와 습도를 조절하여 인쇄물의 수축을 방지하고, 더 많은 세부 사항을 유지할 수 있다.

  • 3D 프린터에서 소재를 층층이 녹여 모델을 만드는 부분. 익스트루더(Extruder)는 3D 프린터에서 소재를 층층이 적층하여 모델을 만드는 핵심 부품 중 하나입니다.

  • Fused Deposition Modeling, Fused Filament Fabrication(FFF) 재료를 녹는점 이상의 온도로 녹인 후 일정한 두께로 층을 만들어 쌓아올리는 방식이다. 장점 저렴하다. 유지보수 난이도가 적다. 소재의 범위를 확장할 수도 있다.

  • Infill은 3D 프린팅된 객체 내부를 채우는 소재의 구조를 나타냅니다. 3D 프린터는 대부분 객체의 외부와 내부를 채우기 위해 격자 또는 패턴으로 된 구조를 생성합니다. 이 구조는 모델의 강도를 유지하면서도 소재 사용과 프린팅 시간을 최적화하는 데 도움이 됩니다.

  • 레이어 높이(Layer Height)는 3D 프린팅 과정에서 한 번에 쌓이는 각 층의 두께를 나타냅니다. 3D 프린터는 3D 모델을 여러 작은 수평 층으로 나누어서 생성하는데, 이 각 층의 두께가 레이어 높이입니다.

4-way-handshake

1건의 항목

  • 이 계층에서도 TCP 헤더를 붙여 세그먼트(Segment)를 만드는 캡슐화를 진행한다. 연결형 통신에 사용 연결이라는 통신로를 확보해야 한다. 가상의 통신로 연결을 확립하기 위해서는 TCP 헤더의 코드 비트를 확인해야 한다.

64bit

1건의 항목

abi

1건의 항목

abs

1건의 항목

abstract-class

1건의 항목

  • 추상클래스는 왜 필요할까? 다형성은 멋지고 강력한 개념 OO 4대 특성인 이유 (상속, 캡슐화, 다형성, 추상화) 다형성은 상속에 기반 상속과 다형성은 추상화에 기반 공통된 것을 뽑아내어 일반화된, 범용적인 것으로 적용 여러 클래스에서 공통 분모를 뽑아 부모 클래스로 제작 자식마다 달리 작동하는 구현을 부모의 method signature로 일반화 추상화는 조금더 복잡한 문제를 해결하기 위한 것 새로운 개념은 새로운 문제도 가져온다 추상화는 막강하지만 그로 인해 생각지 못한 문제가 발생 역시 사람은 직접 해보고 당해봐야 답을 찾음 ...

abstract-data-types

2건의 항목

  • 소수설에서 태어난 다양한 주장들에 대해 알아보자. ADT와 PDA, Alan Kay에 대해 알아보자. 지금까지. 주류 OO에 대해 배웠다. 이제는 소수설들이 어떤 것들이 있었는지 알아보자. 취할 것은 취하고, 아닌 것은 아닌 것임을 알기 위해 배운다.

  • 이전 장들에서는 Code, Code Block, 함수 구현 방법, 함수들의 연관 방식을 알아보았지만, 이번에는 조금더 고차원의 얘기를 할까 한다. 클래스 체계 Java Convention에 따르면 가장 먼저 변수 목록이 나온다.

abstract-factory

2건의 항목

abstract-method

1건의 항목

  • 추상클래스는 왜 필요할까? 다형성은 멋지고 강력한 개념 OO 4대 특성인 이유 (상속, 캡슐화, 다형성, 추상화) 다형성은 상속에 기반 상속과 다형성은 추상화에 기반 공통된 것을 뽑아내어 일반화된, 범용적인 것으로 적용 여러 클래스에서 공통 분모를 뽑아 부모 클래스로 제작 자식마다 달리 작동하는 구현을 부모의 method signature로 일반화 추상화는 조금더 복잡한 문제를 해결하기 위한 것 새로운 개념은 새로운 문제도 가져온다 추상화는 막강하지만 그로 인해 생각지 못한 문제가 발생 역시 사람은 직접 해보고 당해봐야 답을 찾음 ...

abstraction

1건의 항목

acceptance-testing

1건의 항목

  • 인수 테스트는 무엇일까? 시기 상조의 정밀도 불확실성의 원칙 서류와 실제 시스템의 동작은 다르다. 사업부는 요구했던 내용이 실제 시스템에서 돌아가는 모습과 다르다는 것을 깨닫는다. 요구사항이 정밀해질수록 최종 구현된 시스템과 초기 요구사항의 차이는 벌어진다.

access-control-level

1건의 항목

  • 코드의 관리는 중요하다. 위계 질서를 가지고 구분하지 않으면 혼란을 초래한다. 접근 제어는 특히 SDK 작업을 하는 경우 인터페이스 역할을 하기 때문에 잘 알아두는 것이 좋다.

accessibility

2건의 항목

  • Accessibility 자체만 해도 상당히 방대한 개념이다. 이번에는 iOS 개발자가 실제로 많이 사용하는 Accessibility인 Voice Over를 UIKit에 적용하는 방법에 대해 알아보자.

  • 접근성 개발에 있어 쉽게 도와주는 녀석이 있다! Accessibility Inspector!! Introduction 접근성 관련해서 반영해주려니까 테스트 기기가 없더라.

acl

4건의 항목

actor

6건의 항목

actor-hopping

1건의 항목

actor-isolation

1건의 항목

actor-reentrancy

3건의 항목

actor-reprioritization

1건의 항목

adapter

1건의 항목

adder

1건의 항목

  • CPU의 동작방법을 알아보자. 최호성님의 유튜브 강의를 보며 기본적인 컴퓨터 구조를 이해하고 정리하자. 디지털 회로 기본적으로 연산을 수행하도록 가능하게 하는 것은 이 디지털 회로가 있기 때문이다. 이 디지털 회로는 반도체의 특징을 이용하면 가능하다.

address

4건의 항목

  • 네트워크 주소와 브로드캐스트 주소 브로드캐스트는 앞에서 Switch(또는 지금은 Router)에 연결된 모든 호스트에 요청을 보내는 것을 의미했다. 이런 용도로 사용되는 특별한 주소를 말한다. 브로드 캐스트 주소 호스트 ID가 255인 주소이다.

  • 운영체제에서 중요한 부분인 메모리 관리 기능에 대해 알아보자. 메모리는 CPU 자원만큼 컴퓨터를 사용하는데 매우 중요한 자원 중 하나이다.

  • 외부 단편화를 해결하는 방법인 페이징(Paging)에 대해 알아본다. 1. 페이징(Paging) 외부 단편화로 인한 메모리 낭비는 매우 심하다는 것을 살펴보았다.

  • 문자배열 char 형 문자를 여러 개 모아놓은 문자 집합 문자 : 작은 따옴표 ’ ’ 문자열 : 큰 따옴표 ” ” ‘\0’ (NULL) : 문자열 끝에 항상 문자코드 ‘\0’을 덧붙여야 함 char str[5] = {'A', 'B', 'C', 'D', '\0'}; // 옳은 선언 char str[4] = {'A', 'B', 'C', 'D'} // 잘못된 선언 char str...

adt

1건의 항목

  • 소수설에서 태어난 다양한 주장들에 대해 알아보자. ADT와 PDA, Alan Kay에 대해 알아보자. 지금까지. 주류 OO에 대해 배웠다. 이제는 소수설들이 어떤 것들이 있었는지 알아보자. 취할 것은 취하고, 아닌 것은 아닌 것임을 알기 위해 배운다.

agile

11건의 항목 처음 10개의 태그

  • Agile Manifesto는 소프트웨어 개발 방법론 중 하나인 “애자일 개발”의 핵심 원칙을 담은 문서이다. 애자일 개발은 소프트웨어를 효과적으로 개발하기 위한 방법론으로, 고객의 요구사항을 빠르게 수용하고 변경에 대응하기 위한 접근법을 제공한다.

  • 계획이란 무엇인가? 계획이 없다면 프로젝트는 수많은 문제들과 마주하게 된다. 시간 / 비용 값을 기반으로 진행 여부를 판단한다 제때 원하는 기능을 내놓을 수 있을지 없을지 알 수 있다. 하지만 계획한다는 것은 어렵고, 수시로 어긋나기까지 한다.

  • 계획과 추정에 대한 연구결과 2/3 가량의 프로젝트는 추정된 비용 이상으로 많은 돈이 든다. 최종 제품에 포함된 기능들 중 64 퍼센트 가량은 거의 혹은 결코 쓰이지 않는다. 평균적인 프로젝트는 계획된 일정을 두 배 정도 초과한다.

  • 지금 열정적으로 수행하는 ‘좋은’ 계획이 다음 주에 실행할 ‘완벽한’ 계획보다 낫다.

  • 스토리 점수는 상대적이다 스토리 점수: 사용자 스토리나, 기능, 작업의 규모를 표현하기 위해 사용하는 단위 값의 상대성에 의미가 있다.

  • 이상적 시간과 실제 경과 시간 축구 한게임하는데 시간이 얼마나 걸릴까? 누구는 90분, 누구는 3시간이라 말할 것이다. 90분은 이상적 시간에 대응되고, 3시간은 실제 경과 시간에 대응된다고 볼 수 있다.

  • 수확 체감의 법칙 수확 체감의 법칙은 노동을 더 투입한 만큼에 비례하여 결과가 늘어나지 않음을 말한다. 계획 추정에 있어서도 비슷하다. 적은 시간 투자를 통해 얻는 결과와 많은 시간 투자를 통해 얻은 결과가 크게 다르지 않다.

  • 재 추정을 하면 안 되는 경우 첫번째 이터레이션을 한 후, 1, 2번 스토리를 마무리했다고 생각해보자. 원래는 4개의 스토리 모두를 한 이터레이션에 할 수 있을 것이라 생각했다.

  • 규모 추정에는 스토리 점수와 이상적 작업일이라는 두 수단이 있다. 각각 나름의 장단점이 있는데, 어떻게 활용하는 것이 좋은지에 대해 얘기해본다. 스토리 점수의 장점 스토리 점수는 팀원들로 하여금 기능간 경계를 뛰어 넘게 한다.

  • 핵심 요약 시간이 없기 때문에 우선순위 선정을 해야 한다. 스토리 말고 테마를 통해 우선순위 산정한다.

agile-manifesto

2건의 항목

  • Agile Manifesto는 소프트웨어 개발 방법론 중 하나인 “애자일 개발”의 핵심 원칙을 담은 문서이다. 애자일 개발은 소프트웨어를 효과적으로 개발하기 위한 방법론으로, 고객의 요구사항을 빠르게 수용하고 변경에 대응하기 위한 접근법을 제공한다.

  • 지금 열정적으로 수행하는 ‘좋은’ 계획이 다음 주에 실행할 ‘완벽한’ 계획보다 낫다.

ahead-of-time

1건의 항목

  • 전체 과정 개발자가 소스코드를 작성한다. (Ts, Html, css, sass, scss etc) Babel을 통해 모든 브라우저에서 호환 가능한 문법의 코드로 변환한다. 소스코드를 하나로 묶는 Bundling을 진행한다. 원격 저장소에 Deploy한다.

ai

14건의 항목 처음 10개의 태그

  • 2026년 6월 Anthropic이 낸 발표 네 건을 읽고, "성능 자랑"보다 "어떻게 기업 안으로 파고드는가"라는 한 줄기 흐름으로 정리합니다.

  • AI가 웹을 공짜로 긁어가던 시대를 끝내려는 Cloudflare의 실험을 짚습니다. 크롤러를 분류하고, 신원을 확인하고, 요청 하나에 돈을 매기는 흐름이 어떻게 작동하는지 살펴봅니다.

  • 미국 정부가 국가안보를 이유로 최신 AI 모델의 접근을 갑자기 막았다가 18일 만에 풀었습니다. 그 사이 무슨 일이 오갔는지, 발표문이 주장하는 것과 실제로 확인되는 것을 갈라 짚습니다.

  • 2026년 6월 말 NVIDIA가 SEC에 낸 실적·공시를 읽고, 분기 매출 816억 달러라는 숫자와 회사가 붙인 "AI 인프라 리더십" 프레이밍을 갈라서 짚습니다.

  • NVIDIA의 분기 매출 816억 달러가 데이터센터에 얼마나 쏠려 있는지, SEC에 제출된 부문별·시장별 숫자로 직접 확인합니다.

  • 기업이 설비에 돈을 쏟았다 줄였다 하는 자본지출 사이클이 무엇이고, 왜 AI 인프라 수요와 반도체 실적을 읽는 축이 되는지 짚습니다. 대형 클라우드 사업자들의 최근 투자 숫자로 지금 사이클이 어디쯤인지도 함께 살펴봅니다.

  • 물리 세계를 인식하고 개입하는 AI를 가리키는 'Physical AI'가 무슨 뜻인지, 왜 지금 로봇용 파운데이션 모델과 함께 떠올랐는지, 그리고 병목이 어디인지를 1차 자료로 짚습니다.

  • 로봇을 가상에서 훈련시켜 실물로 옮길 때 생기는 성능 저하, sim-to-real gap이 무엇이고 왜 Physical AI의 핵심 병목인지 짚습니다. 아직 자라는 중인 문서입니다.

  • 전자상거래 회사로 아는 Amazon이 왜 AI 인프라 이야기의 큰손으로 계속 등장하는지 짚습니다. NVIDIA의 최대 고객군이면서 동시에 자체 칩으로 경쟁하는 이중 역할, 그리고 번 현금 대부분을 데이터센터에 쏟는 지출 구조를 어떤 축으로 읽어야 하는지 살펴봅니다.

  • Claude를 만드는 AI 회사 Anthropic이 왜 계속 뉴스에 등장하는지 짚습니다. 기업 시장으로 확장하려는 힘과 배포를 통제하려는 정부의 힘이 이 회사에서 어떻게 부딪히는지, 무엇을 보면 다음 국면을 읽을 수 있는지 살펴봅니다.

ai-infra

1건의 항목

ai-policy

2건의 항목

ai-safety

2건의 항목

  • 미국 정부가 국가안보를 이유로 최신 AI 모델의 접근을 갑자기 막았다가 18일 만에 풀었습니다. 그 사이 무슨 일이 오갔는지, 발표문이 주장하는 것과 실제로 확인되는 것을 갈라 짚습니다.

  • Claude를 만드는 AI 회사 Anthropic이 왜 계속 뉴스에 등장하는지 짚습니다. 기업 시장으로 확장하려는 힘과 배포를 통제하려는 정부의 힘이 이 회사에서 어떻게 부딪히는지, 무엇을 보면 다음 국면을 읽을 수 있는지 살펴봅니다.

alfred

2건의 항목

  • 답답한 걸 싫어하는 내게 속도가 나지 않는다는 것은 정말 곤욕이다. 내가 자주 사용하는 Alfred Workflow를 공유해본다. Markdown Table 블로그글을 쓰거나, 기록을 해야 할 때, table만큼 좋은 게 없다.

  • 잘 사용하고 있던 Alfred workflow가 동작하지 않는다. Mac OS 12.3으로 업데이트하고나서 바로 이런 이슈가 터지다니. 속도가 안나 답답하다. Issue 원인 Apple에서 12.3부터 공식적으로 python 2을 지원하지 않는다고 한다.

algorithm

158건의 항목 처음 10개의 태그

  • 그래프 용어 V : vertex E : Edge path 연결 그래프 : 어떤 두 정점 사이에도 경로가 존재하는 그래프 부분 그래프 가중치 포함 그래프 : Edge에 가중치가 달려있음 순환 경로 순환 그래프, 비순환 그래프 트리 - 비순환, 비방향그래프 신장 트리 : 연결된, 비방향성 그래프에서 순환경로를 제거하면서 연결된 부분 그래프가 되도록 하는 트리 신장 트리의 개수는 Cayley’s formula에 따른 개수를 가짐 최소비용신장트리 신장 트리가 되는 부분 그래프 중에서 가중치가 최소가되는 부분 그래프 무조건 트리로 나온다.

  • 가지를 끊어버리는 백 트래킹에 대해 알아보자.

  • 분기 한정법에 대해 알아보자. 분기 한정법 Branch : 이전 상태 공간 트리에서 다음 가지로 넘어가는 경우를 말함 Bound : 한계 이전의 백 트레킹과 크게 다르지 않다. 그 부분 집합의 합을 구하는 문제와 크게 다르지는 않다.

  • 탐색하는 방법에 대해 알아보자. 검색 문제 n개의 키를 가진 배열 S와 키 x가 주어졌을 때, x=S[i]가 되는 첨자 i를 찾는 것 없다면 오류로 처리한다. 결론 : 이분 검색 알고리즘보다 효율적인 알고리즘은 없다. 이진 검색 상태 공간 트리 순차 검색은 답이없다.

  • 실버1 : 동적 계획법 문제이다. 생각 전형적인 dp 문제이다. 다만 이 문제는, 경로를 추적해야 한다는 점에서 조금 다르다. 경로를 추적하는 방법으로는 dp를 미리 구해놓고, 이것을 역으로 추적하여 구하는 방법이 가장 간단하다.

  • 실버5 : 동적 계획법 문제이다. 생각 생각 보다 힘들게 푼 문제이다. n이 50000이고, 시간 제한이 0.5초이기 때문에 완전탐색으로 풀면 힘들 것이라 생각했다. 그래서 동적 계획법 방법으로 풀이를 채택했다. 이 문제는 동전 문제와 비슷하게 생각해야 한다.

  • 골드4 : 이분 탐색 문제이다. 생각 어려웠다. 여러가지 배열이 섞이고, 계산하는 방법을 생각하지 못했다. 이 문제를 풀면서 배운 것은, 정말 컴퓨터처럼(센다..) 생각해야 된다는 것.

  • 골드5 : 동적계획법 문제이다.

  • 실버1 : 동적계획법 문제이다. 생각 동적 계획법하면 유명한 문제이다. 나는 동적 계획법을 풀 때 보통 두가지 방법을 많이 사용한다. 상태에 대한 정의와 점화식을 직관으로 때린다. (감..) 순차적으로 완전 탐색 방법으로 그려본다.

alias

1건의 항목

alignment

1건의 항목

allocation

3건의 항목

alpha-test

1건의 항목

  • 왜 필요할까? V-Diagram 왜 단계적인 테스트가 필요할까? 문제가 발생했을 때, 시간, 의사소통 등의 비용을 줄이기 위함 요구사항 만족함을 증명하는 것 어떤 종류가 있을까? 단위 테스트 테스트가 가능한 최소 단위로 나누어진 모듈, 프로그램, 객체, 클래스 내에서 결함을 찾고 기능을 검증 독립적으로 수행됨 프로그래머가 주도함 코드를 중심으로 수행 이러한 구분은, 어떤 Task냐에 따라 구분이 달라진다.

alu

1건의 항목

ansi

1건의 항목

api

1건의 항목

app-slicing

1건의 항목

  • 앱 배포에 있어 꼭 알아야 하는 App Thining중 App Slicing에 대해 알아본다. 해당글은 WWDC 2015를 기준으로 한다. App Distribution Today 이전의 App 배포 방법은 다음과 같은 방식으로 수행되었다.

app-thinning

2건의 항목

  • 앱 배포에 있어 꼭 알아야 하는 App Thining중 App Slicing에 대해 알아본다. 해당글은 WWDC 2015를 기준으로 한다. App Distribution Today 이전의 App 배포 방법은 다음과 같은 방식으로 수행되었다.

  • 앱 배포를 하다보면 bitcode enabled라는 flag가 있다. 이녀석을 체크하냐 마냐에 따라서 빌드 속도가 상당히 차이나는 것을 보았는데 도대체 왜 그런 건지 이해해보려 한다. bitcode 다음은 Distrubution Options에서 찾은 설명이다.

app-transport-security

1건의 항목

appdelegate

1건의 항목

application

3건의 항목

application-layer

1건의 항목

application-structure

1건의 항목

applicative-functor

2건의 항목

apprenticeship

1건의 항목

  • 멘토링, 수습기간, 장인 정신에 대해 고찰해본다. 수습기간 소프트웨어 역시 실무 훈련기간이 있어야 한다. 왜 프로그래머는 학교만 졸업하면 가능할 것이라 생각하는가? 소프트웨어는 일상생활에 너무나도 많은 곳에 들어가 있다. 합리적 훈련과 감독을 받는 실습기간은 필요하다.

approval

1건의 항목

  • 언제 “예”라고 말해야 하는가? 약속을 뜻하는 말 말하고 진심으로 실행하라. Commitment(약속)은 세단계로 구분된다. 하겠다고 말한다. 진심을 담는다. 실제로 실행한다. 하지만 이를 실제로 지키기는 어렵다.

appstore

1건의 항목

  • 사용자에게 나의 상품을 내놓을 때, 얼마나 메타 데이터가 중요한지 생각해보는 계기였습니다. 초기 배포 당시, 메타데이터를 제대로 작성하지 않아 유저가 해당 앱에 대한 정보를 알지 못한다는 의견을 받았습니다.

arc

1건의 항목

architecture

11건의 항목 처음 10개의 태그

  • 이제 리팩터링 전반에 적용되는 원칙 몇 가지를 살펴보자. 리팩터링 정의 리팩터링이라는 개발 용어는 굉장히 두루뭉실한 의미로 통용된다. (많은 개발 용어가 그렇다) 하지만 이를 엄격하게 정의해야 유용하다.

  • 코드가 어느 환경에 돌아가는지 아는 것은 중요하다. 어떤 cpu아키텍쳐가 있고, 차이점이 무엇인지에 대해서 알아보자. 해당 글은 계속해서 추가해 나갈 예정이다.

  • 이러한 문제에 대해 가장 쉬운 해결 방법은 서버쪽에서 Ready 상태일 때, client로 정보를 밀어넣어주는 것이다. 이렇게 처리할 경우, 이제 정보 제공 Event는 Server로부터 시작된다고 할 수 있다.

  • 특정 데이터를 서버로부터 받고 싶다고 하자. 일반적인 REST API를 사용한다면 서버에 GET 요청을 하고, 그 결과로 json 데이터를 받을 것이다. 이렇게 일반적으로 가장 많이 사용하는 Server 통신 방식이 Request-Driven 방식이라 생각하면 된다.

  • 많은 수의 엔지니어와 nested states를 관리하기 위한 mobile app Cross-platform Architecture RIBs의 이름은 Router, Interactor, Builder의 약자이다.

  • 간단한 구조 일단 RIB의 구조는 위와 같다.

  • 그럼 이번에는 Router에서 하위 RIB의 build()를 호출할 때 어떠한 순서로 진행되는지 알아보자. 먼저, 동적 의존성이 있을 경우 component를 생성해준다.

  • 일단 해당 내용을 다 따라가면서 쳐보는 것을 추천한다. 아무래도 framework라고 공식 문서에 적혀있는 것으로 보아 진입장벽이 있을 것으로 보인다. 오히려 핵심 아이디어만 가져와서 사용하고, 유연하게 적용하는 것이 좋지 않을까하는 생각이다.

  • iOS 내부 디바이스에 다양한 CPU 제품이 들어감에 따라 이를 대응할 수 있도록 Project setting을 해야한다. 내부 디바이스들이 어떤 특징을 가지고 있는지 알아보자. 이번 글은 CPU Architecture 글을 읽고 오면 좀 더 편하다.

  • 실제 컴파일, 링킹이 끝난 뒤의 결과물에 대해서는 잘 모르는 것 같다. 실행 파일은 어떻게 구성되어 있는 걸까? 우리가 사용하는 프로그램들은, 바이너리화되어 있는 파일의 형태로 존재한다. 그런데, 이 실행파일의 형태는 OS에 따라 다른 형태로 존재한다.

archive

1건의 항목

  • 이전 블로그와 노트 자료를 보관하는 공간입니다. 현재 사이트의 중심은 Concepts, Entities, Comparisons로 이어지는 공개 지식 그래프입니다.

area-vector

1건의 항목

  • STereoLithography 혹은 Standard Triangulated Language 3차원 데이터를 표현하는 국제 표준 형식중 하나. 복잡한 3차원 폴리곤을 삼각형의 조합으로 만들어 곡면을 표현한다.

argument

5건의 항목

  • 값 someFunction(a: 3, b: 5) 외부에서 해당 함수를 호출했다고 하자. 여기서 3, 5가 argument이다. 즉 넘겨진 값 자체를 말한다. 다른말로는 전달인자라 부른다.

  • 함수의 일반적인 개념 사용자가 필요한 함수를 만들어 쓰자. 프로그램 실행 흐름 프로그램 실행 중에 함수명과 동일한 부분을 만나면, 해당함수로 이동 함수실행 main() 함수로 다시 돌아옴 함수의 장점 동일한 기능을 여러번 작성할 필요가 없다.

  • 함수의 기본 모양 수학에서의 함수와 같이, input , output 이 있고, input 이 들어갔을 때, 어떤 작업을 한 뒤, output 을 내보내는 방식으로 작동한다.

  • 일급 함수 parameter로 사용가능 return 값으로 사용가능 익명함수 argument label 호출하는 쪽에서 사용하는 이름 parameter name function 안에서 사용하는 이름 Variadic parameters 0개 이상의 특별한 타입을 나열해서 파라미터로 넘길 수 있음 ...을 넣어서 사용 이렇게 선언된 경우 함수안에서 해당 type의 Array로 사용할 수 있음 func sum(values: Int…) -> Int { var result = 0 for value in values { result +=...

  • Parameters 문서에 제공할만한 매개변수 이름을 선택하자. 파라미터 이름을 숨겨 보이지 않는 경우에도 설명에 있어서는 중요하다.

argument-label

1건의 항목

  • 일급 함수 parameter로 사용가능 return 값으로 사용가능 익명함수 argument label 호출하는 쪽에서 사용하는 이름 parameter name function 안에서 사용하는 이름 Variadic parameters 0개 이상의 특별한 타입을 나열해서 파라미터로 넘길 수 있음 ...을 넣어서 사용 이렇게 선언된 경우 함수안에서 해당 type의 Array로 사용할 수 있음 func sum(values: Int…) -> Int { var result = 0 for value in values { result +=...

arithmetic-mean

1건의 항목

array

6건의 항목

  • 1D Array & Slicing # www.tensorflow.org/api_guides/python/array_ops import tensorflow as tf import numpy as np import pprint tf.set_random_seed(777) # for reproducibility pp = pprint.PrettyPrinter(indent=4) sess = tf.InteractiveSession() t = np.array([0., 1., 2., 3., 4., 5., 6.]) pp.pprint(t) pr...

  • 동일한 종류, 동일한 자료형의 데이터를 메모리에 일련의 구조화된 집단으로 구성한 것 배열을 사용하지 않는다면 각각의 값에 따라 모두 변수선언을 해야할 것 선언 자료형 배열명[배열 크기]; int score[10] int 형 변수 1개의 메모리 크기가 4byte score[10]같은 경우 40바이트 index는 0번 부터 시작 초기화 int a[3]; //선언 a[0] = 10; a[1] = 15; a[2] = 20; int a[3]= {10, 15, 20}; int a[3] = {10, 15, 20, 30}; // 오류 // 원소...

  • 문자배열 char 형 문자를 여러 개 모아놓은 문자 집합 문자 : 작은 따옴표 ’ ’ 문자열 : 큰 따옴표 ” ” ‘\0’ (NULL) : 문자열 끝에 항상 문자코드 ‘\0’을 덧붙여야 함 char str[5] = {'A', 'B', 'C', 'D', '\0'}; // 옳은 선언 char str[4] = {'A', 'B', 'C', 'D'} // 잘못된 선언 char str...

  • What is Array? 직접적으로 값을 순차적으로 매핑한다. C언어에서 오래된 기술이고, 객체가 아니다.

  • Value Type 다른 변수에 대입하면 복사됨 argument로 넘겨도 복사됨 argument로 collection을 넘겨서 변화주면 원하는 결과를 얻을 수 없음 Objective-C의 경우 가능 Array 동일한 Type의 값을 저장할 수 있는 Ordered List 동일한 값이 다른 위치에서 반복적으로 낭로 수 있음 Foundation의 NSArray와 bridge 표현 let array: Array<SomeType>() let array: [SomeType] let array = [Int]() let array ...

  • 인덱스로 Array 아이템을 탐색하다보면 항상 마주하는 것이 있다. Fatal error: Index out of range. 잘못하면 런타임에 애플리케이션이 바로 죽어버리기 마련이다. 아무리 염두에 둔다하더라도 우리는 사람인 이상 실수를 하기 마련이다.

ascii

3건의 항목

  • 컴퓨터가 모든 것을 숫자로 다루는 방식을 알아보자. 최호성님의 유튜브 강의를 보며 기본적인 컴퓨터 구조를 이해하고 정리하자. 컴퓨터로 글자를 나타내는 방법 ASCII Code 숫자와 글자에 대한 함수관계를 정의한다.

  • 네트워크 공부를 하다보니, 인코딩이라는 것에 대해 제대로 이해할 필요가 있다고 생각했다. 왜 필요한지, 어떻게 사용하는지에 대해서 이해해보는 포스팅이다.

  • 자료형 프로그램에서 선언된 변수들이 기억 공간에서 어떻게 저장되고 처리되어야 할지, 컴파일러에게 알려줌 종류 정수형 실수형 문자형 사용자 정의 자료형 정수형 소수점이 없는 숫자 음의 정수, 0 , 양의 정수 오버플로우(overflow) 데이터 허용 범위를 넘는 값을 변수에 저장할 때, 의도한 값이 아닌 다른 값이 저장되는 것 #include <stdio.h> int main(void) { short a = 32767, b=2, c; unsigned short d; c = a+b; d = a+b; printf("c...

assembly

1건의 항목

assert

2건의 항목

  • 지난 10년 동안 우리 분야는 눈부신 성장을 이뤘다. 97년도만 해도 TDD라는 개념을 아무도 몰랐다. 그 당시 단위 테스트는 프로그램이 돌아가는지 확인하는 일회성 코드에 불과했다.

  • Test라는 과정은 사실 공학 어디에서든 등장하는 개념이다. 작업에 의존도가 있고, 복잡한 과정으로 넘어갈 수록 이전 단계의 오류는 치명적이기 때문이다. 이를 관리하는 방법이 Test라 할 수 있다. 소프트웨어에서 역시 이러한 개념이 적용된다.

associated-type

3건의 항목

async

6건의 항목

  • 무심코 사용하는 많은 비동기 함수들은 사실 변화의 과정을 겪은 결과들이다. 네트워크 I/O API가 어떻게 변화되어 왔는지 알아보자. 한눈에 보기 network API를 사용하다보면 자연스레 머리에 이런 그림이 떠오른다.

  • Swift 5.5에서 소개된 Async/Await에 대해 공부해본다. 비동기 처리가 필요한 이유 thumbnail을 fetch하는 method가 있다고 하자.

  • What is AsyncSequence 용량이 좀 큰 csv 데이터를 받는다고 하자. 만약 해당 파일을 모두 받은 뒤에 데이터를 처리한다고 한다면, 오랜 시간 뒤에나 가능할 것이다. 여기서 asyncSequence를 사용하면 굉장히 반응성있는 결과를 낼 수 있다.

  • AsyncSequence를 공부하다 후반에 나온 AsyncStream을 이해하지 못해 문서를 읽어본다. AsyncStream 이전 글에서 AsyncSequence를 Custom하게 만드는 방법까지 알아보았다.

  • 앞에서는 Swift concurrency가 어떻게 동작하는지 확인했다. 이번에는 Swift concurrency를 채택할 때 주의해야 하는점, 그리고 Actor를 통한 Synchronization에 대해 알아보자.

  • Test라는 과정은 사실 공학 어디에서든 등장하는 개념이다. 작업에 의존도가 있고, 복잡한 과정으로 넘어갈 수록 이전 단계의 오류는 치명적이기 때문이다. 이를 관리하는 방법이 Test라 할 수 있다. 소프트웨어에서 역시 이러한 개념이 적용된다.

async-let

1건의 항목

atomicity

2건의 항목

  • 최호성님의 유튜브 강의를 보며 기본적인 컴퓨터 구조를 이해하고 정리하자. PC 조립 과정 보며 구조 이해하기 컴퓨터 하드웨어 구성 요약 다나와 다나와 이곳에 가면 컴퓨터 용어에 대한 간단한 설명들을 쉽게 알 수 있다. 컴퓨터란? CPU가 가장 중요하다.

  • 쪼개어 나눌 수 없는 연속된 일 어떤 일을 최대한 쪼갰을 때의 가장 작은 단위의 행위 원자성은 병렬성을 가지는 상태에서 동기화 라는 작업이 중요하다.

authentication

1건의 항목

  • HTTP에서 상태가 필요한 이유 로그인이 되게 하고 싶다. 쇼핑몰 로그인이 아니어도 카트 목록을 기억하게 하고 싶다. 해결 방법 Fat URL - URL에 상태 정보를 모두 집어 넣기 - URL을 파싱해서, 사용자의 상태를 확인한다.

auto-layout

1건의 항목

automatic-reference-counting

2건의 항목

automation

1건의 항목

  • 왜 필요한가? 주기적인 포맷이 필요하다는 것을 느꼈다. 7년동안 정리를 안하다보니 나도 스트레스를 받더라. 그럴 때마다 기존에 사용하는 환경을 다시 구축하는게 너무나 시간낭비고 하기 싫었다.

autoreleasepool

1건의 항목

avfoundation

1건의 항목

avl-tree

1건의 항목

  • 탐색하는 방법에 대해 알아보자. 검색 문제 n개의 키를 가진 배열 S와 키 x가 주어졌을 때, x=S[i]가 되는 첨자 i를 찾는 것 없다면 오류로 처리한다. 결론 : 이분 검색 알고리즘보다 효율적인 알고리즘은 없다. 이진 검색 상태 공간 트리 순차 검색은 답이없다.

await

2건의 항목

axis

1건의 항목

  • 1D Array & Slicing # www.tensorflow.org/api_guides/python/array_ops import tensorflow as tf import numpy as np import pprint tf.set_random_seed(777) # for reproducibility pp = pprint.PrettyPrinter(indent=4) sess = tf.InteractiveSession() t = np.array([0., 1., 2., 3., 4., 5., 6.]) pp.pprint(t) pr...

b-tree

1건의 항목

  • 탐색하는 방법에 대해 알아보자. 검색 문제 n개의 키를 가진 배열 S와 키 x가 주어졌을 때, x=S[i]가 되는 첨자 i를 찾는 것 없다면 오류로 처리한다. 결론 : 이분 검색 알고리즘보다 효율적인 알고리즘은 없다. 이진 검색 상태 공간 트리 순차 검색은 답이없다.

back-propagation

2건의 항목

back-tracking

2건의 항목

backend

1건의 항목

  • 프록시란? 대리 응답 프록시(proxy)는 “대리”라는 뜻이다. 그렇다면 어떠한 경우에서 이러한 대리의 개념이 필요할까? 보통은 보안상의 이유로 직접 통신하는 것이 문제가 발생할 경우 이런 방식을 사용한다.

bandwidth

2건의 항목

  • 수도관의 크기 결국 데이터는 흐름이다. 그렇기 때문에 어떤 관을 따라간다고 생각할 수 있다. 이 때 관의 지름이 대역폭이다. 한번에 보낼 수 있는 데이터의 양이라 생각하면 된다. 이 크기가 클수록 많은 데이터를 초 당 전송할 수 있는 양이 늘어난다.

  • 한번에 전송할 데이터의 크기 편지를 내가 썼다. 그 편지를 누군가한테 보내는데, 글자하나하나를 보내지 않는다. 이 때 편지는 우체부 아저씨가 누군가한테 배달하는 단위가 된다. 이와 같은 개념이 패킷이다. 패킷은 데이터를 보내는 데 있어 발생하는 단위이다.

bank-account-problem

3건의 항목

base58

1건의 항목

base64

3건의 항목

  • Base64에서 URL에서 사용하는 문자열을 제외한 Encoding 방식 +, /, = 가 URL에서 사용하는 문자임 : 띄어쓰기, / : 경로구분자, = : name과 value사이에 쓰는 기호 (Query) 이에 아래와 같이 문자를 변경함 Reference RFC4648 .

  • 이진 데이터를 문자코드에 영향을 받지 않는 공통 ASCII 문자들로만 이루어진 일련의 문자열로 바꾸는 인코딩 방식 Base64 == 64개 값을 하나의 데이터로 인코딩한다. == 6개의 비트 2^6 = 64 를 인코딩한다. Reference RFC4648 .

  • 네트워크 공부를 하다보니, 인코딩이라는 것에 대해 제대로 이해할 필요가 있다고 생각했다. 왜 필요한지, 어떻게 사용하는지에 대해서 이해해보는 포스팅이다.

basic-refactoring

11건의 항목 처음 10개의 태그

batch

1건의 항목

  • 일괄처리부터 시분할시스템, 최근의 고급운영체제, 인터럽트에 기반한 현대 운영체제까지 변천 역사를 알아본다. 1. 초기 컴퓨터 노가다, 사람 손도 많이가, 장치도 엄청커, 비싸기도 비싸 운영체제는 컴퓨터가 발전하면서 같이 발전하게 되었다.

bayesian-probability

1건의 항목

behavioral-patterns

11건의 항목 처음 10개의 태그

beta-test

1건의 항목

  • 왜 필요할까? V-Diagram 왜 단계적인 테스트가 필요할까? 문제가 발생했을 때, 시간, 의사소통 등의 비용을 줄이기 위함 요구사항 만족함을 증명하는 것 어떤 종류가 있을까? 단위 테스트 테스트가 가능한 최소 단위로 나누어진 모듈, 프로그램, 객체, 클래스 내에서 결함을 찾고 기능을 검증 독립적으로 수행됨 프로그래머가 주도함 코드를 중심으로 수행 이러한 구분은, 어떤 Task냐에 따라 구분이 달라진다.

bfs

17건의 항목 처음 10개의 태그

big-endian

1건의 항목

binary

2건의 항목

  • 컴퓨터가 모든 것을 숫자로 다루는 방식을 알아보자. 최호성님의 유튜브 강의를 보며 기본적인 컴퓨터 구조를 이해하고 정리하자. 컴퓨터로 글자를 나타내는 방법 ASCII Code 숫자와 글자에 대한 함수관계를 정의한다.

  • 실제 컴파일, 링킹이 끝난 뒤의 결과물에 대해서는 잘 모르는 것 같다. 실행 파일은 어떻게 구성되어 있는 걸까? 우리가 사용하는 프로그램들은, 바이너리화되어 있는 파일의 형태로 존재한다. 그런데, 이 실행파일의 형태는 OS에 따라 다른 형태로 존재한다.

binary-expansion

1건의 항목

binary-search

8건의 항목

binary-tree

1건의 항목

  • 탐색하는 방법에 대해 알아보자. 검색 문제 n개의 키를 가진 배열 S와 키 x가 주어졌을 때, x=S[i]가 되는 첨자 i를 찾는 것 없다면 오류로 처리한다. 결론 : 이분 검색 알고리즘보다 효율적인 알고리즘은 없다. 이진 검색 상태 공간 트리 순차 검색은 답이없다.

binding

3건의 항목

  • 다형성은 무엇인가? 왜 중요한가? Polymorphism poly + morph + ism: 다양한 + 변하다 + 상태 = 다양한 형태로 변할 수 있는 능력 많은 사람들이 OOP의 핵심이라 여기는 특징 같은 지시를 내렸는데 다른 종류의 개체가 동작을 달리 하는 것 어떤 함수 구현이 실행될지 실행중에 결정된다.

  • Early Binding과 Late Binding은 성능에서 어떤 차이가 나는가? 실제로는 어떻게 사용하는가? 알게 모르게 당연하게 사용하고 있는 다형적 메서드는 무엇이 있을까? 이른 바인딩 vs.

  • Static Binding (정적 바인딩) #include <iostream> #include <string> #include <vector> using namespace std; class Base{ public: void f(){cout << "Base::f()" << endl;} virtual void vf() {cout << "Base::vf()" << endl;} }; class Derived:public Base...

bit

3건의 항목

  • Bit와 진법 변환에 대해 알아본다. 최호성님의 유튜브 강의를 보며 기본적인 컴퓨터 구조를 이해하고 정리하자. 4Bit 4Bit로는 16진수 한자리를 표현할 수 있다. 16진수는 0F(015) 까지 한 자리에 쓴다.

  • 비트 0, 1 비트가 모여 데이터 구성 비트를 주고 받는 것이 통신의 본질 바이트 = 8비트 워드 = 1바이트가 2개 (16비트) 데이터가 어떻게 전기 신호로 전달? 데이터가 전달되지 않을 때 전기적 신호가 존재 Clock 신호 CPU는 해당 신호에 맞춰 일을 처리한다.

  • 코드가 어느 환경에 돌아가는지 아는 것은 중요하다. 어떤 cpu아키텍쳐가 있고, 차이점이 무엇인지에 대해서 알아보자. 해당 글은 계속해서 추가해 나갈 예정이다.

bitcode

2건의 항목

  • 앱 배포를 하다보면 bitcode enabled라는 flag가 있다. 이녀석을 체크하냐 마냐에 따라서 빌드 속도가 상당히 차이나는 것을 보았는데 도대체 왜 그런 건지 이해해보려 한다. bitcode 다음은 Distrubution Options에서 찾은 설명이다.

  • 앱스토어에서 크래시가 나서 Reject을 당하면 Crash Report를 함께 준다. 해당 파일을 열어보면 이상한 숫자들만 가득하다. dSYM debug symbol file App을 Release한 뒤에 Crash를 진단할 수 있게 도와주는 파일이다.

bitcoin

15건의 항목 처음 10개의 태그

bitmask

2건의 항목

  • 골드1 : 동적 계획법 문제이다. 생각 dp의 정의는 간단하게 생각할 수 있다. 특정한 상태의 발전소로 오는 방법은 몇가지로 정해지기 때문이다. 그래서 정의를 잡으면 다음과 같다.

  • 연산자 & 피연산자 연산자 : 산술연산자인 +, - , * , / 와 같이 이미 정의된 연산을 수행하는 기호 피연산자 : 연산에 참여하는 변수나 값 연산자의 종류 대입 연산자 일반적 수학에서 사용하는 기호 LHS와 RHS가 다른의미를 가지고 있다.

blocking

2건의 항목

blog

1건의 항목

  • 동기 다른 블로그 호스팅 서비스(Tistory, Velog)를 사용하면, 내가 온전히 관리하지 못한다는 측면에서 아쉬움이 있었다. Github Page를 Jekyll을 사용해 포스팅해보았지만, 1000개가 넘어가는 시점부터 너무 느려 사용하기가 꺼려졌다.

blur

2건의 항목

  • 불투명한 뷰는 어떻게 만드는거지? 그게 바로 이거였다. Materials iOS는 깊이감을 느낄 수 있도록 하는 반투명 효과를 제공한다. Blur Effect 혹은 Material으로 부르는 친구다.

  • 업무 하면서 Shadow에 대해 알게된 내용을 정리한다.

boj

113건의 항목 처음 10개의 태그

boost-camp

13건의 항목 처음 10개의 태그

  • 사용자 입력에 대한 Test, 단방향 흐름, 역할과 책임을 고려한 MVVM 구조를 채택하였습니다. 기획 분석 화면 이동이 복잡하지 않다. 사용자 입력에 대해 처리할 부분이 있어, 입력 테스트가 필요하다. 목표 단방향 흐름의 구조를 갖는 아키텍쳐를 사용한다.

  • 다양한 의존성 주입 방법을 고려하고, 최종적으로 ViewController에 생성자 주입 방식을 통해 컴파일 타임에 주입 여부를 판단할 수 있도록 변경하였습니다. 초기에 작성한 의존성 주입이라고 착각한 코드입니다.

  • 프로젝트의 외부 라이브러리 의존은 줄일 수록 빠른 대응이 가능한 서비스를 만들 수 있다 판단했습니다. 프로젝트를 진행하기에 앞서, 라이브러리를 어느수준까지 사용하는 것을 허용할 것인지에 대해 고민했습니다.

  • 서로 다른 화면을 유기적으로 작업하고자, 충돌 문제가 다수 발생하는 스토리보드 사용을 하지 않았습니다. 프로젝트를 진행하기 전, 스토리보드 사용 여부에 대해 의사결정을 했습니다. 결과적으로 스토리보드 사용을 하지 않았는데, 그 이유는 다음과 같습니다.

  • Fruit Card Game OnBan StarBoost DogFeed Escaper .

  • 사용자에게 나의 상품을 내놓을 때, 얼마나 메타 데이터가 중요한지 생각해보는 계기였습니다. 초기 배포 당시, 메타데이터를 제대로 작성하지 않아 유저가 해당 앱에 대한 정보를 알지 못한다는 의견을 받았습니다.

  • 개밥줬어? Stack: Firebase, MVC, UIKit, iOS Team: 팀 프로젝트 Role: 개발 진행 기간: 2021/09/23 → 2021/09/24 About: 우리집 강아지 생존권을 확립하는 식사 여부 확인 애플리케이션 개요 GitHub - wansook0316/bookathon_G: 개밥줬어? 기획의도 개밥줬어? 모두가 바쁜 요즘 우리집 강아지 밥은 누가 챙겨?! 이제 편하게 앱으로 확인하세요 ✏ 한줄소개 우리집 강아지 생존권을 확립하는 식사 여부 확인 애플리케이션 💻 서비스 가족 구성원이 강아지 밥을 주었는지...

  • 앱 설명 방탈출, 이제는 기록하고 경쟁하세요! 방탈출 카페 위치 조회, 방탈출 정보 기록 및 랭크 확인 기능 제공 AppStore: ‎Escaper 방탈출 Escaper Keynote 소개자료 WIKI 사용 스킬 MVVM Firebase CoreLocation MapKit 경험 한 것 사용자의 데이터 과금을 우려하여 ImageCache를 직접 구현하여 사용하였습니다.

  • 과일 카드 게임 Stack: MVC, UIKit, XCTest, iOS Team: 1인 진행 기간: 2021/08/30 → 2021/09/10 About: MVC 패턴에서 Model을 설계하는 것을 연습하고, 이를 View에 보여주는 간단한 카드게임을 만들었습니다.

  • 비동기 네트워크 처리에 있어 순서대로 이미지 순서가 보장되어야 하는 문제를 해결했습니다. 방탈출 테마 세부페이지에서는 해당 방을 방문한 유저들의 Top 5 랭킹이 보여지도록 하였습니다.

booting

1건의 항목

  • 운영체제에 대한 정의, 역할에 대해 알아본다. 운영체제는 사용자가 컴퓨터를 사용하기 위해 필요한 소프트웨어이다. 일반적으로 사용하는 모든 프로그램은 운영체제에서 그 자원을 관리한다. 목적 운영체제를 사용하는 가장 큰 목적은 하드웨어의 관리이다.

border

1건의 항목

  • Border는 바깥으로 그려질까 안쪽으로 그려질까? 오해와 삽질에 대해 정리해본다. Answer innerborder를 그리기 위해서는 현재 표현되는 frame을 border width만큼 줄여버리면 된다.

bottom-inset

1건의 항목

boundary

3건의 항목

  • 그래서 예외는 어떻게 처리하는 것이 좋은걸까? 오류 상황 예외 상황과 오류 상황을 다른 의미로 사용할 것 오류 상황은 error condition을 말함 이 오류 상황을 처리하는 방법 중에 예외가 있음 오류 상황은 예측 가능한 상황을 의미함 프로그램 실행 중에 기본적으로는 일어나지 않음 하지만 일어날 수 있는 일 따라서 이러한 상황을 처리하는 코드는 프로그램 기능의 일부임 프로그래머가 이를 예측하지 못했다면? 버그 오류 상황을 처리하는 4가지 방법 무시 곧바로 크래시 일단은 작동하는데 언젠가는 크래시 안정적이지 못한 상태로 계속 동...

  • 리팩토링에 있어 테스트 코드는 왜 중요할까? 자가 테스트 코드의 가치 프로그래머들의 대부분의 시간은 코드치는 시간이 아니다. 현상황 파악 / 설계 고민 / 디버깅에 많은 시간을 쓴다. 디버깅의 경우 수정자체는 금방 끝난다. 다만 찾는데 고통스럽다.

  • 우리는 시스템에 들어가는 모든 코드를 보통 직접 개발하지 않는다. 외부 패키지 구입, 오픈소스, 사내 팀의 제공 컴포넌트 사용 등 다양한 방식으로 외부 코드를 사용한다. 이 외부 코드를 우리 코드에 깔끔하게 통합하는 것은 꽤나 중요하다.

bounded-buffer

1건의 항목

bounding-box

1건의 항목

bounds

2건의 항목

  • 맨날 헷갈리는 이것. 오늘은 뽑아버리겠다. Frame Super view의 좌표계를 기준으로 했을 때 본인의 좌표계를 말한다. 우리가 위치를 표시하기 위해서는 기준 좌표계가 있어야 한다.

  • View 화면을 구성하는데 기본이 되는 class NSObject를 상속한 UIResponder를 상속해서 구성됨 CustomView는 UIView를 상속함 UIImageView, UILable, UIScrollView… 가능한 것들 Drawing Animation Layout subview 관리 Event Handling UIResponder 상속하기 때문에, touch와 같은 event에 반응 가능 gesture 추가 초기화 형태 // code init(frame:) init() // default parameter = CGRe...

box-plot

1건의 항목

  • 데이터를 설명하는 상대위치와 이를 나타내는 box plot에 대해 알아본다. 상대위치 중앙값이 50%에 위치하는 분위수라면, 이에 대응하는 다양한 분위수가 존재한다. 백분위수 분포를 100개로 쪼개어 생각하는 것이다.

branch

2건의 항목

break

2건의 항목

  • 기존에 작업한 글이 있어 링크로 대체한다. 05. Control Flow 06. Loop Part. 01 07. Loop Part. 02 iomanip library 기본적으로 iostream 라이브러리로 출력을 하게되면, 왼쪽 정렬이다.

  • 컴퓨터를 통하여 문제를 해결하는 가장 중요한 이유 중에는 계속적으로 반복하는 작업을 컴퓨터가 대신 처리하여 주는 것이다. 이런 기능을 반복문이라고 하며, 대부분의 프로그래밍 언어는 다양한 반복문을 제공한다.

bridge

1건의 항목

  • GoF의 디자인 패턴, 가교 패턴에 대해 알아본다. 해당 글은, 다음의 코드를 기반으로 이해하는 것이 편리합니다. 핵심 요약 기능과 구현의 분리를 통해 시스템의 확장성과 유지보수성을 높이는 패턴 기존 시스템에 새로운 기능을 추가해도 어떠한 변경도 없이 추가가 가능하다.

brute-force

8건의 항목

buffer

1건의 항목

build-configuration

2건의 항목

  • 이전 글에서 Scheme에 대해서 알아보았다. 하지만 실제로 어떻게 사용하는 건지 잘 모른다. 이번 글에서 알아보도록 하자. Scheme 알아보기 프로젝트를 하나 만들어주고, Product -> Scheme -> Edit Scheme 들어가자.

  • Target Xcode의 빌드를 통해 생성된 최종 Product Framework Application 등등 일반적으로 하나의 모듈 또는 앱을 의미한다. 보통 프로젝트 생성시 하나만 생성되나, 목적에 따라 하나의 프로젝트에 여러개의 Target을 생성할 수 있다.

builder

5건의 항목

bundle

3건의 항목

bundle-identifier

1건의 항목

bus

1건의 항목

busy-waiting

1건의 항목

byte

1건의 항목

  • Bit와 진법 변환에 대해 알아본다. 최호성님의 유튜브 강의를 보며 기본적인 컴퓨터 구조를 이해하고 정리하자. 4Bit 4Bit로는 16진수 한자리를 표현할 수 있다. 16진수는 0F(015) 까지 한 자리에 쓴다.

byte-ordering

1건의 항목

c

14건의 항목 처음 10개의 태그

  • 왜 C를 배워야 하는가? C 표준 C89/ANSI-C 최초의 C 표준 (89년) 여전히 많은 코드가 이 표준을 사용 임베디드 시스템 이걸 가장 많이 살펴볼 것임 C99 많은 내용 추가 인라인 함수 새로운 헤더파일들 새로운 자료형 한 줄짜리 주석 유연한 배열 멤버 가변 길이 배열 보다 안전한 I/O 함수 C11 C99 대체 유니코드 지원 이름 없는 구조체 및 공용체 제네릭 표현식 표준화된 멀티스레딩 지원 C18 신규 기능 없음 C11의 결함만 수정 include? 현대에서 많이 사용하는 import와 같은 구문 다른 파일에 구현된 함...

  • 절차적 언어 순수한 절차적 언어 즉, 데이터보다 프로세스에 중점이 맞춰져 있다. 반대로 말하면 개체지향 언어의 경우 “데이터”에 중점을 맞춘다는 뜻. 반드시 나쁜 것은 아님 그냥 매뉴얼에 적힌 내용을 순서대로 따라하는 느낌.

  • Primitive Types char short int long float double long double unsigned, signed 부호 여부에 따라 자료형 앞에 적어준다.

  • 프로그램 실행 과정 graph LR A[원시함수 작성] --> |Compiler|B(오브젝트 파일 생성) B-->|Linker|C[실행파일 생성] Compiler : 고급 언어로 작성된 파일을 기계어로 번역해줌.

  • 자료형 프로그램에서 선언된 변수들이 기억 공간에서 어떻게 저장되고 처리되어야 할지, 컴파일러에게 알려줌 종류 정수형 실수형 문자형 사용자 정의 자료형 정수형 소수점이 없는 숫자 음의 정수, 0 , 양의 정수 오버플로우(overflow) 데이터 허용 범위를 넘는 값을 변수에 저장할 때, 의도한 값이 아닌 다른 값이 저장되는 것 #include <stdio.h> int main(void) { short a = 32767, b=2, c; unsigned short d; c = a+b; d = a+b; printf("c...

  • 프로그래밍 사용자가 어떤 값을 컴퓨터에 넣고(입력) 처리한 결과를 사용자에게 다시 제공(출력)하는 것 graph LR; A[Input] --> B{Function} B --> C(Output) 입출력 함수 표준 입출력 함수: 키보드와 모니터를 통해 자료를 입출력 파일 입출력 함수: 특정한 파일을 통해 자료를 입출력 저급 입출력 함수: 운영체제 내, 시스템 호출을 통해 자료를 입출력 표준 입출력 함수 형식화된 입출력 printf() 함수 표준 출력 장치인 모니터로 자료를 출력 도스창에 실행결과를 표시할 때 사용 제어 문자열...

  • 연산자 & 피연산자 연산자 : 산술연산자인 +, - , * , / 와 같이 이미 정의된 연산을 수행하는 기호 피연산자 : 연산에 참여하는 변수나 값 연산자의 종류 대입 연산자 일반적 수학에서 사용하는 기호 LHS와 RHS가 다른의미를 가지고 있다.

  • 제어문 프로그램의 실행을 인위적으로 조절할 수 있는 문장 제어문의 종류 If 조건 연산자 유일하게 피연산자가 3개인 삼항 연산자 선택문(if)문과 같이 행동함 #include <stdio.h> int main() { int min, max; int x = 10, y = 20; max = (x>y) ? x : y; min = (x>y) ? y : x; printf("두 수 %d과 %d 중에 큰 수는 %d이다.\n", x, y, max); printf("두 수 %d과 %d 중에 작은 수는...

  • 반복문의 필요성 특정 명령을 반복적으로 사용해야 함 규칙적으로 반복하는 일 동일한 내용을 반복할 때 For 특정 문장을 일정한 횟수만큼 반복 시킬 때 사용 #include <stdio.h> int main() { int i, Sum = 0; for (i=1; i<=10; i++) Sum += i; printf("1부터 10까지의 합은 %d다.\n",Sum); return 0; } // 프로세스가 시작되었습니다.

  • Do ~ While 일단 Do 안에 있는 명령문을 실행하고 나중에 while문의 조건식 비교 적어도 한번은 명령문을 처리함 마지막에 세미콜론(;)을 반드시 추가해야 함 조건식을 검사하는 while(조건식)은 C 문장으로 여기기 때문 #include <stdio.h> int main() { int sum = 0; int number = 0; printf("1에서 10까지 합을 구합니다.\n"); do { number++; sum += number; } while(number<10); printf(&q...

c-standard

1건의 항목

  • 왜 C를 배워야 하는가? C 표준 C89/ANSI-C 최초의 C 표준 (89년) 여전히 많은 코드가 이 표준을 사용 임베디드 시스템 이걸 가장 많이 살펴볼 것임 C99 많은 내용 추가 인라인 함수 새로운 헤더파일들 새로운 자료형 한 줄짜리 주석 유연한 배열 멤버 가변 길이 배열 보다 안전한 I/O 함수 C11 C99 대체 유니코드 지원 이름 없는 구조체 및 공용체 제네릭 표현식 표준화된 멀티스레딩 지원 C18 신규 기능 없음 C11의 결함만 수정 include? 현대에서 많이 사용하는 import와 같은 구문 다른 파일에 구현된 함...

c4d

1건의 항목

cache

5건의 항목

  • 언제 사용할까? Conditional GET을 이용하여 트래픽은 줄일 수 있으나, Round Trip은 줄일 수 없다.

  • 앱 설명 방탈출, 이제는 기록하고 경쟁하세요! 방탈출 카페 위치 조회, 방탈출 정보 기록 및 랭크 확인 기능 제공 AppStore: ‎Escaper 방탈출 Escaper Keynote 소개자료 WIKI 사용 스킬 MVVM Firebase CoreLocation MapKit 경험 한 것 사용자의 데이터 과금을 우려하여 ImageCache를 직접 구현하여 사용하였습니다.

  • 비동기 네트워크 처리에 있어 순서대로 이미지 순서가 보장되어야 하는 문제를 해결했습니다. 방탈출 테마 세부페이지에서는 해당 방을 방문한 유저들의 Top 5 랭킹이 보여지도록 하였습니다.

  • 현재 프로젝트에 적합한 간단한 이미지 캐시를 구현하여 사용하였습니다. 기본에 임시로 작업한 이미지 캐시의 경우, 네트워크 요청후 디스크에 저장이 되는 구조로 제작하였습니다.

  • onBan Stack: Caching, MVP, Network, UIKit, UserDefault, iOS Team: 1인 Role: 개발 진행 기간: 2021/09/27 → 2021/10/08 About: 반찬을 주문할 수 있는 간단한 애플리케이션입니다.

call-by-reference

1건의 항목

  • 참조변수와 일반변수의 사용의 차이점을 알았다면, main 함수가 동작하는 도중 다른 함수를 호출할때, 그 함수의 인자 역시 두 종류가 있음을 알 수 있다. 마찬가지로 일반변수와, 참조변수를 사용할 수 있다.

call-by-value

1건의 항목

  • 참조변수와 일반변수의 사용의 차이점을 알았다면, main 함수가 동작하는 도중 다른 함수를 호출할때, 그 함수의 인자 역시 두 종류가 있음을 알 수 있다. 마찬가지로 일반변수와, 참조변수를 사용할 수 있다.

callback

1건의 항목

cancellable

1건의 항목

cancellation

1건의 항목

capex-cycle

2건의 항목

capsulation

8건의 항목

career

1건의 항목

  • 네이버의 대한민국 지도 서비스 중 iOS Application 제작 팀에서 근무 장소 및 교통 수단에 대응되는 다양한 타입의 데이터를 유지보수가 편하도록 다루는 작업 진행 레거시화 된 코드에 대해 모듈화 .

carriage-return

1건의 항목

  • Request-Line OR Status-Line [Header CRLF] CRLF [ Body ] Start Line Request Response Header 헤더 중 X가 붙은 경우, 커스텀 헤더임 Pragma: 옛날 캐시 정책 Deprecated Cache-Control: 캐시 정책인데, 기능이 추가된 것들 Connection: close, keep-alive 두 개의 옵션이 있음 Stateless Protocol HTTP는 상태가 없는 프로토콜이다.

cartisian-coordinate

2건의 항목

case-when

1건의 항목

category

5건의 항목

category-theory

7건의 항목

cauchy-riemann-equation

1건의 항목

causal-modeling

1건의 항목

  • 조건부 확률 P(A \mid B) = \frac{P(A \cap B)}{P(B)} 조건부 확률 P(A \mid B) 는 사건 B 가 발생했을 때 사건 A 가 발생할 확률 여기서 P(A \mid B) 는 “B가 주어졌을 때 A의 확률” P(A \mid B) : 사건 B 가 발생했을 때 사건 A 가 발생할 확률 P(A \cap B) : 사건 A 와 사건 B 가 동시에 발생할 확률 (즉, A 와 B 의 교집합의 확률) P(B) : 사건 B 가 발생할 확률 여기서, P(B) 는 B 가 발생할 확률이 0이 아닌 경우에만 정의.

cd

1건의 항목

  • DevOps란? 서비스 개발과 운영을 통합 왜 필요할까? 개발과 운영이 분리된 전통적 방식 개발팀, 운영팀 분리 되어 있음 개발팀에서 배포 파일을 운영팀에 전달 운영팀에서 배포 운영팀은 모니터링을 통해 개발팀에게 피드백 전달 이렇게 되는 경우 배포사이 개발팀과 운영팀의 커뮤니케이션 비용 증가 문제가 발생했을 때 현상/원인 파악이 어려움 서비스 개발자는 서비스 코드를 잘 알지만 운영 환경에 익숙하지 않음 시스템 운영자는 운영 환경에 익숙하지만 서비스 코드를 잘 모름 긴 주기 배포 하지만 각 분야 전문가가 배치되어 있어 보다 안전하다고...

central-limit-theorem

1건의 항목

  • 어떠한 모집단이더라도, 모집단의 평균이 \mu 이고, 분산이 \sigma^2 일 때, 임의추출된 표본의 표본 평균 \bar X 는 표본의 크기가 클 경우 정규분포를 따른다.

chain-of-responsibility

4건의 항목

chain-rule

1건의 항목

chamber

1건의 항목

  • 인쇄물 생성 중인 3D 프린터 내부의 공간을 의미한다. 온도를 유지, 인쇄물의 건조도를 제어, 인쇄물의 안정성과 질을 향상 일부 인쇄 재료(예: ABS)의 경우 챔버 내부의 온도와 습도를 조절하여 인쇄물의 수축을 방지하고, 더 많은 세부 사항을 유지할 수 있다.

char

3건의 항목

  • Primitive Types char short int long float double long double unsigned, signed 부호 여부에 따라 자료형 앞에 적어준다.

  • 자료형 프로그램에서 선언된 변수들이 기억 공간에서 어떻게 저장되고 처리되어야 할지, 컴파일러에게 알려줌 종류 정수형 실수형 문자형 사용자 정의 자료형 정수형 소수점이 없는 숫자 음의 정수, 0 , 양의 정수 오버플로우(overflow) 데이터 허용 범위를 넘는 값을 변수에 저장할 때, 의도한 값이 아닌 다른 값이 저장되는 것 #include <stdio.h> int main(void) { short a = 32767, b=2, c; unsigned short d; c = a+b; d = a+b; printf("c...

  • 문자배열 char 형 문자를 여러 개 모아놓은 문자 집합 문자 : 작은 따옴표 ’ ’ 문자열 : 큰 따옴표 ” ” ‘\0’ (NULL) : 문자열 끝에 항상 문자코드 ‘\0’을 덧붙여야 함 char str[5] = {'A', 'B', 'C', 'D', '\0'}; // 옳은 선언 char str[4] = {'A', 'B', 'C', 'D'} // 잘못된 선언 char str...

cheat-sheet

2건의 항목

  • 설치 brew install docker mac 용 도커 설치하기 Docker image download docker pull hugojuhel/notebook Docker Hub 에서 원하는 docker 이미지를 다운로드 혹은 아래 예제와 같이 명령어로 다운받을 수도 있음 사용한 이미지 Docker image 확인 docker images 설치한 이미지들을 볼 수 있다.

  • Apple에서 공개한 API인 Combine. 이제 Rx에서 Combine으로 많이 넘어간다고 한다. 무엇을 하는 것인지, 왜 좋은지, 바로 써먹기 위한 팁은 무엇이 있는지 알아본다.

checked-exception

1건의 항목

  • 예외 처리를 제대로 하지 못하는 이유는 무엇일까? 예외 처리를 제대로 하지 못하는 이유 과거에 주류이던 예외 처리 방식은 지속적으로 작동이 보장되어야 하는 프로그램에 대해 “하드웨어가 멈추는 크래시”가 무서워서 그랬을 수 있다.

checklist

1건의 항목

  • 실수가 2번이상 반복되면 실력이다. UI 개발시 한방에 끝나기 위한 Edge case를 정리하자. 수시로 업데이트 한다.

checkout

1건의 항목

ci

3건의 항목

  • 소수설 주창중 하나인 eXtreme Programming에 대해 알아보자.

  • 인수 테스트는 무엇일까? 시기 상조의 정밀도 불확실성의 원칙 서류와 실제 시스템의 동작은 다르다. 사업부는 요구했던 내용이 실제 시스템에서 돌아가는 모습과 다르다는 것을 깨닫는다. 요구사항이 정밀해질수록 최종 구현된 시스템과 초기 요구사항의 차이는 벌어진다.

  • DevOps란? 서비스 개발과 운영을 통합 왜 필요할까? 개발과 운영이 분리된 전통적 방식 개발팀, 운영팀 분리 되어 있음 개발팀에서 배포 파일을 운영팀에 전달 운영팀에서 배포 운영팀은 모니터링을 통해 개발팀에게 피드백 전달 이렇게 되는 경우 배포사이 개발팀과 운영팀의 커뮤니케이션 비용 증가 문제가 발생했을 때 현상/원인 파악이 어려움 서비스 개발자는 서비스 코드를 잘 알지만 운영 환경에 익숙하지 않음 시스템 운영자는 운영 환경에 익숙하지만 서비스 코드를 잘 모름 긴 주기 배포 하지만 각 분야 전문가가 배치되어 있어 보다 안전하다고...

clang

1건의 항목

  • 왜 C를 배워야 하는가? C 표준 C89/ANSI-C 최초의 C 표준 (89년) 여전히 많은 코드가 이 표준을 사용 임베디드 시스템 이걸 가장 많이 살펴볼 것임 C99 많은 내용 추가 인라인 함수 새로운 헤더파일들 새로운 자료형 한 줄짜리 주석 유연한 배열 멤버 가변 길이 배열 보다 안전한 I/O 함수 C11 C99 대체 유니코드 지원 이름 없는 구조체 및 공용체 제네릭 표현식 표준화된 멀티스레딩 지원 C18 신규 기능 없음 C11의 결함만 수정 include? 현대에서 많이 사용하는 import와 같은 구문 다른 파일에 구현된 함...

class

13건의 항목 처음 10개의 태그

  • Combine Functions into Class, 여러 함수를 클래스로 묶기를 알아보자.

  • 이전 장들에서는 Code, Code Block, 함수 구현 방법, 함수들의 연관 방식을 알아보았지만, 이번에는 조금더 고차원의 얘기를 할까 한다. 클래스 체계 Java Convention에 따르면 가장 먼저 변수 목록이 나온다.

  • 창발성 단순한 결합이 복잡한 결과를 나타내는 것을 뉴런 하나만으로 의미가 있을까? 뉴런이 모여 어떠한 인식을 하기 위해서는 수십억개의 뉴련이 상호작용해야 한다. 즉, 미시적인 부분의 각각의 특성만으로는 설명할 수 없는 전체로서 나타나는 복잡한 현상을 말한다.

  • What is Class? 우리는 클래스라는 개념을 왜 도입했을까? C++에서 함수가 태어나게 된 이유도 분리해서 관리하기 위함이었다.

  • Pass by Reference 내가 클래스를 만들고, 그 클래스를 바탕으로 객체를 만들었다. 이때, 이 클래스에 연결되어 있는, 함수를 메서드라 했다.

  • static Members 때때로는, 클래스의 객체들이 모두 공유하는 변수를 가지는 것이 용이하다. 전역변수와는 조금 다른 점이 있다 공통점 : 특정 함수나 클래스가 끝나고 나서 변수가 사라지지 않는다. 차이점 : 특정 클래스에 구속되어 있다.

  • Inherence 전체적인 구조 상속이 필요한 이유 상속은 매우 유용하다. 13. Class & Object & Constructor 글을 다시 기억해보자.

  • 클래스는 c++에서 자세히 다뤘으므로, 해당 내용에 대해 파이썬 문법만 알아보도록 하자.

  • Swift는 객체의 느낌으로 사용하는 3개의 개체가 있다. struct, class, enumeration이 그것이다. struct는 apple에서 권장하고, 실제로도 대체하는 것이 좋다고 생각되는 자료구조이고, enum의 경우 다른 언어보다 기능이 많이 추가되었다.

  • static 변수 및 함수는 인스턴스를 생성하지 않고 접근하기 위해 사용한다. swift에서는 어디서 관리하는 것이 좋을까? swift에서 사용하는 Method가 궁금하다면 해당글을 읽고 오자.

class-diagram

1건의 항목

classification

3건의 항목

clean-code

4건의 항목

  • 다시 핵심만 간결하게 복기하기 위한 목적으로 정리하기 때문에, 요약하는 방식으로 글을 작성한다. 역/식자의 말 절대적이라 믿으면 안된다 개선의 여지가 있을 것이라 생각해야 한다. 이 요소들을 소개하는 이유는 팀/공동체에서 서로 동의하는 합리적인 원칙을 세우기 위함이다.

  • 형식을 맞추는 목적 코드 형식은 의사소통의 일환이다. 오랜 시간이 지나 원래 코드의 흔적을 찾아보기 어려울 정도로 변경되어도 맨 처음 잡아놓은 구현 스타일과 가독성 수준은 유지보수 용이성과 확장성에 계속 영향을 미친다.

  • 복잡성은 죽음이다. 개발자에게 생기를 앗아가며, 제품을 계획하고 제작하고 테스트하기 어렵게 만든다. - 레이 오지, 마이크로소프트 최고 기술 책임자(CTO) 도시를 세운다면? 도시가 돌아가는 이유는, 각 분야를 담당하는 팀이 있기 때문이다.

  • 해당 부분은 너무 코드가 많아, 이전 상태와 이후 상태를 놓고 그 사이에서 저자가 어떠한 흐름으로 이를 처리했는지 간략하게 정리하는 것을 목적으로 한다. Intro 해당 부분에서는 출발은 좋았으나, 확장서잉 부족했던 모듈을 소개한다.

clean-coder

1건의 항목

  • 프로란 무엇일까? 내가 생각한 프로와 저자의 프로는 무엇이 다를까? Clean Coder 소프트웨어 개발자로서 전설로 알려진 로버트 C. 마틴의 저서이다. 프로란 무엇인지, 그리고 프로로서 어떻게 생각하고 행동해야 하는지에 대해 적혀있다.

cli

1건의 항목

  • 운영체제에 대한 정의, 역할에 대해 알아본다. 운영체제는 사용자가 컴퓨터를 사용하기 위해 필요한 소프트웨어이다. 일반적으로 사용하는 모든 프로그램은 운영체제에서 그 자원을 관리한다. 목적 운영체제를 사용하는 가장 큰 목적은 하드웨어의 관리이다.

clock

1건의 항목

  • 비트 0, 1 비트가 모여 데이터 구성 비트를 주고 받는 것이 통신의 본질 바이트 = 8비트 워드 = 1바이트가 2개 (16비트) 데이터가 어떻게 전기 신호로 전달? 데이터가 전달되지 않을 때 전기적 신호가 존재 Clock 신호 CPU는 해당 신호에 맞춰 일을 처리한다.

closure

1건의 항목

  • Lambda function 함수 안에서 부를 수 있는 Local function! 사실 정체는 객체이지만, 우리는 함수의 개념으로 갖다 쓴다! Usage [closure](입력 매개변수)->출력 type{내용} Local function 이기 때문에 만들어졌다가 리턴 후 사라진다.

cloud

3건의 항목

  • 클라우드 사업자조차 고객 VM의 메모리를 들여다볼 수 없게 만드는 기밀 컴퓨팅이 무엇인지, AWS의 새 발표와 사용자 가이드로 그 증명(attestation) 구조를 짚습니다.

  • 전자상거래 회사로 아는 Amazon이 왜 AI 인프라 이야기의 큰손으로 계속 등장하는지 짚습니다. NVIDIA의 최대 고객군이면서 동시에 자체 칩으로 경쟁하는 이중 역할, 그리고 번 현금 대부분을 데이터센터에 쏟는 지출 구조를 어떤 축으로 읽어야 하는지 살펴봅니다.

  • On premise 서버를 운영하기 위해 서버를 사내 랙에 설치하거나 데이터 센터에 두는 방식 Cloud 월 정액 기반으로 사용한 만큼 요금을 지불하는 방식 선택 방법 시스템 자원 사용량을 근간으로 가격을 책정하기 때문에, 잘생각 하지만 시스템 설비를 책정할 때, 최대 용량을 기준으로 하기 때문에 비효율적 구 분클라우드온프라미스 (기존 서버 구축방식)초기도입비용월정액기반으로 사용한만큼 요금을 지불일회성 비용으로 구매시 많은 비용예산이 소요됨인력운영비시스템 엔지니어의 업무 감소시스템 엔지니어의 업무 증대 ( 서버 운영 및 관리/ 전산...

code

1건의 항목

  • 형식을 맞추는 목적 코드 형식은 의사소통의 일환이다. 오랜 시간이 지나 원래 코드의 흔적을 찾아보기 어려울 정도로 변경되어도 맨 처음 잡아놓은 구현 스타일과 가독성 수준은 유지보수 용이성과 확장성에 계속 영향을 미친다.

code-review

1건의 항목

code-signing

1건의 항목

  • 앱스토어에 실제 앱을 배포해본 사람은 알겠지만, 인증서, provisioning과 같은 개념은 생소하다. 정확하게 알아보자. 원칙 Apple 만이 자신들의 하드웨어(iOS, iPadOS, MacOS etc)에 특정 소프트웨어가 동작하도록 할 수 있다.

coding

2건의 항목

  • CDN? Content Delivery Network 곳곳에 분산되어 있는 서버 그룹을 말한다. 이를 사용하게 되면 인터넷 콘텐츠를 빠르게 전달할 수 있다.

  • 코딩은 어렵다. 코딩 오류를 느끼는 감각은 중요하다. 이는 곧 빠른 피드백 루프를 통해 배움이 빨라짐을 의미한다. 잘못된 것을 알아야 고칠 것 아닌가? 이 장에서는 코드를 짤 때 행동과 기분, 태도에 대한 규칙과 원칙을 소개한다.

coefficient

1건의 항목

  • 데이터의 두 변수간 선형관계를 나타내는 척도에 대해서 알아본다. 선형관계 두 변수의 관계를 알아보는 것은 매우 중요하다. 어떠한 연관성을 통하여 유의미한 정보를 이끌어 낼 수 있기 때문이다. 이러한 선형관계를 알아내는 척도는 3가지 정도가 알려져 있다.

cohesion

3건의 항목

  • 모듈 내부의 요소들이 서로 함께 속해있는 정도 결합도와 반대되는 개념 종류 (강한 순서로) 기능적응집도 모듈 내부의 모든 기능이 단일 목적 수행 모든 경우가 이렇다면 가장 이상적 순차적응집도 모듈내에서의 결과를 다른 활동에서 사용하는 경우 교환적응집도 입력과 출력이 동일하나 다른 기능을 수행하는 활동들을 모음 좋지 않나라고 생각할 수 있으나, 단순히 입출력만 같기 때문에 애매함 절차적응집도 다수의 관련 기능을 가질 때, 모듈 구성 요소들이 그 기능을 순차적으로 수행 시간적응집도 특정 시간에 처리되어야 할 활동들을 한 모듈에서 처리...

  • 의존성과 결합도에 대한 정확한 의미를 이해해본다. 의존성(Dependency) A 모듈이 동작하려면 B 모듈이 필요한 경우 OO에서 모듈 == 클래스 클래스 A가 클래스 B에 의존 의존성이 있으면 잘못된 OO 설계다? (code smell) 잘못된 말이다.

  • 이전 장들에서는 Code, Code Block, 함수 구현 방법, 함수들의 연관 방식을 알아보았지만, 이번에는 조금더 고차원의 얘기를 할까 한다. 클래스 체계 Java Convention에 따르면 가장 먼저 변수 목록이 나온다.

collaboration

1건의 항목

  • 사람이 싫더라도 우리는 그들과 일하는 방법을 배워야 한다. 프로그래머 vs 보통 사람들 프로그래머는 사람들과 같이 일하는게 좋아서 된게 아니다. 일반적으로 사람들 사이의 관계는 뒤죽박죽이고 예측하기 히믇ㄹ다. 우리는 예측한 대로 움직일 때가 즐겁다.

collection

3건의 항목

combination

5건의 항목

combine

7건의 항목

  • Combine이 무엇일까? Apple이 설명하는 것을 들어보자. What is Combine 이벤트 처리 연산자를 결헙하여 비동기 이벤트를 처리하는 방법 일단 비동기 이벤트가 무엇이 있는지부터 알아보자.

  • Apple에서 공개한 API인 Combine. 이제 Rx에서 Combine으로 많이 넘어간다고 한다. 무엇을 하는 것인지, 왜 좋은지, 바로 써먹기 위한 팁은 무엇이 있는지 알아본다.

  • Lagacy를 Combine 전환하면서 배웠던 Tip들을 적어본다. Notification Cetner에 걸었던 Observer를 Publisher로 전환하는 것에 대한 글이다.

  • Combine에 대해서 실제 사용하다 보니, 이게 도대체 어떤 방식으로 이루어지는 지 궁금했다. 실제 코드를 보지 않으면 명확해지지 않을 것 같아 정리한다.

  • Promise, Rx 등 비동기 처리를 하기 위한 방법은 많다. 이를 배워보기 이전에, 왜 그러한 개념이 나왔는지, 어떠한 방식으로 개선해왔는지를 코드를 고쳐보면서 이해해보는 것이 이 포스팅의 목표이다. 최대한 개조식으로 적으려 노력했다.

  • 두번째 글에서는 이해한 RxSwift의 기본 개념을 바탕으로 자주 사용하는 메서드를 알아본다. 무리하게 기억할 필요는 없고, 이렇게 사전 제작된 함수들이 많고, 잘 사용할 경우 유용하다는 사실까지만 이해해도 맛보기로는 충분할 듯 하다.

  • 맛보기의 마지막으로, 간단하게 프로젝트에 적용해보자. MVVM과 찰떡인 RxSwift를 적용해보면서 아키텍쳐와 사용방법에 대해 익숙해져보자. 프로젝트 개요 버튼을 누르면 값이 변경되고 아래에 총 금액이 나타난다.

command

1건의 항목

  • GoF의 디자인 패턴, 명령 패턴에 대해 알아본다. 해당 글은, 다음의 코드를 기반으로 이해하는 것이 편리합니다. 핵심 요약 하나의 명령을 객체화한 패턴 객체는 전달할 수 있고, 보관할 수 있다. 즉, 명령(기능)을 전달하고 보관할 수 있게 된다.

comments

4건의 항목

  • 냄새나면 당장 갈아라. 어떻게 하는지에 대해서 지금까지 배웠다. 하지만, “언제” 시작하고 그만할지를 판단하는 것은 또 다른 얘기다. 어떤 “냄새”를 맡았을 때 손을 대야할까? 기이한 이름 이름으로 이게 뭐하는 것인지 딱 볼 수 있게 작성해야 한다.

  • Intro 나쁜 코드에 주석을 달지마라. 새로 짜라. : 브라이언 W. 커니헨, P.J. 플라우거 주석은 필요악이다. 프로그래밍 언어 자체가 표현력이 풍부하다면, 혹은 우리가 치밀하게 의도를 잘 표현했다면 주석은 전혀 필요하지 않다.

  • 프로그램 실행 과정 graph LR A[원시함수 작성] --> |Compiler|B(오브젝트 파일 생성) B-->|Linker|C[실행파일 생성] Compiler : 고급 언어로 작성된 파일을 기계어로 번역해줌.

  • Function Design Recipe (FDR) 우리는 파이썬에서 제공하는 다양한 내장 함수들에 대한 설명을 보고싶을때, help() 함수를 통해 정보를 확인할 수 있었다.

commitment

2건의 항목

  • 언제 “예”라고 말해야 하는가? 약속을 뜻하는 말 말하고 진심으로 실행하라. Commitment(약속)은 세단계로 구분된다. 하겠다고 말한다. 진심을 담는다. 실제로 실행한다. 하지만 이를 실제로 지키기는 어렵다.

  • 우리가 가장 못하는 행위인 추정에 대해 알아보자. 추정 가장 단순하면서도 가장 두려운 행위다. 큰 사업가치가 추정에 따라 좌지우지된다. 사업부와 개발자를 벌어지게 만드는 제 1요소이다. 불신감의 원인은 대부분 추정이다.

commodities

3건의 항목

  • 구리 가격이 지금 어디 있는지 미국 상장 ETF(CPER) 시세로 봅니다. 무엇이 움직이면 다시 들여다볼지 짚습니다.

  • 금 가격이 지금 어디 있는지 미국 상장 ETF(GLD) 시세로 봅니다. 무엇이 움직이면 다시 들여다볼지 짚습니다.

  • 은 가격이 지금 어디 있는지 미국 상장 ETF(SLV) 시세로 봅니다. 무엇이 움직이면 다시 들여다볼지 짚습니다.

communication

1건의 항목

compactmap

2건의 항목

compactmapvalues

2건의 항목

compatibility

2건의 항목

compile

4건의 항목

  • 컴파일러 소스코드를 타겟 언어와 의미론적으로 동등하게 번역해주는 프로그램 어떠한 언어에서 기계어로만 변환하는 것을 부르지 않음 예시 C 언어 컴파일러 (기계어로 변환) Silicon Compiler 논리 게이트 연산을 수행할 때 쉽게하기 위해 해주는 녀석 OS Command language 명령어 커맨드를 어휘분석, 구분 분석을 통해서 OS가 이해하는 언어로 변환함 Query language 쿼리문 자체를 데이터 베이스가 이해하는 언어로 변경해줌 컴파일러 언어 한번 컴파일이 오래걸림 하지만 컴파일 하고나면 실행파일이 생성되기 때문에...

  • 운영체제에서 중요한 부분인 메모리 관리 기능에 대해 알아보자. 메모리는 CPU 자원만큼 컴퓨터를 사용하는데 매우 중요한 자원 중 하나이다.

  • 실제 컴파일, 링킹이 끝난 뒤의 결과물에 대해서는 잘 모르는 것 같다. 실행 파일은 어떻게 구성되어 있는 걸까? 우리가 사용하는 프로그램들은, 바이너리화되어 있는 파일의 형태로 존재한다. 그런데, 이 실행파일의 형태는 OS에 따라 다른 형태로 존재한다.

  • Xcode에서 디버깅하는 방법을 알아보자.

compile-time

1건의 항목

  • 소스코드가 컴파일 과정을 통해 기계어로 변환되어 실행가능한 프로그램이 되는 과정을 의미 컴파일 에러는 소스코드가 컴파일 되는 과정 중에 발생하는 Syntax error, 파일 참조 오류 등과 같은 문제들로 인해 컴파일이 방해되어 발생하는 오류를 말한다.

compiler

5건의 항목

  • 전체 과정 개발자가 소스코드를 작성한다. (Ts, Html, css, sass, scss etc) Babel을 통해 모든 브라우저에서 호환 가능한 문법의 코드로 변환한다. 소스코드를 하나로 묶는 Bundling을 진행한다. 원격 저장소에 Deploy한다.

  • 컴파일러 소스코드를 타겟 언어와 의미론적으로 동등하게 번역해주는 프로그램 어떠한 언어에서 기계어로만 변환하는 것을 부르지 않음 예시 C 언어 컴파일러 (기계어로 변환) Silicon Compiler 논리 게이트 연산을 수행할 때 쉽게하기 위해 해주는 녀석 OS Command language 명령어 커맨드를 어휘분석, 구분 분석을 통해서 OS가 이해하는 언어로 변환함 Query language 쿼리문 자체를 데이터 베이스가 이해하는 언어로 변경해줌 컴파일러 언어 한번 컴파일이 오래걸림 하지만 컴파일 하고나면 실행파일이 생성되기 때문에...

  • 전체 과정 개발자가 소스코드를 작성한다. (Ts, Html, css, sass, scss etc) Babel을 통해 모든 브라우저에서 호환 가능한 문법의 코드로 변환한다. 소스코드를 하나로 묶는 Bundling을 진행한다. 원격 저장소에 Deploy한다.

  • 운영체제에서 중요한 부분인 메모리 관리 기능에 대해 알아보자. 메모리는 CPU 자원만큼 컴퓨터를 사용하는데 매우 중요한 자원 중 하나이다.

  • Xcode에서 디버깅하는 방법을 알아보자.

completion

1건의 항목

composite

1건의 항목

  • GoF의 디자인 패턴, 복합체 패턴에 대해 알아본다. 해당 글은, 다음의 코드를 기반으로 이해하는 것이 편리합니다. 핵심 요약 단일체와 집합체를 하나의 동일한 개념으로 처리하기 위한 패턴 폴더 구조, View 구조 등이 예가 될 수 있겠다.

composition

4건의 항목

  • GOF의 디자인 패턴 1장, 서론의 두번째를 정리해봅니다.

  • 함수형 프로그래밍에 대해서 공부해보면 꼭 나오는 용어들이 있다. 일급 시민, 함수 합성, 커링 등. 오늘은 이러한 단어들에 대해서 이해해보자. First Class Function function은.

  • 더 큰 기능을 가진 객체나 클래스를 작은 객체나 클래스로 조합하여 새로운 기능을 만드는 프로그래밍 기법 Composition에는 다음과 같은 주요 개념이 포함됩니다: Has-A 관계: 특정 객체가 다른 객체를 “사용”한다는 의미를 가진다.

  • 상속과 컴포지션. 무엇을 선택할지 어떻게 판단해야 하는가? OO에서 재사용성을 중요시하는 이유 Don’t reinvent the wheel! 바퀴는 이미 동작과 상태가 명확한 물체 설계, 구현, 테스팅까지 모두 마친 물체 이걸 가지고 다른 유용한 물체를 만들자.

compression

2건의 항목

  • JPG(Joint Photographic Experts Group) 정의: 정지 화상을 위해서 만들어진 손실 압축 방법 표준 핵심: 전체적 구조 손실보다 디테일 손실에 둔감하다는 점을 통해 압축 원리: 이미지의 고주파 성분의 일부를 제거함.

  • PNG(Portable Network Graphics) 핵심: 비손실 압축 방법 원리 Huffman coding를 통한 압축 그렇기 때문에 반복되는 이미지가 등장할 경우 PNG가 보다 효과적 장점: 투명도 사용가능, 비손실 압축, 32비트 트루컬러, 크게 색상 변화가 크지 않은 이미지의 경우 사용하는 것이 좋다.

compression-resistance-priority

1건의 항목

computer

1건의 항목

computer-structure

4건의 항목

computer-vision

19건의 항목 처음 10개의 태그

concurrency

16건의 항목 처음 10개의 태그

  • 최호성님의 유튜브 강의를 보며 기본적인 컴퓨터 구조를 이해하고 정리하자. PC 조립 과정 보며 구조 이해하기 컴퓨터 하드웨어 구성 요약 다나와 다나와 이곳에 가면 컴퓨터 용어에 대한 간단한 설명들을 쉽게 알 수 있다. 컴퓨터란? CPU가 가장 중요하다.

  • 동시성과 깔끔한 코드는 양립하기 아주 어렵다. 그럼에도 불구하고, 동시성은 왜 필요할까? 객체는 처리의 추상화다. 스레드는 일정의 추상화다. - 제임스 O. 코플리엔 동시성이 필요한 이유? 동시성은 “무엇”과 “언제”의 Coupling을 없애는 전략이다.

  • 여러 일을 여러 사람이 각자 동시에 하는 것 행위도 여러개, 주체도 여러개 가짜 병렬 (논리적 개념) 코어는 하나임에도 두개의 서로 다른 동작을 번갈아가며 처리하여 동시에 수행하는 것 “처럼” 보이는 것 소프트웨어 수준으로 처리 Thread, Actor 등 Reference Parallelism .

  • 개념 특정 작업이 전역적으로 단일 스레드에서 실행되도록 보장하는 장치 우리는 @MainActor라는 키워드만 추가하게 되면 main thread에서 동작한다는 것을 보장할 수 있다.

  • WWDC 24의 Swift 6 migration guide를 정리해본다.

  • Data-race의 문제를 swift concurrency (compiler constraint)를 통해 해결하지 않고, 타 매커니즘을 통해 해결한 경우, 이에 대해 에러를 내뿜지 않도록 하는 키워드 swift concurrency는 compiler가 data-race에 대한 취약점을 파악할 수 있다는 점에서 유용하다.

  • 동시성은 이제 프로그래밍에서 빼놓을 수 없는 요소가 되었다.

  • 이제 우리는 동시성 프로그래밍을 할 수 있다! 필요한 내용들을 어느정도 배웠다고 할 수 있다. 하지만, 동시성 프로그래밍이 어려운 이유는 별도의 작업흐름으로 공유 데이터에 접근하면서 발생하기 때문이다.

  • Swift 5.5에서 소개된 Async/Await에 대해 공부해본다. 비동기 처리가 필요한 이유 thumbnail을 fetch하는 method가 있다고 하자.

  • What is AsyncSequence 용량이 좀 큰 csv 데이터를 받는다고 하자. 만약 해당 파일을 모두 받은 뒤에 데이터를 처리한다고 한다면, 오랜 시간 뒤에나 가능할 것이다. 여기서 asyncSequence를 사용하면 굉장히 반응성있는 결과를 낼 수 있다.

conditional-expression

4건의 항목

conditional-probability

2건의 항목

  • 확률에 대해 이해한다. 사건에 확률을 부여하는 방법 동전의 앞면이 나오는 것을 사건 A라 정의했을 때, P(A)를 구하는 방법에 대해 알아보자. 고전적 방법 단순히 1/2라 생각한다. 이 생각의 배경에는 앞면과 뒷면이 나오는 가능성이 동일하다 생각하고 부여한다.

  • 조건부 확률 P(A \mid B) = \frac{P(A \cap B)}{P(B)} 조건부 확률 P(A \mid B) 는 사건 B 가 발생했을 때 사건 A 가 발생할 확률 여기서 P(A \mid B) 는 “B가 주어졌을 때 A의 확률” P(A \mid B) : 사건 B 가 발생했을 때 사건 A 가 발생할 확률 P(A \cap B) : 사건 A 와 사건 B 가 동시에 발생할 확률 (즉, A 와 B 의 교집합의 확률) P(B) : 사건 B 가 발생할 확률 여기서, P(B) 는 B 가 발생할 확률이 0이 아닌 경우에만 정의.

confidence-interval

1건의 항목

  • 통계적 추론에 대해 이해한다. 통계적 추론 표본이 갖고 있는 정보를 분석하여 모수에 관한 결론을 유도하고, 모수에 대한 가설의 옳고 그름을 판단하는 것 추정의 방법 모수를 추정하는 방법에 대해서 알아본다. 점 추정 모수를 추정하기 위해 하나의 값을 제안한다.

confidential-computing

1건의 항목

configuration

1건의 항목

  • Target Xcode의 빌드를 통해 생성된 최종 Product Framework Application 등등 일반적으로 하나의 모듈 또는 앱을 의미한다. 보통 프로젝트 생성시 하나만 생성되나, 목적에 따라 하나의 프로젝트에 여러개의 Target을 생성할 수 있다.

connect

1건의 항목

console

1건의 항목

  • 맥에서 아이폰 콘솔 로그 확인하기. 맨날 까먹어서 기억용으로 적어둔다. 방법 맥 앱 중에서 console.app을 실행한다. 아래 이미지에서 콘솔 로그를 보고 싶은 기기를 선택한다. 로그 메시지 필터를 걸어 확인한다.

constant

2건의 항목

constraints

2건의 항목

constructor

2건의 항목

container

2건의 항목

  • 설치 brew install docker mac 용 도커 설치하기 Docker image download docker pull hugojuhel/notebook Docker Hub 에서 원하는 docker 이미지를 다운로드 혹은 아래 예제와 같이 명령어로 다운받을 수도 있음 사용한 이미지 Docker image 확인 docker images 설치한 이미지들을 볼 수 있다.

  • 개념 개발자와 시스템 관리자가 컨테이너 기술을 사용하여 어플리케이션을 개발, 배포, 실행하기 위한 플랫폼 컨테이너 기술을 리눅스에서 사용되던 기술이다. 이 때, 이 기술을 사용하여 응용프로그램을 배포하는 것을 컨테이화 시킨 것이다.

content-delivery-network

1건의 항목

  • CDN? Content Delivery Network 곳곳에 분산되어 있는 서버 그룹을 말한다. 이를 사용하게 되면 인터넷 콘텐츠를 빠르게 전달할 수 있다.

content-inset

1건의 항목

content-offset

1건의 항목

continue

3건의 항목

  • Do ~ While 일단 Do 안에 있는 명령문을 실행하고 나중에 while문의 조건식 비교 적어도 한번은 명령문을 처리함 마지막에 세미콜론(;)을 반드시 추가해야 함 조건식을 검사하는 while(조건식)은 C 문장으로 여기기 때문 #include <stdio.h> int main() { int sum = 0; int number = 0; printf("1에서 10까지 합을 구합니다.\n"); do { number++; sum += number; } while(number<10); printf(&q...

  • 기존에 작업한 글이 있어 링크로 대체한다. 05. Control Flow 06. Loop Part. 01 07. Loop Part. 02 iomanip library 기본적으로 iostream 라이브러리로 출력을 하게되면, 왼쪽 정렬이다.

  • 컴퓨터를 통하여 문제를 해결하는 가장 중요한 이유 중에는 계속적으로 반복하는 작업을 컴퓨터가 대신 처리하여 주는 것이다. 이런 기능을 반복문이라고 하며, 대부분의 프로그래밍 언어는 다양한 반복문을 제공한다.

continuous-delivery

1건의 항목

  • DevOps란? 서비스 개발과 운영을 통합 왜 필요할까? 개발과 운영이 분리된 전통적 방식 개발팀, 운영팀 분리 되어 있음 개발팀에서 배포 파일을 운영팀에 전달 운영팀에서 배포 운영팀은 모니터링을 통해 개발팀에게 피드백 전달 이렇게 되는 경우 배포사이 개발팀과 운영팀의 커뮤니케이션 비용 증가 문제가 발생했을 때 현상/원인 파악이 어려움 서비스 개발자는 서비스 코드를 잘 알지만 운영 환경에 익숙하지 않음 시스템 운영자는 운영 환경에 익숙하지만 서비스 코드를 잘 모름 긴 주기 배포 하지만 각 분야 전문가가 배치되어 있어 보다 안전하다고...

continuous-integration

3건의 항목

  • 소수설 주창중 하나인 eXtreme Programming에 대해 알아보자.

  • 인수 테스트는 무엇일까? 시기 상조의 정밀도 불확실성의 원칙 서류와 실제 시스템의 동작은 다르다. 사업부는 요구했던 내용이 실제 시스템에서 돌아가는 모습과 다르다는 것을 깨닫는다. 요구사항이 정밀해질수록 최종 구현된 시스템과 초기 요구사항의 차이는 벌어진다.

  • DevOps란? 서비스 개발과 운영을 통합 왜 필요할까? 개발과 운영이 분리된 전통적 방식 개발팀, 운영팀 분리 되어 있음 개발팀에서 배포 파일을 운영팀에 전달 운영팀에서 배포 운영팀은 모니터링을 통해 개발팀에게 피드백 전달 이렇게 되는 경우 배포사이 개발팀과 운영팀의 커뮤니케이션 비용 증가 문제가 발생했을 때 현상/원인 파악이 어려움 서비스 개발자는 서비스 코드를 잘 알지만 운영 환경에 익숙하지 않음 시스템 운영자는 운영 환경에 익숙하지만 서비스 코드를 잘 모름 긴 주기 배포 하지만 각 분야 전문가가 배치되어 있어 보다 안전하다고...

control-flow

5건의 항목

  • 냄새나면 당장 갈아라. 어떻게 하는지에 대해서 지금까지 배웠다. 하지만, “언제” 시작하고 그만할지를 판단하는 것은 또 다른 얘기다. 어떤 “냄새”를 맡았을 때 손을 대야할까? 기이한 이름 이름으로 이게 뭐하는 것인지 딱 볼 수 있게 작성해야 한다.

  • 제어문 프로그램의 실행을 인위적으로 조절할 수 있는 문장 제어문의 종류 If 조건 연산자 유일하게 피연산자가 3개인 삼항 연산자 선택문(if)문과 같이 행동함 #include <stdio.h> int main() { int min, max; int x = 10, y = 20; max = (x>y) ? x : y; min = (x>y) ? y : x; printf("두 수 %d과 %d 중에 큰 수는 %d이다.\n", x, y, max); printf("두 수 %d과 %d 중에 작은 수는...

  • 기존에 작업한 글이 있어 링크로 대체한다. 05. Control Flow 06. Loop Part. 01 07. Loop Part. 02 iomanip library 기본적으로 iostream 라이브러리로 출력을 하게되면, 왼쪽 정렬이다.

  • C++과 약간의 차이를 기억해야 하는데, 가장 핵심적인 것은 OR, AND 를 그대로 갖다 쓴다는 것이다. C++에서는 각각 && , || 로 사용했는데, 이것을 AND, OR 로 사용하면 된다.

  • 프로그래밍 언어에서 자주 사용하는 것들인 제어문, 문자열, 함수에 대해서 적어보려한다. 다른 언어와 많은 점이 다르지는 않기 때문에 한 포스팅에서 모두 알아보려 한다.

conventions

1건의 항목

  • Fundamentals 사용처에 대한 “명료함”이 최우선이다. “간결함”보다 “명료함”이 보다 중요하다. 모든 선언에 대해 문서를 작성해라. ??? 클린코드와 대치된다.

convex-hull

2건의 항목

  • 플레티넘1 : 동적 계획법, Convex Hull 문제이다. 생각 일단 완전 탐색을 생각해 본다. 음. 말도 안된다. 몇개를 겹쳐서 만드는지 완전탐색을 한다면 시간 복잡도가 O(n!) 이다. 이 문제는 그냥 직관적으로 동적 계획법 냄새가 난다.

  • 골드1 : 기하 문제이다. 생각 볼록 껍질, Convex Hull이라 한다. 이 알고리즘에서 유명한 것을 그라함 스캔 알고리즘인데, 해당 동영상을 봐보자. 이것과 같은 알고리즘을 구현하기 위해서는 다음과 같은 절차를 거쳐야 한다. 가장 y가 작은 점을 구한다.

convolution

9건의 항목

cookie

1건의 항목

  • HTTP에서 상태가 필요한 이유 로그인이 되게 하고 싶다. 쇼핑몰 로그인이 아니어도 카트 목록을 기억하게 하고 싶다. 해결 방법 Fat URL - URL에 상태 정보를 모두 집어 넣기 - URL을 파싱해서, 사용자의 상태를 확인한다.

coordinate-system

2건의 항목

  • 3D를 어떻게 2D로 만들까? 지구 중심에 광원이 있다고 가정, 그림자를 투영 투영면의 종류에 따라 원통 원추(뿔) 방위(천장 원만 사용) 광원의 위치에 따라 심사(정중앙) 평사(표면) 정사(무한이 먼 광원, 평행) 메르카토르 도법 원통, 심사 정형법: 각도를 유지 모든 면이 같은 면적과 같이 보이기 때문에, 지도에서의 각과, 실제 배를 돌리때의 기수각이 같다는 점에서 이러한 단어가 붙음 지도의 위쪽으로 갈수록 실제 면적이 길게 표현됨 특성상 북극, 남극의 경우 투사가 되지 않아 표현자체가 어렵다는 단점이 존재 골피터스 도법 면적이...

  • 개요 한점에 대해 유일한 좌표를 부여하기 위한 체계 직교좌표계 (x, y, z) 구면좌표계 (r \theta, \phi) 지리좌표계 (\lambda, \phi) 지표면에만 있다고 가정하고 위, 경도로만 표현하는 것 지심좌표계 (x, y, z) 지표면 안으로 들어간다고 가정했을 때 필요 좌표계 EPSG 무지하게 많은 좌표계들을 한번에 알아볼 수 있는 코드 좌표계 변환 방식 측지계가 같으면 쉽게 변환이 가능 즉 준거타원체와 기준점이 같으면 하지만 측지계가 다르면 복잡한 로직이 필요 즉, 준거타원체도 다르고, 기준점도 다르면 3-Para...

copper

1건의 항목

  • 구리 가격이 지금 어디 있는지 미국 상장 ETF(CPER) 시세로 봅니다. 무엇이 움직이면 다시 들여다볼지 짚습니다.

copy-on-write

1건의 항목

core-value

1건의 항목

  • 다시 핵심만 간결하게 복기하기 위한 목적으로 정리하기 때문에, 요약하는 방식으로 글을 작성한다. 역/식자의 말 절대적이라 믿으면 안된다 개선의 여지가 있을 것이라 생각해야 한다. 이 요소들을 소개하는 이유는 팀/공동체에서 서로 동의하는 합리적인 원칙을 세우기 위함이다.

coredata

1건의 항목

coreml

1건의 항목

corner-radius

1건의 항목

cost

1건의 항목

cost-function

2건의 항목

coupling

2건의 항목

  • 특정 모듈이 다른 모듈에 의존하는 정도 커플링이 심해진 코드를 스파게티 코드라 함 살펴봐야 할 것들 왜 결합도가 높아졌는가? 어떻게하면 그 결합도를 낮출 수 있는가? 종류 (강한순서로) 내용결합도 하나의 모듈이 다른 모듈의 내부 동작을 수정하거나 의존하는 상태 다른 모듈의 로컬 데이터의 접근하는 경우 A 모듈의 데이터 생성 방법을 변경하면 B 모듈의 변경이 필요 공통결합도 두 개의 모듈이 같은 전역 변수를 공유하는 상태 외부결합도 두 개의 모듈이 외부에서 도입된 데이터 포맷, 통신 프로토콜, 디바이스 인터페이스를 공유하는 상태 외...

  • 의존성과 결합도에 대한 정확한 의미를 이해해본다. 의존성(Dependency) A 모듈이 동작하려면 B 모듈이 필요한 경우 OO에서 모듈 == 클래스 클래스 A가 클래스 B에 의존 의존성이 있으면 잘못된 OO 설계다? (code smell) 잘못된 말이다.

covarience

1건의 항목

  • 데이터의 두 변수간 선형관계를 나타내는 척도에 대해서 알아본다. 선형관계 두 변수의 관계를 알아보는 것은 매우 중요하다. 어떠한 연관성을 통하여 유의미한 정보를 이끌어 낼 수 있기 때문이다. 이러한 선형관계를 알아내는 척도는 3가지 정도가 알려져 있다.

cp949

1건의 항목

cpd

1건의 항목

  • 대표적으로 사용하는 연속 확률 변수에 대한 분포를 알아본다. 의미적으로 이해하는 것을 우선으로 한다. 감마 분포 a번째 사건이 발생할 때까지 걸리는 시간에 대한 분포 음이항 분포와 매우 비슷하다.

cpp

98건의 항목 처음 10개의 태그

cpu

7건의 항목

  • CPU의 동작방법을 알아보자. 최호성님의 유튜브 강의를 보며 기본적인 컴퓨터 구조를 이해하고 정리하자. 디지털 회로 기본적으로 연산을 수행하도록 가능하게 하는 것은 이 디지털 회로가 있기 때문이다. 이 디지털 회로는 반도체의 특징을 이용하면 가능하다.

  • 비트 0, 1 비트가 모여 데이터 구성 비트를 주고 받는 것이 통신의 본질 바이트 = 8비트 워드 = 1바이트가 2개 (16비트) 데이터가 어떻게 전기 신호로 전달? 데이터가 전달되지 않을 때 전기적 신호가 존재 Clock 신호 CPU는 해당 신호에 맞춰 일을 처리한다.

  • CPU 스케쥴링에 대해 알아본다. CPU가 하나의 프로세스 작업이 끝나면 다음 프로세스 작업을 수행해야 한다. 이때 다음 프로세스가 어느 프로세스인지를 선택하는 알고리즘을 CPU Scheduling 알고리즘이라고 한다.

  • 운영체제에서 중요한 부분인 메모리 관리 기능에 대해 알아보자. 메모리는 CPU 자원만큼 컴퓨터를 사용하는데 매우 중요한 자원 중 하나이다.

  • 코드가 어느 환경에 돌아가는지 아는 것은 중요하다. 어떤 cpu아키텍쳐가 있고, 차이점이 무엇인지에 대해서 알아보자. 해당 글은 계속해서 추가해 나갈 예정이다.

  • iOS 내부 디바이스에 다양한 CPU 제품이 들어감에 따라 이를 대응할 수 있도록 Project setting을 해야한다. 내부 디바이스들이 어떤 특징을 가지고 있는지 알아보자. 이번 글은 CPU Architecture 글을 읽고 오면 좀 더 편하다.

  • 실제 컴파일, 링킹이 끝난 뒤의 결과물에 대해서는 잘 모르는 것 같다. 실행 파일은 어떻게 구성되어 있는 걸까? 우리가 사용하는 프로그램들은, 바이너리화되어 있는 파일의 형태로 존재한다. 그런데, 이 실행파일의 형태는 OS에 따라 다른 형태로 존재한다.

cr

1건의 항목

  • Request-Line OR Status-Line [Header CRLF] CRLF [ Body ] Start Line Request Response Header 헤더 중 X가 붙은 경우, 커스텀 헤더임 Pragma: 옛날 캐시 정책 Deprecated Cache-Control: 캐시 정책인데, 기능이 추가된 것들 Connection: close, keep-alive 두 개의 옵션이 있음 Stateless Protocol HTTP는 상태가 없는 프로토콜이다.

craftsmanship

1건의 항목

  • 멘토링, 수습기간, 장인 정신에 대해 고찰해본다. 수습기간 소프트웨어 역시 실무 훈련기간이 있어야 한다. 왜 프로그래머는 학교만 졸업하면 가능할 것이라 생각하는가? 소프트웨어는 일상생활에 너무나도 많은 곳에 들어가 있다. 합리적 훈련과 감독을 받는 실습기간은 필요하다.

crash

5건의 항목

  • 그래서 예외는 어떻게 처리하는 것이 좋은걸까? 오류 상황 예외 상황과 오류 상황을 다른 의미로 사용할 것 오류 상황은 error condition을 말함 이 오류 상황을 처리하는 방법 중에 예외가 있음 오류 상황은 예측 가능한 상황을 의미함 프로그램 실행 중에 기본적으로는 일어나지 않음 하지만 일어날 수 있는 일 따라서 이러한 상황을 처리하는 코드는 프로그램 기능의 일부임 프로그래머가 이를 예측하지 못했다면? 버그 오류 상황을 처리하는 4가지 방법 무시 곧바로 크래시 일단은 작동하는데 언젠가는 크래시 안정적이지 못한 상태로 계속 동...

  • 인덱스로 Array 아이템을 탐색하다보면 항상 마주하는 것이 있다. Fatal error: Index out of range. 잘못하면 런타임에 애플리케이션이 바로 죽어버리기 마련이다. 아무리 염두에 둔다하더라도 우리는 사람인 이상 실수를 하기 마련이다.

  • ! 사용하지 않기 Swift 코드에서 !가 보이는 경우는 두가지다. 연산자(!=, not, !==)에서 사용하는 경우는 제외한다.

  • TableView dataSource에서 아이템을 가져오다 outOfIndex가 나서 crash가 났다. 이로부터 배운 점에 대해 적어본다. 어떤 상황인가? crash 로그를 확인해보니, tableView에서 indexPath를 벗어나 발생했음을 확인했다.

  • 앱스토어에서 크래시가 나서 Reject을 당하면 Crash Report를 함께 준다. 해당 파일을 열어보면 이상한 숫자들만 가득하다. dSYM debug symbol file App을 Release한 뒤에 Crash를 진단할 수 있게 도와주는 파일이다.

creational-patterns

6건의 항목

credential

1건의 항목

  • 발생하는 경우 계정 패스워드를 바꿨는데 로컬 반영이 안된 경우 환경 등의 알지못하는 변경이 영향을 준 경우 해결 방법 git config --unset credential.helper // git config credential.helper store // 해당 Git directory에서 적용 git config credential.helper store --global // 전체 Git에서 적용 Reference push 시 Password 물어보지 않도록 설정하기 .

critical-point

1건의 항목

  • 미분은 입력의 작은 변화에 비례해 출력이 얼마나 변하는지를 말해준다. 이런 성질은 미분 함수의 최소화에 유용하다. 도함수는 출력 y를 개선하려면 입력 x를 얼마나 변화해야 하는지에 대한 정보를 주기 때문이다.

critical-section

1건의 항목

  • 3. 임계구역(Critical section) 문제 위의 예에서 보았던 문제를 임계구역 문제라 한다. 임계구역은 여러 개의 쓰레드가 수행되는 시스템에서 각 쓰레드들이 공유하는 데이터(변수, 테이블, 파일 등)를 변경하는 코드 영역을 말한다.

cross-entropy

1건의 항목

cross-platform

1건의 항목

currying

2건의 항목

curve-fitting

1건의 항목

cyclical-sectors

7건의 항목

  • 자동차, 의류, 레저, 소매(비필수) 등 임의 소비재 섹터입니다. 경제 성장에 따라 성과가 크게 변동하는 경기 순환 섹터로, Amazon, Tesla, Nike 등이 대표적인 기업입니다.

  • 석유·가스 탐사/생산, 정제, 재생 에너지 등을 포함하는 에너지 섹터입니다. 유가 변동과 경제 사이클에 민감한 순환적 특성을 보이며, ExxonMobil, Chevron, SK Innovation 등이 대표 기업입니다.

  • 은행, 보험, 자산 관리, 증권 등을 포함하는 금융 섹터입니다. 금리 변동과 경제 성장에 민감한 경기 순환 섹터로, JPMorgan Chase, Berkshire Hathaway 등이 대표적입니다.

  • 항공, 기계, 건설, 운송 등을 포함하는 산업재 섹터입니다. 경제 활동과 자본 지출에 따라 성과가 변동하는 순환적 특성을 보이며, Boeing, Caterpillar, Hyundai Heavy Industries 등이 대표 기업입니다.

  • 반도체, 소프트웨어, 하드웨어, IT 서비스 등을 포함하는 기술 섹터입니다. 혁신과 경제 성장에 민감한 순환적 특성을 가지며, Apple, Microsoft, Samsung Electronics 등이 대표적인 기업입니다.

  • 화학, 금속, 광업, 임업 등을 포함하는 소재 섹터입니다. 산업 수요와 경제 사이클에 따라 성과가 변동하는 순환적 특성을 보이며, Dow Chemical, BHP Group 등이 대표 기업입니다.

  • REITs, 부동산 개발/관리 등을 포함하는 부동산 섹터입니다. 금리와 경제 성장에 민감한 순환적 특성을 가지며, Prologis, Simon Property Group 등이 대표적인 기업입니다.

dark-mode

1건의 항목

  • WWDC 2019 키노트를 확인해보며 알짜 정보를 쏙쏙 뽑아보자. Dark Mode iOS 13부터 지원되는 기능이다. 말 그대로 dark mode이다. 해당 기능을 만들면서 고민했던 것은 역시 Mode에 따라 변화하는 색상이었다.

data

7건의 항목

  • 한번에 전송할 데이터의 크기 편지를 내가 썼다. 그 편지를 누군가한테 보내는데, 글자하나하나를 보내지 않는다. 이 때 편지는 우체부 아저씨가 누군가한테 배달하는 단위가 된다. 이와 같은 개념이 패킷이다. 패킷은 데이터를 보내는 데 있어 발생하는 단위이다.

  • 운영체제에서 중요한 부분인 메모리 관리 기능에 대해 알아보자. 메모리는 CPU 자원만큼 컴퓨터를 사용하는데 매우 중요한 자원 중 하나이다.

  • protoc protobuf는 데이터를 구조화하고, 이를 전송하고자 하는데 있어서 유연하고 효율적으로 작성하고 파싱하도록 지원하는 자동화 솔루션이다. json이나 xml을 생각하면 이해가 쉬운데, 사실 조금 다른 부분이 있다.

  • Basic Point 하나의 좌표를 갖는 geometry LineString(Polyline) 두 개 이상의 좌표를 갖는 geometry Line 두개의 좌표인 경우 LinearRing 첫 점과 끝점이 같은 경우 분류 Simple Non-Simple - 선이 교차하는 경우 Simple, closed - 교차하지 않는 다각형모양을 가진 선 LinearRing Non-Simple, closed - Not a LinaerRing Polygon 면 hole을 가질 수 있다.

  • 점, 선, 면 Box로 만든 뒤에 저장 저장은 어떻게? Grid 전체 공간을 Tessellation하여 셀로 나누고, 데이터를 셀에 넣는 방식 Tessellation 일정한 형태의 도형들로 평면을 빈틈없이 채우는 것을 말함 a.k.a 쪽매맞춤 쪽매붙임 공간을 다 특정도형으로 쪼개고, 또 그 안에서 쪼개는 방식으로 저장하는 것 무조건적으로 다 분할해야 함 QuadTree 전체 공간을 재귀적으로 가로/세로 2등분하여 4개의 자식 노드를 가진 트리 구조를 사용하는 공간 인덱스 4개의 노드를 가지도록 분할하여 저장 특정 geometry가 ...

  • Data(contentof)는 로컬 파일을 불러오기 위한 메서드이다. 애초에 동기 메서드이다. 가끔 이걸 DispatchQueue에 Item으로 싼뒤에 넣어 비동기 처럼 사용하는 경우가 있는데, 이러면 안된다. API의 존재 이유에 맞지 않기 때문이다.

data-analysis

3건의 항목

data-link-layer

3건의 항목

  • 랜에서 데이터를 정상적으로 주고 받기 위해 필요한 계층 앞은 전달하기 위해 변환하는 과정이 주라 생각 MAC Address Ethernet = Switch 트레일러 FCS(Frame Check Sequence) 전송중 오류 발생 확인 용도 프레임 Ethernet 헤더와 트레일러가 추가된 데이터 MAC Address를 통한 프레임 전송 과정 A에서 B로 데이터를 전송한다고 생각해보자.

  • 물리 계층 (Physical Layer L1) 기계적, 전기적인 통신망 접면의 정의 데이터를 전기적인 신호로 변환해서 주고받는 기능만 할 뿐 대표 장비 : 통신 케이블, 리피터, 허브 등 데이터링크 계층 (Data Link Layer 2, L2) 데이타 링크의 제어 (프레임화, 데이터 투명성, 오류 제어 등) 맥 주소를 가지고 통신한다.

  • Switch Data Link Layer에서 동작 Layer 2 스위치, 스위치 허브라 불림 허브와 비슷하지만, 데이터 충돌을 방지할 수 있다.

data-parallelism

1건의 항목

data-race

2건의 항목

data-structure

2건의 항목

  • 우리는 private을 통해 변수를 자주 정의한다. 이렇게 하는 이유는 남들이 변수에 의존하지 않도록 만들고 싶기 때문이다. 그럼에도 불구하고 많은 프로그래머들은 get, set 함수를 당연하게 외부에 노출하는 오류를 범한다.

  • 점, 선, 면 Box로 만든 뒤에 저장 저장은 어떻게? Grid 전체 공간을 Tessellation하여 셀로 나누고, 데이터를 셀에 넣는 방식 Tessellation 일정한 형태의 도형들로 평면을 빈틈없이 채우는 것을 말함 a.k.a 쪽매맞춤 쪽매붙임 공간을 다 특정도형으로 쪼개고, 또 그 안에서 쪼개는 방식으로 저장하는 것 무조건적으로 다 분할해야 함 QuadTree 전체 공간을 재귀적으로 가로/세로 2등분하여 4개의 자식 노드를 가진 트리 구조를 사용하는 공간 인덱스 4개의 노드를 가지도록 분할하여 저장 특정 geometry가 ...

data-transfer-object

1건의 항목

database

1건의 항목

dateset

1건의 항목

datum

1건의 항목

  • 지구 타원체 지구의 단면은 타원 장반경 a, 단반경 b라 했을 떄, {{a-b}\over a} = f f를 편평률이라 한다. a, b가 많이 차이나면 값이 크다 == 많이 찌그러져 있다. 그리고 이렇게 타원체로 만든 것을 지구 타원체라 한다.

deadlock

4건의 항목

debugging

3건의 항목

decoding

2건의 항목

  • Base64에서 URL에서 사용하는 문자열을 제외한 Encoding 방식 +, /, = 가 URL에서 사용하는 문자임 : 띄어쓰기, / : 경로구분자, = : name과 value사이에 쓰는 기호 (Query) 이에 아래와 같이 문자를 변경함 Reference RFC4648 .

  • 이진 데이터를 문자코드에 영향을 받지 않는 공통 ASCII 문자들로만 이루어진 일련의 문자열로 바꾸는 인코딩 방식 Base64 == 64개 값을 하나의 데이터로 인코딩한다. == 6개의 비트 2^6 = 64 를 인코딩한다. Reference RFC4648 .

decomposition

3건의 항목

decorator

1건의 항목

deep-copy

2건의 항목

  • 문자열 처리는 파이썬으로 find() isalpha() isalnum() for ~ in list, string으로 하나씩 꺼낼 수 있다. ~ in list, string으로만 하면 t/f 반환한다.

  • 인터페이스는 왜 필요할까? 그리고 무엇일까? Interface의 사전적 의미 inter-(상호간의) + -face(면) = interface 접해있는 두 물체나 공간 사이의 경계 사용자는 스위치를 키는 버튼에 집중 이걸 누르면 어떤 일이 일어날지를 앎 (what) 어떻게 그런일이 일어나는지는 모름 (how) 실제 동작은 구현 공간에서 일어남 배선의 연결 사용자는 잘 알지 못하는 공간 구현자만 알고 있음 이미 알고 있는 개념 = 함수 함수는 블랙박스임: 호출자는 내부가 어떻게 도는지 이해하려 하지 않는다.

deep-lab

1건의 항목

deep-learning

41건의 항목 처음 10개의 태그

deep-link

2건의 항목

  • Deep Link 기존의, 즉 옛날옛적의 웹은 home page를 통해 각 문서에 접근하여 정보를 얻는 방식을 취했었다.

  • Deep link를 적용하기 위해서는 AppDelegate에서 응답을 받아 처리해야 한다. 해당 내용은 그림으로 그리기가 너무 벅차 말로 간단하게 대체하려 한다.

defensive-sectors

3건의 항목

  • 식품, 음료, 가정용품, 소매(필수) 등 필수 소비재 섹터입니다. 경제 불황에도 안정적인 수요를 보이는 방어적 섹터로, Procter & Gamble, Coca-Cola, Nestlé 등이 대표적인 기업입니다.

  • 제약, 의료 기기, 바이오테크, 의료 서비스 등을 포함하는 헬스케어 섹터입니다. 경기 변동에 상대적으로 안정적인 방어적 특성을 가지며, Pfizer, Johnson & Johnson 등이 대표 기업입니다.

  • 전기, 가스, 물 공급 등 필수 공공 서비스를 제공하는 유틸리티 섹터입니다. 안정적인 수익 구조와 배당으로 경제 불황 시에도 방어적 특성을 보이며, NextEra Energy, Duke Energy 등이 대표적입니다.

defer

1건의 항목

  • 에러 처리는 프로그래밍에서 빼놓을 수 없다. 에러 관리를 제대로 해두어야 추후 디버깅에 있어 이득을 볼 수 있다. 미래의 나를 위한 투자?의 개념이다. 에러를 관리하는 것도 중요하지만 에러를 내는 방법, 에러를 감지하여 처리하는 방법을 아는 것 역시 중요하다.

define을

1건의 항목

delay

1건의 항목

  • Packet Delay 패킷스위칭을 시 라우터는 패킷단위의 데이터를 전달받고 목적지로 전달하는 역할을 수행한다. 이 과정에서 라우터가 보낼 수 있는 대역폭보다 더 많은 유저가 더 빠른 속도로 데이터를 보낸다면 딜레이가 생길 수 밖에 없다.

dependency

4건의 항목

  • 최호성님의 유튜브 강의를 보며 기본적인 컴퓨터 구조를 이해하고 정리하자. PC 조립 과정 보며 구조 이해하기 컴퓨터 하드웨어 구성 요약 다나와 다나와 이곳에 가면 컴퓨터 용어에 대한 간단한 설명들을 쉽게 알 수 있다. 컴퓨터란? CPU가 가장 중요하다.

  • 의존성과 결합도에 대한 정확한 의미를 이해해본다. 의존성(Dependency) A 모듈이 동작하려면 B 모듈이 필요한 경우 OO에서 모듈 == 클래스 클래스 A가 클래스 B에 의존 의존성이 있으면 잘못된 OO 설계다? (code smell) 잘못된 말이다.

  • 전제조건 행위에 대한 의존, 존립에 대한 의존 자동차 부품(존립) 자동차를 구성하는 다양한 부품은 자동차라는 객체가 사라지면 그 부품들의 존재도 사라진다. 그렇다면 부품이라는 존립은 자동차에 대해 의존성을 가진다.

  • 의존성 관리도구 주요 기능 Module 의존성을 알려주는 메타데이터로 라이브러리들이 관리됨 Manifest 명세서 역할 Lock 설치된 라이브러리의 버전과 의존 구조를 보여줌 라이브러리가 설치된 다음 적힘 Repository 모듈이 저장된 공간, 보통 github Dependency Constraint 모듈의 허용되는 버전, 보통 Manifest 파일에 적혀짐 Resolution Rule 모듈의 적합한 버전을 설치해 줌 도구세팅빌드속도-------------------------------CocoaPods간편함느림Carthage복잡...

dependency-injection

4건의 항목

deployment

5건의 항목

  • 앱 배포에 있어 꼭 알아야 하는 App Thining중 App Slicing에 대해 알아본다. 해당글은 WWDC 2015를 기준으로 한다. App Distribution Today 이전의 App 배포 방법은 다음과 같은 방식으로 수행되었다.

  • 앱 배포를 하다보면 bitcode enabled라는 flag가 있다. 이녀석을 체크하냐 마냐에 따라서 빌드 속도가 상당히 차이나는 것을 보았는데 도대체 왜 그런 건지 이해해보려 한다. bitcode 다음은 Distrubution Options에서 찾은 설명이다.

  • 앱스토어에 실제 앱을 배포해본 사람은 알겠지만, 인증서, provisioning과 같은 개념은 생소하다. 정확하게 알아보자. 원칙 Apple 만이 자신들의 하드웨어(iOS, iPadOS, MacOS etc)에 특정 소프트웨어가 동작하도록 할 수 있다.

  • 앱 배포에 있어 꼭 알아야 하는 App Thining중 On-Demand Resource에 대해 알아본다. 해당글은 WWDC 2015를 기준으로 한다. Do Better 이전 글에서 App Slicing을 하면서 앱 크기를 많이 줄일 수 있다는 것을 확인했다.

  • 사용자에게 나의 상품을 내놓을 때, 얼마나 메타 데이터가 중요한지 생각해보는 계기였습니다. 초기 배포 당시, 메타데이터를 제대로 작성하지 않아 유저가 해당 앱에 대한 정보를 알지 못한다는 의견을 받았습니다.

der

1건의 항목

deriveddata

2건의 항목

  • 앞으로 그림에서 나오는 Swift version은 가상이다. 이해를 위해서 가상으로 적었다.

  • DerivedData를 맨날 지우라는데 이녀석이 뭔지 간단하게 알아보자. DerivedData 빌드가 안되어 오류를 Google에 쳐보면 StackOverflow에서 “Clean DerivedData” 하라는 말이 많다. 이녀석은 도대체 무엇일까.

descripter

1건의 항목

deserialization

2건의 항목

  • protoc protobuf는 데이터를 구조화하고, 이를 전송하고자 하는데 있어서 유연하고 효율적으로 작성하고 파싱하도록 지원하는 자동화 솔루션이다. json이나 xml을 생각하면 이해가 쉬운데, 사실 조금 다른 부분이 있다.

  • Serialization & Deserialization 데이터 구조나 오브젝트 상태를 동일하거나 다른 컴퓨터 환경에 저장(이를테면 파일이나 메모리 버퍼: persistence)하고 나중에 재구성할 수 있는 포맷으로 변환하는 과정 쉽게 생각하면, 내가 가지고 있는 이 객체 구조를 어딘가에 저장할 수 있도록 변환하는 과정을 말한다.

design-pattern

34건의 항목 처음 10개의 태그

destructor

1건의 항목

  • Destructor 소멸자는 특별한 멤버함수이다. 객체가 생성되고, 소멸될 때 호출된다. 소멸자의 목적은, 컴퓨팅 자원의 절약에 있다. 객체가 생성되고 계속 남아있다면 메모리 자원을 많이 소모하게 된다.

determinant

3건의 항목

development

1건의 항목

devops

1건의 항목

  • DevOps란? 서비스 개발과 운영을 통합 왜 필요할까? 개발과 운영이 분리된 전통적 방식 개발팀, 운영팀 분리 되어 있음 개발팀에서 배포 파일을 운영팀에 전달 운영팀에서 배포 운영팀은 모니터링을 통해 개발팀에게 피드백 전달 이렇게 되는 경우 배포사이 개발팀과 운영팀의 커뮤니케이션 비용 증가 문제가 발생했을 때 현상/원인 파악이 어려움 서비스 개발자는 서비스 코드를 잘 알지만 운영 환경에 익숙하지 않음 시스템 운영자는 운영 환경에 익숙하지만 서비스 코드를 잘 모름 긴 주기 배포 하지만 각 분야 전문가가 배치되어 있어 보다 안전하다고...

dfs

18건의 항목 처음 10개의 태그

di

6건의 항목

  • 의존성과 결합도에 대한 정확한 의미를 이해해본다. 의존성(Dependency) A 모듈이 동작하려면 B 모듈이 필요한 경우 OO에서 모듈 == 클래스 클래스 A가 클래스 B에 의존 의존성이 있으면 잘못된 OO 설계다? (code smell) 잘못된 말이다.

  • 이전글들은 사실 이 원칙을 위해 달려온 것이 아닌가하는 생각이 든다. OOP의 정수로 불리우는 SOLID원칙에 대해서 깊게 알아보고, 실제 iOS Framework의 설계 방향에 대입하면서 보다 찐한 이해를 경험해보자.

  • SOLID 설계 정신에 대해 알아보자. SOLID 정신으로 이룰 수 있는 것 소프트웨어 설계를 “유연하게” 할 수 있다. 유연한 소프트웨어 설계, 즉 추상적인 설계로 커플링을 제거할 수 있다.

  • 간단한 구조 일단 RIB의 구조는 위와 같다.

  • 아무 생각없이 코딩하다가(…) 의존성 주입을 그냥 property 주입으로 하고 있었다. 당연히 Storyboard면 안되지 않았었나? 하는 무지성 코드질을 하다 지적받고 떠올랐다.

  • 다양한 의존성 주입 방법을 고려하고, 최종적으로 ViewController에 생성자 주입 방식을 통해 컴파일 타임에 주입 여부를 판단할 수 있도록 변경하였습니다. 초기에 작성한 의존성 주입이라고 착각한 코드입니다.

diagram

3건의 항목

  • UML에서 아직 그래도 많이 쓰이는 Class Diagram에 대해 정리해보자.

  • 다음으로 또 많이 쓰이는 Sequence Diagram에 대해 알아보자. 해당 글의 사진 자료는 외부 블로그를 많이 참고했다.

  • UML은 무엇일까? 그리고 왜 쓰였을까? UML(Unified Modeling Language) 시스템의 디자인을 시각화하기 위해 만든 표준 시스템 설계에 대한 그림을 그릴 때, 해당 표준이 없다면 중구난방으로 그려 의사소통의 효율성이 저해되었을 것 구조에 관한 다이어그램 7개, 동작에 관한 다이어그램 7개가 있음 현재 UML은? 이전에 유행하던 시절이 있었음 그 당시에는 외주받아 시스템의 개략도를 보여주고, 계약이 체결되는 방식이었기 때문이었음 현재는 회사안에 개발팀이 있기 때문에 필요없는 문서화라 생각되어 지양되는 분위기 지금은...

dictionary

3건의 항목

  • Dictionary 사람은 누구든지 “이름” = “홍길동”, “생일” = “몇 월 몇 일” 등으로 구분 할 수 있다. 파이썬은 영리하게도 이러한 대응 관계를 나타낼 수 있는 자료형을 가지고 있다.

  • Value Type 다른 변수에 대입하면 복사됨 argument로 넘겨도 복사됨 argument로 collection을 넘겨서 변화주면 원하는 결과를 얻을 수 없음 Objective-C의 경우 가능 Array 동일한 Type의 값을 저장할 수 있는 Ordered List 동일한 값이 다른 위치에서 반복적으로 낭로 수 있음 Foundation의 NSArray와 bridge 표현 let array: Array<SomeType>() let array: [SomeType] let array = [Int]() let array ...

  • dictionary에 value를 넣는데 nil인 경우는 빼고 싶다.

didset

1건의 항목

  • 간단하게 property는 member 변수이다. 그런데 Swift에는 다양한 종류의 property가 존재한다. 사실 어떻게 보면 활용방법? 테크닉에 가깝겠다. 어떻게 property를 관리하는 지 안다면, 실제 코드를 간결하고 읽기 좋게 유지할 수 있다.

diffabledatasource

2건의 항목

diffrential-equations

15건의 항목 처음 10개의 태그

dijkstra-algorithm

2건의 항목

  • 그래프 용어 V : vertex E : Edge path 연결 그래프 : 어떤 두 정점 사이에도 경로가 존재하는 그래프 부분 그래프 가중치 포함 그래프 : Edge에 가중치가 달려있음 순환 경로 순환 그래프, 비순환 그래프 트리 - 비순환, 비방향그래프 신장 트리 : 연결된, 비방향성 그래프에서 순환경로를 제거하면서 연결된 부분 그래프가 되도록 하는 트리 신장 트리의 개수는 Cayley’s formula에 따른 개수를 가짐 최소비용신장트리 신장 트리가 되는 부분 그래프 중에서 가중치가 최소가되는 부분 그래프 무조건 트리로 나온다.

  • 풀이 다익스트라로 한번에 성공했다. 그래도 발전이 있나보네. 스위프트로 플루이드 워셜로 다시 풀었다. Code # AB가 함께 모든 노드까지 가는데 걸리는 최단 거리를 구한다. # 그리고 그 거리 각각에서 출발하여 # 1.

dining-philosopher-problem

3건의 항목

dining-philosophers

1건의 항목

  • 교착 상태는 어떠한 자원을 갖고 있는 상황에서 문제가 발생한다. 자동차 교차로를 생각해보자. A자동차도 신호를 받았고, B 자동차도 신호를 받았다. 그래서 두 자동차가 움직이는 것에 논리적 오류가 없지만, 두 자동차가 갈 수 없는 상황이 발생한다.

discipline

1건의 항목

  • 기한이 다가오고, 모르는 기술 앞에서 우리는 압박을 받기 마련이다. 어떻게 헤쳐나가야 할까? 압박 프로개발자는 압박감을 느껴도 침착하고 결단력 있게 행동한다. 압박감이 커질 수록 훈련과 규율을 따른다.

discrete-distribution

2건의 항목

discrete-logarithm-problem

1건의 항목

discrete-mathematics

1건의 항목

  • 용어 정점(Vertex, Node): 그래프의 노드 간선(Edge): 그래프의 노드를 연결하는 선 방향 (화살표) 무방향 그래프(Undirected Graph): 간선에 방향이 없는 그래프 방향 그래프(Directed Graph): 간선에 방향이 있는 그래프 값 가중치(Weight): 간선에 부여된 값 정의 그래프(Graph) 그래프(graph) G는 정점(vertex)의 집합 V와 간선(edge)의 집합 E로 구성된다.

disk

1건의 항목

  • 하드 디스크의 구조를 바탕으로 스케쥴링을 하는 방법에 대해 알아본다. 1. 디스크 스케줄링 보조기억장치는 현재 여러 가지 존재하지만 아직까지는 하드 디스크가 주로 사용된다. 하드 디스크의 구조는 앞서 살펴봤듯이 위 그림과 같다.

dispatch-barrier

1건의 항목

distribution

10건의 항목

  • stack view는 autolayout을 적용하지 않고도 layout을 잡을 수 있는 신기한 친구다. 한번 알아보자. 이 글을 읽기 위해서는 이전글을 읽고 오는 것이 이해가 쉽다.

  • 확률분포에 대해 이해한다. 왜 배우는가? 실생활에서 결국 엔지니어가 수행하는 역할은, 다양한 문제에 대해 이를 다룰 수 있는 문제로 바꾸는 것에 있다. 확률과 같이 애매하게 보이는 개념을 어떻게 수치화하여, 다룰 수 있는 문제로 바꾸는지에 대한 내용이 대부분이다.

  • 대표적으로 사용하는 이산 확률 변수에 대한 분포를 알아본다. 의미적으로 이해하는 것을 우선으로 한다. 초기하 분포 n번의 시행에서 k번 성공할 확률, 그런데 독립시행이 아닐 경우의 분포 주머니에 10개의 공이 있다. 이 때 파란공이 3개, 빨간공이 7개 이다.

  • 대표적으로 사용하는 연속 확률 변수에 대한 분포를 알아본다. 의미적으로 이해하는 것을 우선으로 한다. 감마 분포 a번째 사건이 발생할 때까지 걸리는 시간에 대한 분포 음이항 분포와 매우 비슷하다.

  • 확률 변수의 값이 성공 혹은 실패로 나타나는 경우에 따른 분포 동전을 던졌을 때, 앞면이 나오는 사건에 대한 값을 확률 변수로 잡는 경우가 해당된다. 해당 사건이 나오는 확률을 정의해야 분포가 정의된다.

  • p(x) = \delta(x - \mu) Dirac Delta Function은 0을 제외한 모든 곳에서는 값이 0이나, 적분하면 1이 되는 함수이다. 이를 확률 밀도함수 p(x)로 사용하면, x=\mu일 때 확률이 1이 되는 함수가 된다.

  • 한번의 사건이 발생하는데 까지 걸리는 시간에 대한 분포 Poisson Distribution 에서는 단위 시간에 발생하는 횟수에 대해 궁금했다면, 이번에는 하나의 사건이 발생하는데 까지 걸리는 시간을 확률 변수로 잡는다. 이 때 발생하는 분포가 지수 분포이다.

  • 확률질량의 최고점을 특정점에 두는 분포 Laplace(x| \mu, \gamma) = \frac{1}{2\gamma} \exp \left( -\frac{|x-\mu|}{\gamma} \right) 그려보면 x=\mu에서 최고점을 가지는 분포임을 알 수 있다.

  • 혼합 분포 특정 분포를 만드는데 있어, 여러개의 확률 분포를 사용하는 것. 상황을 하나 생각해보자. 1에서 6까지의 숫자가 나열되어 있는 분포를 생각해보자. 해당 숫자들은 각기 다른 빈도를 갖고 있을 것이다. 그리고 주사위 하나를 생각해보자.

  • 단위 시간 안에 사건이 몇 번 발생할 것인지에 대한 분포 버스정류장에 버스가 도착한다고 하자. 이 때, 단위 시간을 10분으로 설정했을 때, 10분안에 도착하는 버스의 수를 랜덤 변수로 정의했을 때 정의되는 분포이다.

divide-and-conquer

3건의 항목

dmz

1건의 항목

  • 내, 외부 네트워크 구간 사이에 위치한 중간 지점 접근 제한을 수행 외부 네트워크에서 직접 접근이 가능 설명 회사에서는 서비스를 제공하는 서버와 내부에서만 동작해야하는 서버가 있다.

dns

2건의 항목

  • Domain Name Server 도메인이름을 치면 IP주소로 바꿔주는 서비스 naver.com -> 192.168.03.2 OR 192.168.03.2:80 그러면 어떻게 DNS서버를 들렀다 오는걸까? 그러면 매번 입력할 때마다 DNS를 들렀다 오는걸까? 브라우저 캐시에 저장되어 있다.

  • 디바이스가 가지고 있는 고유의 물리적, 하드웨어 주소 패킷에 들어오는 mac 주소를 보고 적어둔 테이블을 기반으로 사설 IP주소를 알아낸다음 해당 디바이스로 데이터를 넘겨준다.

do-catch

1건의 항목

  • 에러 처리는 프로그래밍에서 빼놓을 수 없다. 에러 관리를 제대로 해두어야 추후 디버깅에 있어 이득을 볼 수 있다. 미래의 나를 위한 투자?의 개념이다. 에러를 관리하는 것도 중요하지만 에러를 내는 방법, 에러를 감지하여 처리하는 방법을 아는 것 역시 중요하다.

do-while

2건의 항목

  • Do ~ While 일단 Do 안에 있는 명령문을 실행하고 나중에 while문의 조건식 비교 적어도 한번은 명령문을 처리함 마지막에 세미콜론(;)을 반드시 추가해야 함 조건식을 검사하는 while(조건식)은 C 문장으로 여기기 때문 #include <stdio.h> int main() { int sum = 0; int number = 0; printf("1에서 10까지 합을 구합니다.\n"); do { number++; sum += number; } while(number<10); printf(&q...

  • 기존에 작업한 글이 있어 링크로 대체한다. 05. Control Flow 06. Loop Part. 01 07. Loop Part. 02 iomanip library 기본적으로 iostream 라이브러리로 출력을 하게되면, 왼쪽 정렬이다.

docker

4건의 항목

  • 설치 brew install docker mac 용 도커 설치하기 Docker image download docker pull hugojuhel/notebook Docker Hub 에서 원하는 docker 이미지를 다운로드 혹은 아래 예제와 같이 명령어로 다운받을 수도 있음 사용한 이미지 Docker image 확인 docker images 설치한 이미지들을 볼 수 있다.

  • image 화 하기 코드가 다른 것으로 파악, 아래 코드는 동작한다.

  • Volume과 Mount Docker Conatiner에 쓰여진 데이터는 컨테이너가 삭제될 때 함께 사라진다. 하지만 이에 관계없이 우리는 데이터를 영속적으로 저장할 필요가 있다.

  • 개념 개발자와 시스템 관리자가 컨테이너 기술을 사용하여 어플리케이션을 개발, 배포, 실행하기 위한 플랫폼 컨테이너 기술을 리눅스에서 사용되던 기술이다. 이 때, 이 기술을 사용하여 응용프로그램을 배포하는 것을 컨테이화 시킨 것이다.

docker-hub

1건의 항목

document

1건의 항목

dollar

1건의 항목

  • 달러가 다른 주요 통화 전반에 강한지 약한지를 한 숫자로 재는 달러인덱스가 무엇이고, 원·달러 환율을 읽을 때 왜 이 지표를 같이 봐야 하는지 짚습니다. 2026년 중반 실제 데이터로 달러 강세와 원화 약세가 어떻게 겹쳤는지 살펴봅니다.

domain-name-server

1건의 항목

  • Domain Name Server 도메인이름을 치면 IP주소로 바꿔주는 서비스 naver.com -> 192.168.03.2 OR 192.168.03.2:80 그러면 어떻게 DNS서버를 들렀다 오는걸까? 그러면 매번 입력할 때마다 DNS를 들렀다 오는걸까? 브라우저 캐시에 저장되어 있다.

Don

1건의 항목

draw

1건의 항목

dropout

1건의 항목

dsym

1건의 항목

  • 앱스토어에서 크래시가 나서 Reject을 당하면 Crash Report를 함께 준다. 해당 파일을 열어보면 이상한 숫자들만 가득하다. dSYM debug symbol file App을 Release한 뒤에 Crash를 진단할 수 있게 도와주는 파일이다.

dto

1건의 항목

dual-mode

1건의 항목

dump

1건의 항목

duplications

2건의 항목

  • 냄새나면 당장 갈아라. 어떻게 하는지에 대해서 지금까지 배웠다. 하지만, “언제” 시작하고 그만할지를 판단하는 것은 또 다른 얘기다. 어떤 “냄새”를 맡았을 때 손을 대야할까? 기이한 이름 이름으로 이게 뭐하는 것인지 딱 볼 수 있게 작성해야 한다.

  • 창발성 단순한 결합이 복잡한 결과를 나타내는 것을 뉴런 하나만으로 의미가 있을까? 뉴런이 모여 어떠한 인식을 하기 위해서는 수십억개의 뉴련이 상호작용해야 한다. 즉, 미시적인 부분의 각각의 특성만으로는 설명할 수 없는 전체로서 나타나는 복잡한 현상을 말한다.

dynamic-array

1건의 항목

dynamic-binding

3건의 항목

  • 다형성은 무엇인가? 왜 중요한가? Polymorphism poly + morph + ism: 다양한 + 변하다 + 상태 = 다양한 형태로 변할 수 있는 능력 많은 사람들이 OOP의 핵심이라 여기는 특징 같은 지시를 내렸는데 다른 종류의 개체가 동작을 달리 하는 것 어떤 함수 구현이 실행될지 실행중에 결정된다.

  • Static Binding (정적 바인딩) #include <iostream> #include <string> #include <vector> using namespace std; class Base{ public: void f(){cout << "Base::f()" << endl;} virtual void vf() {cout << "Base::vf()" << endl;} }; class Derived:public Base...

  • Dynamic Binding (동적 바인딩) 그런데, 우리가 두 클래스가 상속관계에 있다는 것을 안다면, 이 멤버함수를 자동으로 묶어줄 수는 없을까? 이제 override , virtual 의 강력한 기능을 알 수 있다.

dynamic-ip

1건의 항목

  • 인터넷 공간 상에서 해당 단말기의 고유 주소 Socket을 통해 통신한다는 것은 알았다. 근데 우리가 전화를 걸더라도, 어디에 전화를 걸것인지 알아야 한다. 그걸 대표하는 것이 전화번호이다. 마찬가지로 통신을 하려면, 어디에 통신할 것인지 알려주는 과정이 필요하다.

dynamic-library

1건의 항목

  • 앞으로 진행할 긇에서는, Library와 Framework에 대해서 알아볼 것이다. 첫번째 순서로는 Library이다. Library & Framework 일단 간단하게 Library와 Framework에 대한 차이를 알아보고 가자.

dynamic-link

1건의 항목

dynamic-linking

1건의 항목

dynamic-programming

33건의 항목 처음 10개의 태그

eagar-loading

1건의 항목

early-binding

2건의 항목

  • 다형성은 무엇인가? 왜 중요한가? Polymorphism poly + morph + ism: 다양한 + 변하다 + 상태 = 다양한 형태로 변할 수 있는 능력 많은 사람들이 OOP의 핵심이라 여기는 특징 같은 지시를 내렸는데 다른 종류의 개체가 동작을 달리 하는 것 어떤 함수 구현이 실행될지 실행중에 결정된다.

  • Early Binding과 Late Binding은 성능에서 어떤 차이가 나는가? 실제로는 어떻게 사용하는가? 알게 모르게 당연하게 사용하고 있는 다형적 메서드는 무엇이 있을까? 이른 바인딩 vs.

earth-ellipsoid

1건의 항목

  • 지구 타원체 지구의 단면은 타원 장반경 a, 단반경 b라 했을 떄, {{a-b}\over a} = f f를 편평률이라 한다. a, b가 많이 차이나면 값이 크다 == 많이 찌그러져 있다. 그리고 이렇게 타원체로 만든 것을 지구 타원체라 한다.

ecdsa

1건의 항목

  • 비트코인에서 사용하는 타원곡선은 무엇일까? 비트코인에서 사용하는 타원 곡선 지금까지는 타원곡선에 들어가는 유한체의 위수를 작은 소수를 사용했다. 하지만 실전에서는 매우 큰 소수를 사용하여 컴퓨터로 탐색이 불가능하게 만든다.

edge

1건의 항목

  • 네트워크 구조 네트워크 엣지(Network Edge) 말단 device, 우리가 사용하는 대부분의 기기에 해당한다. 네트워크 코어(Network Core) 엔드 시스템을 연결하기 위한 중간의 매개들을 말한다.

edge-detection

1건의 항목

  • What is convolution 하트시그널을 봤다. 그 무엇보다도 치열한(..) 구애 행위와 두뇌게임을 봤다. 내가 누군가한테 구애 행위를 하는 것은 구애 받는 사람의 상태에 따라 YES, 혹은 NO가 나올 거다.

either

1건의 항목

  • 순수 함수형 프로그래밍언어 Haskell에는 Either라는 자료구조가 있다. 둘 중 하나의 타입을 가질 수 있는 경우 사용하는 자료구조라 한다. 이 Either 자료구조에 영감을 얻어 태어난 것이 Swift의 Result라 한다.

elf

1건의 항목

  • 실제 컴파일, 링킹이 끝난 뒤의 결과물에 대해서는 잘 모르는 것 같다. 실행 파일은 어떻게 구성되어 있는 걸까? 우리가 사용하는 프로그램들은, 바이너리화되어 있는 파일의 형태로 존재한다. 그런데, 이 실행파일의 형태는 OS에 따라 다른 형태로 존재한다.

elliptic-curve

4건의 항목

  • Inter Process Communication 프로세스는 완전히 독립된 실행객체이다. 서로 독립되어 있다는 것은 다른 프로세스의 영향을 받지 않는다는 장점이 있다.

  • 암호학에서 중요하게 사용되는 타원곡선에 대해 알아보자. 왜 해당 곡선을 사용할까? 타원곡선 y^2 = x^3 + Ax + B 위의 방정식의 형태로 나타나는 곡선 타원의 둘레를 구하기 위한 적분, 이의 역함수를 구하는 과정에서 유래했다.

  • 타원 곡선을 알아보았다면, 이걸 토대로 암호를 만들어보자. 유한체에서 정의된 타원 곡선 2장에서 보았던 타원 곡선은 “실수체”에서 정의되었다. 무한집합 그렇기 때문에 꽉 찬 곡선으로 보였던 것 이제 이 정의되는 공간을 유한체로 바꿀 것이다.

  • 비트코인에서 사용하는 타원곡선은 무엇일까? 비트코인에서 사용하는 타원 곡선 지금까지는 타원곡선에 들어가는 유한체의 위수를 작은 소수를 사용했다. 하지만 실전에서는 매우 큰 소수를 사용하여 컴퓨터로 탐색이 불가능하게 만든다.

em-algorithm

2건의 항목

emergence

1건의 항목

  • 창발성 단순한 결합이 복잡한 결과를 나타내는 것을 뉴런 하나만으로 의미가 있을까? 뉴런이 모여 어떠한 인식을 하기 위해서는 수십억개의 뉴련이 상호작용해야 한다. 즉, 미시적인 부분의 각각의 특성만으로는 설명할 수 없는 전체로서 나타나는 복잡한 현상을 말한다.

encapsulation-refactoring

3건의 항목

encoding

10건의 항목

  • JPG(Joint Photographic Experts Group) 정의: 정지 화상을 위해서 만들어진 손실 압축 방법 표준 핵심: 전체적 구조 손실보다 디테일 손실에 둔감하다는 점을 통해 압축 원리: 이미지의 고주파 성분의 일부를 제거함.

  • PNG(Portable Network Graphics) 핵심: 비손실 압축 방법 원리 Huffman coding를 통한 압축 그렇기 때문에 반복되는 이미지가 등장할 경우 PNG가 보다 효과적 장점: 투명도 사용가능, 비손실 압축, 32비트 트루컬러, 크게 색상 변화가 크지 않은 이미지의 경우 사용하는 것이 좋다.

  • 서명 역시 검증을 위해 전파될 필요가 있다. 즉, 직렬화가 필요하다. DER(Distinguished Encoding Rules) 서명에 대해 앞에서 공부했을 때 핵심은 r, s의 값이었다.

  • 공개키 비트코인 주소 형식에 대해 알아본다. 이는 곧 “주소”이다. 비트코인 주소 WIF(Wallet Import Format) 앞에서 공개키와 비밀키, 그리고 서명, 검증 방식에 대해 알아보았다. 그리고 이를 직렬화하는 방법도 배웠다.

  • 가변적인 수를 Encoding하는 방법 중 하나인 Varints 형식을 알아보자. Varint 이전에 Input, output등의 개수를 나타낼 때 있어 varint 형식을 사용한다고 했었다. 여기서 간단하게 알아보자.

  • Base64에서 URL에서 사용하는 문자열을 제외한 Encoding 방식 +, /, = 가 URL에서 사용하는 문자임 : 띄어쓰기, / : 경로구분자, = : name과 value사이에 쓰는 기호 (Query) 이에 아래와 같이 문자를 변경함 Reference RFC4648 .

  • 이진 데이터를 문자코드에 영향을 받지 않는 공통 ASCII 문자들로만 이루어진 일련의 문자열로 바꾸는 인코딩 방식 Base64 == 64개 값을 하나의 데이터로 인코딩한다. == 6개의 비트 2^6 = 64 를 인코딩한다. Reference RFC4648 .

  • 인코딩을 공부하면서, 바이트 오더링이라는 단어를 들어보았다. 처음 들어본 단어라, 간단하게 정리해보려 한다.

  • 네트워크 공부를 하다보니, 인코딩이라는 것에 대해 제대로 이해할 필요가 있다고 생각했다. 왜 필요한지, 어떻게 사용하는지에 대해서 이해해보는 포스팅이다.

  • 빈도수가 높으면 낮은 비트, 높으면 높은 비트, 이진 트리를 사용하여 나타내기 때문에 보다 효율적 압축 가능 Reference Huffman coding .

encryption

1건의 항목

endian

1건의 항목

endianness

1건의 항목

endofunctor

1건의 항목

enterprise

2건의 항목

  • 2026년 6월 Anthropic이 낸 발표 네 건을 읽고, "성능 자랑"보다 "어떻게 기업 안으로 파고드는가"라는 한 줄기 흐름으로 정리합니다.

  • Claude를 만드는 AI 회사 Anthropic이 왜 계속 뉴스에 등장하는지 짚습니다. 기업 시장으로 확장하려는 힘과 배포를 통제하려는 정부의 힘이 이 회사에서 어떻게 부딪히는지, 무엇을 보면 다음 국면을 읽을 수 있는지 살펴봅니다.

entropy

1건의 항목

  • 정보이론에서 확률 변수(Random Variable) 의 불확실성을 정량화하는 척도 Shannon Entropy 이산 확률 변수 X의 섀넌 엔트로피 H(X)는 다음과 같이 정의된다.

enumeration

3건의 항목

  • Swift는 객체의 느낌으로 사용하는 3개의 개체가 있다. struct, class, enumeration이 그것이다. struct는 apple에서 권장하고, 실제로도 대체하는 것이 좋다고 생각되는 자료구조이고, enum의 경우 다른 언어보다 기능이 많이 추가되었다.

  • static 변수 및 함수는 인스턴스를 생성하지 않고 접근하기 위해 사용한다. swift에서는 어디서 관리하는 것이 좋을까? swift에서 사용하는 Method가 궁금하다면 해당글을 읽고 오자.

  • Enumeration 연관된 Value들의 공통 Type을 정의할 경우 사용 Type-Safe한 방법으로 사용 가능 특정 값으로 Raw Value 지정 필수 아님 Raw Value 사용 가능 자료 구조 String Chracter Integer Floating-point 사용 가능 기능 Computed Property Instance method Initializer Extension Protocol Raw Value의 묵시적 할당 enum Planet: Int { case mercury = 1, venus, earth, mars,...

environment

1건의 항목

  • 왜 필요한가? 주기적인 포맷이 필요하다는 것을 느꼈다. 7년동안 정리를 안하다보니 나도 스트레스를 받더라. 그럴 때마다 기존에 사용하는 환경을 다시 구축하는게 너무나 시간낭비고 하기 싫었다.

epimorphism

1건의 항목

epsilion

1건의 항목

error

10건의 항목

  • 개체 지향을 얘기하면 꼭 나오는 단어인 예외에 대해서 알아본다. Exception 사실 예외는 개체지향의 일부가 아니다.

  • 예외 처리를 제대로 하지 못하는 이유는 무엇일까? 예외 처리를 제대로 하지 못하는 이유 과거에 주류이던 예외 처리 방식은 지속적으로 작동이 보장되어야 하는 프로그램에 대해 “하드웨어가 멈추는 크래시”가 무서워서 그랬을 수 있다.

  • 그래서 예외는 어떻게 처리하는 것이 좋은걸까? 오류 상황 예외 상황과 오류 상황을 다른 의미로 사용할 것 오류 상황은 error condition을 말함 이 오류 상황을 처리하는 방법 중에 예외가 있음 오류 상황은 예측 가능한 상황을 의미함 프로그램 실행 중에 기본적으로는 일어나지 않음 하지만 일어날 수 있는 일 따라서 이러한 상황을 처리하는 코드는 프로그램 기능의 일부임 프로그래머가 이를 예측하지 못했다면? 버그 오류 상황을 처리하는 4가지 방법 무시 곧바로 크래시 일단은 작동하는데 언젠가는 크래시 안정적이지 못한 상태로 계속 동...

  • 깨끗한 코드와 오류 처리는 화실히 연관성이 있다. 하지만 오류 처리로 인해 프로그램 논리를 이해하기 어려줘진다면 깨끗한 코드가 아니다. 오류보다 예외를 사용하라 에전 프로그래밍 언어는 예외를 지원하지 않았다.

  • 예외 처리 예외 처리를 사용하므로써 알고리즘이 마주할 수 있는 예외 상황에 대해 코드를 분리할 수 있다. 이 결과 알고리즘에 보다 집중할 수 있다. 에러를 만들어 보자.

  • 에러 처리는 프로그래밍에서 빼놓을 수 없다. 에러 관리를 제대로 해두어야 추후 디버깅에 있어 이득을 볼 수 있다. 미래의 나를 위한 투자?의 개념이다. 에러를 관리하는 것도 중요하지만 에러를 내는 방법, 에러를 감지하여 처리하는 방법을 아는 것 역시 중요하다.

  • TableView의 index를 조정하면서 NSNotFound라는 값을 넣어주는 것을 보게되었다. 왜 이런 것이 필요한지 알아본다. 핵심 정리 ObjectiveC에는 Optional이 없다.

  • 디지털 컴퓨터에서 연속적인 대상을 다루는 수학을 처리할 경우 근본적인 문제가 있다. 무한에 가까운 정보를 정해진 비트 패턴으로 표현해야 한다는 것이다. 이는 거의 모든 실수의 경우 근사 오차가 발생한다는 것을 암시한다.

  • Motivation of Pivoting 가우스 소거법과, 가우스-조르당 방법에서 대각행렬을 기준으로 수행한다는 것은 명백하다. 우리는 그래서 이 대각 행렬의 요소를 Pivot 이라 부른다.

  • 모집단을 추정하기 위한 표본을 추출하는 방법에 대해 알아본다. 표본 추출 단순 랜덤 추출 단순히 랜덤하게 모집단에서 추출하는 방법이다. 집단의 분포가 불균형할 경우 모집단의 특성을 대변하지 못한다는 단점이 있다.

essay

7건의 항목

  • 학창시절 어릴 적 똑똑한 아이로 알려졌던 나는, 오히려 중학교, 고등학교를 가면서 좌절을 맛봤다. 머리가 좋은 줄 알았는데 그게 아니었다.

  • 말은 정말 어렵다. 그 사람에게 느끼는 특정 감정들 자체와 별개로 다르게 표현되어 그 사람에게 닿는다. 특히 나는 그게 더 심한 듯하다. 자신의 감정 자체를 솔직하게 일상에서 전달하는 것이 부끄럽다. 속으로는 전혀 그렇게 생각하지 않지만 그와 반대된 표현으로 말한다.

  • 바람이 많이 불었다. 가만히 있기만 해도 몸이 밀릴 정도의 강한 비바람이었다. 더워서 열었던 창문까지 닫아야 할 정도였다. 바깥에 풀들도 그 강한 힘을 이기지 못하고 이리저리 흔들렸다. 그럼에도 곧게 뻗은 나무는 본인의 단단함을 자랑하듯 꼿꼿이 서있었다.

  • 무기력증이 도졌다. 새벽같이 일어나 운동을 하고, 샤워하고, 팟캐스트를 들으며 힘차게 출근하는 게 전과 같이 즐겁지 않았다. 일이라는 것은 내 삶에 있어서 큰 부분을 차지한다. 그럼에도 즐겁지 않게 된 것은 무슨 연유였을까.

  • 자유란 무엇인가? 질문이 너무 추상적이다. 인류가 지성이 생긴 이래 자신도 모르게, 혹은 의도적으로 생각해 온 문제임이 분명하다. 짧은 식견이지만 나름대로의 생각을 적어본다. 자유는 모든 의존이 끊어진 상태이다. 여기서 의존은 사회적, 물질적 관계를 포괄하는 단어이다.

  • 긴 연휴가 시작되었다. 어린이날, 주말, 그리고 대체휴일로 지정된 근로자의 날까지 총 4일의 달콤한 휴일이 나를 반겼다. 첫 직장인으로서의 기나긴 연휴는 신입사원의 긴장을 잠시나마 늦춰줄 수 있는 쉼터와 같았다.

  • 감정은 우연히 찾아온다 우연히 Github Repo에 들어가 봤습니다. 학창 시절, 멋모르고 마구잡이로 만들었던 저장소들이 마음에 들지 않았기 때문이에요.

estimation

5건의 항목

  • 우리가 가장 못하는 행위인 추정에 대해 알아보자. 추정 가장 단순하면서도 가장 두려운 행위다. 큰 사업가치가 추정에 따라 좌지우지된다. 사업부와 개발자를 벌어지게 만드는 제 1요소이다. 불신감의 원인은 대부분 추정이다.

  • 이상적 시간과 실제 경과 시간 축구 한게임하는데 시간이 얼마나 걸릴까? 누구는 90분, 누구는 3시간이라 말할 것이다. 90분은 이상적 시간에 대응되고, 3시간은 실제 경과 시간에 대응된다고 볼 수 있다.

  • 수확 체감의 법칙 수확 체감의 법칙은 노동을 더 투입한 만큼에 비례하여 결과가 늘어나지 않음을 말한다. 계획 추정에 있어서도 비슷하다. 적은 시간 투자를 통해 얻는 결과와 많은 시간 투자를 통해 얻은 결과가 크게 다르지 않다.

  • 재 추정을 하면 안 되는 경우 첫번째 이터레이션을 한 후, 1, 2번 스토리를 마무리했다고 생각해보자. 원래는 4개의 스토리 모두를 한 이터레이션에 할 수 있을 것이라 생각했다.

  • 규모 추정에는 스토리 점수와 이상적 작업일이라는 두 수단이 있다. 각각 나름의 장단점이 있는데, 어떻게 활용하는 것이 좋은지에 대해 얘기해본다. 스토리 점수의 장점 스토리 점수는 팀원들로 하여금 기능간 경계를 뛰어 넘게 한다.

ethernet

3건의 항목

  • 랜에서 데이터를 정상적으로 주고 받기 위해 필요한 계층 앞은 전달하기 위해 변환하는 과정이 주라 생각 MAC Address Ethernet = Switch 트레일러 FCS(Frame Check Sequence) 전송중 오류 발생 확인 용도 프레임 Ethernet 헤더와 트레일러가 추가된 데이터 MAC Address를 통한 프레임 전송 과정 A에서 B로 데이터를 전송한다고 생각해보자.

  • 일반적으로 데이터 링크 계층에서 가장 많이 사용되는 규칙 랜에서 사용되는 규칙 허브와 같은 장비에 연결된 컴퓨터와 데이터를 주고받을 때 사용 허브는 근본적으로 전기 신호를 받을 포트 뿐만 아니라 다른 포트에도 전달함 이 부분이 상당히 문제임.

  • 비트 0, 1 비트가 모여 데이터 구성 비트를 주고 받는 것이 통신의 본질 바이트 = 8비트 워드 = 1바이트가 2개 (16비트) 데이터가 어떻게 전기 신호로 전달? 데이터가 전달되지 않을 때 전기적 신호가 존재 Clock 신호 CPU는 해당 신호에 맞춰 일을 처리한다.

euc-kr

1건의 항목

event

1건의 항목

  • 확률에 대해 이해한다. 사건에 확률을 부여하는 방법 동전의 앞면이 나오는 것을 사건 A라 정의했을 때, P(A)를 구하는 방법에 대해 알아보자. 고전적 방법 단순히 1/2라 생각한다. 이 생각의 배경에는 앞면과 뒷면이 나오는 가능성이 동일하다 생각하고 부여한다.

event-driven

2건의 항목

  • 무심코 사용하는 많은 비동기 함수들은 사실 변화의 과정을 겪은 결과들이다. 네트워크 I/O API가 어떻게 변화되어 왔는지 알아보자. 한눈에 보기 network API를 사용하다보면 자연스레 머리에 이런 그림이 떠오른다.

  • 이러한 문제에 대해 가장 쉬운 해결 방법은 서버쪽에서 Ready 상태일 때, client로 정보를 밀어넣어주는 것이다. 이렇게 처리할 경우, 이제 정보 제공 Event는 Server로부터 시작된다고 할 수 있다.

exception

6건의 항목

  • 개체 지향을 얘기하면 꼭 나오는 단어인 예외에 대해서 알아본다. Exception 사실 예외는 개체지향의 일부가 아니다.

  • 예외 처리를 제대로 하지 못하는 이유는 무엇일까? 예외 처리를 제대로 하지 못하는 이유 과거에 주류이던 예외 처리 방식은 지속적으로 작동이 보장되어야 하는 프로그램에 대해 “하드웨어가 멈추는 크래시”가 무서워서 그랬을 수 있다.

  • 그래서 예외는 어떻게 처리하는 것이 좋은걸까? 오류 상황 예외 상황과 오류 상황을 다른 의미로 사용할 것 오류 상황은 error condition을 말함 이 오류 상황을 처리하는 방법 중에 예외가 있음 오류 상황은 예측 가능한 상황을 의미함 프로그램 실행 중에 기본적으로는 일어나지 않음 하지만 일어날 수 있는 일 따라서 이러한 상황을 처리하는 코드는 프로그램 기능의 일부임 프로그래머가 이를 예측하지 못했다면? 버그 오류 상황을 처리하는 4가지 방법 무시 곧바로 크래시 일단은 작동하는데 언젠가는 크래시 안정적이지 못한 상태로 계속 동...

  • 깨끗한 코드와 오류 처리는 화실히 연관성이 있다. 하지만 오류 처리로 인해 프로그램 논리를 이해하기 어려줘진다면 깨끗한 코드가 아니다. 오류보다 예외를 사용하라 에전 프로그래밍 언어는 예외를 지원하지 않았다.

  • 예외 처리 예외 처리를 사용하므로써 알고리즘이 마주할 수 있는 예외 상황에 대해 코드를 분리할 수 있다. 이 결과 알고리즘에 보다 집중할 수 있다. 에러를 만들어 보자.

  • 에러 처리는 프로그래밍에서 빼놓을 수 없다. 에러 관리를 제대로 해두어야 추후 디버깅에 있어 이득을 볼 수 있다. 미래의 나를 위한 투자?의 개념이다. 에러를 관리하는 것도 중요하지만 에러를 내는 방법, 에러를 감지하여 처리하는 방법을 아는 것 역시 중요하다.

executable

1건의 항목

  • 실제 컴파일, 링킹이 끝난 뒤의 결과물에 대해서는 잘 모르는 것 같다. 실행 파일은 어떻게 구성되어 있는 걸까? 우리가 사용하는 프로그램들은, 바이너리화되어 있는 파일의 형태로 존재한다. 그런데, 이 실행파일의 형태는 OS에 따라 다른 형태로 존재한다.

exhaustive-search

7건의 항목

expectation

2건의 항목

  • Test라는 과정은 사실 공학 어디에서든 등장하는 개념이다. 작업에 의존도가 있고, 복잡한 과정으로 넘어갈 수록 이전 단계의 오류는 치명적이기 때문이다. 이를 관리하는 방법이 Test라 할 수 있다. 소프트웨어에서 역시 이러한 개념이 적용된다.

  • 확률변수 X가 따르는 분포 P(X)에서 추출된 x 로 구성된 함수 f(x)에 대한 평균 \mathbb{E} \mathbb{E}_{X \sim P} [f(x)] = \sum_x P(x) f(x) \mathbb{E}_{X \sim P} [f(x)] = \int p(x) f(x) \, dx 만약 \mathbb{E}_{X \sim P} 에서 확률분포 P(X)를 확실히 알 수 있다면 생략한다.

export-control

1건의 항목

extension

1건의 항목

  • Extension과 Protocol은 Swift에서 자주 사용되는 기능이다. 값에 접근이 불가함에도 Extension으로 추가 기능을 구현할 수 있다.

extract

2건의 항목

extream-programming

1건의 항목

extruder

1건의 항목

  • 3D 프린터에서 소재를 층층이 녹여 모델을 만드는 부분. 익스트루더(Extruder)는 3D 프린터에서 소재를 층층이 적층하여 모델을 만드는 핵심 부품 중 하나입니다.

facade

1건의 항목

factory-method

2건의 항목

  • GoF의 디자인 패턴, 팩토리 메서드 패턴에 대해 알아본다. 해당 글은, 다음의 코드를 기반으로 이해하는 것이 편리합니다.

  • 팩토리 메서드는 무엇일까? 무엇이 좋을까? Factory Method 사용할 클래스를 정확히 몰라도 개체 생성을 가능하게 해주는 패턴 public final class Cup { private int sizeMl; private Cup(int sizeMl) { this.sizeMl = sizeMl; } public static Cup createOrNull(CupSize size) { switch (size) { case SMALL: return new Cup(355); case MEDIUM: return new Cup(473); ...

fast-rcnn

2건의 항목

faster-rcnn

2건의 항목

fat

1건의 항목

  • 보조 기억 장치에 저장되는 파일의 할당에 대해 알아본다. 컴퓨터 시스템 자원 중 가장 중요한 것은 CPU이다. CPU 자원 관리에 대해서는 맨 처음 부분에서 다루었으며 CPU 스케줄링, 프로세스 동기화 등에 대해서 배웠다.

fcfs

1건의 항목

  • CPU 스케쥴링에 대해 알아본다. CPU가 하나의 프로세스 작업이 끝나면 다음 프로세스 작업을 수행해야 한다. 이때 다음 프로세스가 어느 프로세스인지를 선택하는 알고리즘을 CPU Scheduling 알고리즘이라고 한다.

fcn

1건의 항목

fdm

2건의 항목

  • PLA ABS.

  • Fused Deposition Modeling, Fused Filament Fabrication(FFF) 재료를 녹는점 이상의 온도로 녹인 후 일정한 두께로 층을 만들어 쌓아올리는 방식이다. 장점 저렴하다. 유지보수 난이도가 적다. 소재의 범위를 확장할 수도 있다.

feature-envy

2건의 항목

fermat-little-theorem

1건의 항목

fff

1건의 항목

  • Fused Deposition Modeling, Fused Filament Fabrication(FFF) 재료를 녹는점 이상의 온도로 녹인 후 일정한 두께로 층을 만들어 쌓아올리는 방식이다. 장점 저렴하다. 유지보수 난이도가 적다. 소재의 범위를 확장할 수도 있다.

fibonacci-number

1건의 항목

field

1건의 항목

file

5건의 항목

  • Numpy.loadtxt() 단, csv 파일의 모든 값이 같은 자료형이어야 한다.

  • 운영체제의 주요 서비스: 프로세스, 메모리, 파일관리, 시스템 호출에 대해 알아본다. 운영체제의 주요 서비스는 하드웨어 자원을 각 사용자 애플리케이션에 적절히 분배해주는 것이다.

  • 보조 기억 장치에 저장되는 파일의 할당에 대해 알아본다. 컴퓨터 시스템 자원 중 가장 중요한 것은 CPU이다. CPU 자원 관리에 대해서는 맨 처음 부분에서 다루었으며 CPU 스케줄링, 프로세스 동기화 등에 대해서 배웠다.

  • fstream Reading from file #include <iostream> #include <fstream> #include <string> using namespace std; int main(){ string line1; string line2 ifstream myfile("input.txt"); if (myfile.is_open()){ if(!myfile.eof()){ // end of file 이 아니면 계속 진행.

  • 컴퓨터를 통한 문제 해결을 위해서 우리는 정수, 실수, 문자열 등을 프로그램 실행중에 만들어서 사용하였다.

final

1건의 항목

finally

1건의 항목

finance

1건의 항목

  • 정의 자산의 가격 움직임이 특정 지수(예: KOSPI, S&P 500) 대비 얼마나 강하거나 약한지를 측정하는 기술적 분석 지표 주로 투자자가 특정 주식의 성과를 시장 전체와 비교하거나, 강세/약세 종목을 식별할 때 사용 정의 상대 강도는 주식의 가격 상승률(또는 하락률)을 특정 지수의 상승률(또는 하락률)과 비교하여 계산 주식의 상대적 강도를 평가해 시장 대비 초과 성과(Outperformance) 또는 저조한 성과(Underperformance)를 판단 계산 방법 \text{상대 강도(RS)} = \frac{\text{주...

financial-priority

1건의 항목

  • 핵심 요약 각각의 테마가 생산할 또는 절약할 돈의 양을 추정할 수 있다면, 우선순위에 반영할 수 있다. 재정적 가치는 제품 책임자의 역할이나, 이 책임에서 모두가 자유로운 것은 아니다. 재정적 가치 결정 회의의 목적은 각 테마에 대한 아래의 명세서를 완성하는 것이다.

finite-field

2건의 항목

firebase

2건의 항목

  • 개밥줬어? Stack: Firebase, MVC, UIKit, iOS Team: 팀 프로젝트 Role: 개발 진행 기간: 2021/09/23 → 2021/09/24 About: 우리집 강아지 생존권을 확립하는 식사 여부 확인 애플리케이션 개요 GitHub - wansook0316/bookathon_G: 개밥줬어? 기획의도 개밥줬어? 모두가 바쁜 요즘 우리집 강아지 밥은 누가 챙겨?! 이제 편하게 앱으로 확인하세요 ✏ 한줄소개 우리집 강아지 생존권을 확립하는 식사 여부 확인 애플리케이션 💻 서비스 가족 구성원이 강아지 밥을 주었는지...

  • 앱 설명 방탈출, 이제는 기록하고 경쟁하세요! 방탈출 카페 위치 조회, 방탈출 정보 기록 및 랭크 확인 기능 제공 AppStore: ‎Escaper 방탈출 Escaper Keynote 소개자료 WIKI 사용 스킬 MVVM Firebase CoreLocation MapKit 경험 한 것 사용자의 데이터 과금을 우려하여 ImageCache를 직접 구현하여 사용하였습니다.

first

2건의 항목

  • 지난 10년 동안 우리 분야는 눈부신 성장을 이뤘다. 97년도만 해도 TDD라는 개념을 아무도 몰랐다. 그 당시 단위 테스트는 프로그램이 돌아가는지 확인하는 일회성 코드에 불과했다.

  • 왜 필요할까? V-Diagram 왜 단계적인 테스트가 필요할까? 문제가 발생했을 때, 시간, 의사소통 등의 비용을 줄이기 위함 요구사항 만족함을 증명하는 것 어떤 종류가 있을까? 단위 테스트 테스트가 가능한 최소 단위로 나누어진 모듈, 프로그램, 객체, 클래스 내에서 결함을 찾고 기능을 검증 독립적으로 수행됨 프로그래머가 주도함 코드를 중심으로 수행 이러한 구분은, 어떤 Task냐에 따라 구분이 달라진다.

first-class-function

1건의 항목

fit

1건의 항목

flexibility

1건의 항목

floating-point

1건의 항목

floyd-warshall

2건의 항목

fluent-interface

2건의 항목

  • 빌더 패턴은 무엇일까? 무엇을 조심해야 할까? 어떤식으로 활용하는 것이 좋을까? Builder 개체의 생성과정을 그 개체의 클래스로부터 분리하는 방법 개체의 부분부분을 만들어 나가다 준비가되면 그제서야 개체를 생성 StringBuilder 단순한 것은 이걸 사용해서 원하는 문자열을 만들 수 있다.

  • 책임 연쇄 패턴은 무엇일까? 위키에 실린 예시 Chain-of-responsibility pattern @FunctionalInterface public interface Logger { public enum LogLevel { INFO, DEBUG, WARNING, ERROR, FUNCTIONAL_MESSAGE, FUNCTIONAL_ERROR; public static LogLevel[] all() { return values(); } } abstract void message(String msg, LogLevel severity...

flyweight

1건의 항목

folder

1건의 항목

  • Xcode에 파일을 추가하다보면, Create groups, Create folder reference와 같은 선택지를 마주하게 된다. 이녀석의 의미는 무엇일까?? 바로 이녀석이다. Create groups Finder에 폴더가 생긴다. 회색 아이콘이다.

for

3건의 항목

  • 반복문의 필요성 특정 명령을 반복적으로 사용해야 함 규칙적으로 반복하는 일 동일한 내용을 반복할 때 For 특정 문장을 일정한 횟수만큼 반복 시킬 때 사용 #include <stdio.h> int main() { int i, Sum = 0; for (i=1; i<=10; i++) Sum += i; printf("1부터 10까지의 합은 %d다.\n",Sum); return 0; } // 프로세스가 시작되었습니다.

  • 기존에 작업한 글이 있어 링크로 대체한다. 05. Control Flow 06. Loop Part. 01 07. Loop Part. 02 iomanip library 기본적으로 iostream 라이브러리로 출력을 하게되면, 왼쪽 정렬이다.

  • 컴퓨터를 통하여 문제를 해결하는 가장 중요한 이유 중에는 계속적으로 반복하는 작업을 컴퓨터가 대신 처리하여 주는 것이다. 이런 기능을 반복문이라고 하며, 대부분의 프로그래밍 언어는 다양한 반복문을 제공한다.

force-unwrapping

1건의 항목

format

2건의 항목

  • 형식을 맞추는 목적 코드 형식은 의사소통의 일환이다. 오랜 시간이 지나 원래 코드의 흔적을 찾아보기 어려울 정도로 변경되어도 맨 처음 잡아놓은 구현 스타일과 가독성 수준은 유지보수 용이성과 확장성에 계속 영향을 미친다.

  • format() print('{0} ate {1} apples {2}'.format('I', '3', 'yesterday')) print('{0} ate {1} apples {2}'.format('You', '5', 'at 2 pm')) print('{1} ate {0} apples {2}'.format('5', 'You', 'a...

forward-proxy

1건의 항목

  • 프록시란? 대리 응답 프록시(proxy)는 “대리”라는 뜻이다. 그렇다면 어떠한 경우에서 이러한 대리의 개념이 필요할까? 보통은 보안상의 이유로 직접 통신하는 것이 문제가 발생할 경우 이런 방식을 사용한다.

foundation-model

1건의 항목

fourier-series

4건의 항목

fp

1건의 항목

  • OOP 다음으로 떠오르는 패러다임인 FP에 대해서 알아보자. 물론 FP는 OOP보다 먼저 등장했다. 그렇다면 갑자기 왜 등장하게 되었을까? FP의 장점과 개념을 이해하면서 알아가보자.

frame

4건의 항목

  • page를 메모리에 할당하는 프레임 할당에 대해 알아본다. 1. Global VS Local Replacement Global Replacement 메모리 상의 모든 프로세스 페이지에 대한 교체 작업을 수행한다.

  • iOS 앱개발에서 화면을 담당한다면 피할 수 없는 autolayout! 공식 문서를 읽어보며 정리해보자.

  • 맨날 헷갈리는 이것. 오늘은 뽑아버리겠다. Frame Super view의 좌표계를 기준으로 했을 때 본인의 좌표계를 말한다. 우리가 위치를 표시하기 위해서는 기준 좌표계가 있어야 한다.

  • View 화면을 구성하는데 기본이 되는 class NSObject를 상속한 UIResponder를 상속해서 구성됨 CustomView는 UIView를 상속함 UIImageView, UILable, UIScrollView… 가능한 것들 Drawing Animation Layout subview 관리 Event Handling UIResponder 상속하기 때문에, touch와 같은 event에 반응 가능 gesture 추가 초기화 형태 // code init(frame:) init() // default parameter = CGRe...

framework

5건의 항목

  • Library에 대해서는 알아보았다.

  • 앞으로 진행할 긇에서는, Library와 Framework에 대해서 알아볼 것이다. 첫번째 순서로는 Library이다. Library & Framework 일단 간단하게 Library와 Framework에 대한 차이를 알아보고 가자.

  • 나뉘어진 프로젝트, 따로 관리되는 프레임워크. 이런 상황에서 새로운 프레임 워크를 만들어 넣는 방법을 알아본다. 프로젝트 상황 일단 내가 처한 상황부터 간략하게 소개하겠다. 거대해지는 앱의 경우에는, 하나의 단일 프로젝트로만 관리하는 것이 어렵다.

  • Framework와 library에 대해서는 모두 알았다. 그럼 XCFramework는 무엇일까? XCFramework framework의 다양한 변형들을 Bundle하는 새로운 방법, Framework를 한번더 Bundling 한다.

  • 앱스토어에서 크래시가 나서 Reject을 당하면 Crash Report를 함께 준다. 해당 파일을 열어보면 이상한 숫자들만 가득하다. dSYM debug symbol file App을 Release한 뒤에 Crash를 진단할 수 있게 도와주는 파일이다.

frequentist-probability

1건의 항목

fresh

1건의 항목

  • 언제 사용할까? Conditional GET을 이용하여 트래픽은 줄일 수 있으나, Round Trip은 줄일 수 없다.

friend

1건의 항목

  • friend 두개의 클래스가 있을 때, 서로 만들어진 모든 멤버변수, 멤버함수를 공유하기 위해서 우리는 friend 라는 키워드를 사용할 수 있다. a 객체가 b 객체를 친구로 선언한다면 b객체는 a객체의 모든 변수와 함수값을 갖다가 사용할 수 있다.

fully-convolutional-network

1건의 항목

function-pointer

1건의 항목

functional-programming

24건의 항목 처음 10개의 태그

functions

16건의 항목 처음 10개의 태그

functor

7건의 항목

fx

4건의 항목

  • 달러가 다른 주요 통화 전반에 강한지 약한지를 한 숫자로 재는 달러인덱스가 무엇이고, 원·달러 환율을 읽을 때 왜 이 지표를 같이 봐야 하는지 짚습니다. 2026년 중반 실제 데이터로 달러 강세와 원화 약세가 어떻게 겹쳤는지 살펴봅니다.

  • 두 나라 정책금리의 차이가 자본의 흐름과 환율을 어떻게 밀어내는지, 특히 한·미 금리차가 원·달러 환율을 읽는 핵심 축인 이유를 짚습니다. 2026년 중반 국면의 실제 금리 수준과 향후 경로 시그널을 함께 봅니다.

  • 원·달러 환율이 높다는 걱정을 두고, 지금의 원화 약세가 한국만의 문제인지 아니면 전 세계가 겪는 달러 강세의 한 조각인지를 실제 데이터로 갈라 봅니다. 무엇을 확인하면 이 판정이 뒤집히는지까지 짚습니다.

  • 오늘은 두 개의 숫자를 다시 읽습니다. NVIDIA의 분기 매출 816억 달러가 실은 소수 대형 클라우드의 지갑에 매여 있다는 이야기와, 높아 보이는 원·달러 환율의 주어가 '한국'이 아니라 '달러'라는 이야기. 무엇을 보면 이 판정이 뒤집히는지까지 짚습니다.

garbage-collection

2건의 항목

gateway

1건의 항목

  • 다른 네트워크로 들어가는 입구 역할을 하는 네트워크 포인트 종류가 다른 네트워크 간의 통로 역할을 하는 장치 Protocol을 적절히 변환해주기도 함 다른 언어를 사용하는 사람 사이의 통역가, 번역기라 생각 톨게이트와 유사 한국에서 일본으로 넘어가는 톨게이트가 있다 해보자.

gaussian-distribution

2건의 항목

gcd

3건의 항목

  • Completion은 main에서 호출해주는 것이 좋다. 이유 api를 호출하고, 결과가 도착한 경우 completion을 호출하는 함수가 있다고 하자.

  • 이전 글에서 동시성에 대해서 알아보았다. 하지만 iOS에서는 Thread를 직접 생성해서 작업하지 않는다. 그러면 어떻게 동시성 프로그래밍을 가능하게 할까? 그 답인 GCD에 대해서 알아보자. 시작해보자. 해당 글은 사내 발표와 추가 정보를 기반으로 작성하였습니다.

  • 앞에서는 새롭게 나온 개념들을 어떻게 사용하는지에 대해서 알아보았다. 그렇다면 왜 이렇게 설계했는지, 실제로는 어떻게 동작하는지 알아보자. Threading Model New feed reader 앱을 만든다고 생각해보자. 고수준에서 어떠한 것들이 필요할지 생각해보자.

generalized-function

1건의 항목

  • \int_{-\infty}^{\infty} \delta(x - \mu) dx = 1 \delta(x - \mu) = {1 \over 2\pi} \int_{-\infty}^{\infty} e^{i\omega(x - \mu)} d\omega 0을 제외한 모든 곳에서는 값이 0이나, 적분하면 1이 되는 함수.

generic

7건의 항목

  • Type Constructor 새로운 데이터 타입을 만드는 틀. A라는 진짜 데이터가 있을 때, 이 값을 유지하면서 감쌀 수 있는 논리적 구조. 감싼다는 측면에서 바라보았을 때 이 정의에 부합하는 녀석들은 이런 것들이 있을 수 있겠다.

  • Functor란 무엇인가? Functor Functor: 임의의 타입 T, U가 주어졌을 때, 연산 lift이 정의되는 01.

  • 변수, 클래스, 구조체 등을 선언할 때, 해당 객체 내부에서 사용하는 타입을 고정하지 않고 임의의 타입을 사용할 수 있도록 하는 것 실제 사용하는 시점에 사용하는 타입을 결정한다.

  • Iterator 반복자는 33. Generic 함수이다. 즉, 일반적인 프로그래밍을 가능하게 하기위해 만들어진 전역함수이다. 우리는 배열을 다루기 위해 vector, array, list와 같은 것들을 사용했다.

  • Generic의 경우 코드 중복을 줄일 수 있는 좋은 기능이다. 잘 다뤄둔다면 중급(?) 이상의 개발자가 되는데 큰 도움을 줄 것이다.

  • Semantics Type typealias Kilograms = Double struct Package { var weight: Kilograms } Combine Protocols protocol ReadAccess {} protocol WriteAccess {} typealias AdminAccess = ReadAccess & WriteAccess struct Teacher: AdminAccess {} Int, Double은 어디서든 사용되는 타입이다.

  • generic을 보면서 몇몇 곳에서 where 키워드를 사용하는 것을 보았다. 한번 정리해야 할 것 같아 공식 문서을 읽어본다. Generic Where Clauses generic에도 where 조항을 넣어 받는 타입에 세부 제약을 추가할 수 있다.

geodesy

1건의 항목

  • 지구 타원체 지구의 단면은 타원 장반경 a, 단반경 b라 했을 떄, {{a-b}\over a} = f f를 편평률이라 한다. a, b가 많이 차이나면 값이 크다 == 많이 찌그러져 있다. 그리고 이렇게 타원체로 만든 것을 지구 타원체라 한다.

geoid

1건의 항목

  • 지구 타원체 지구의 단면은 타원 장반경 a, 단반경 b라 했을 떄, {{a-b}\over a} = f f를 편평률이라 한다. a, b가 많이 차이나면 값이 크다 == 많이 찌그러져 있다. 그리고 이렇게 타원체로 만든 것을 지구 타원체라 한다.

geometric-mean

1건의 항목

geometry

2건의 항목

  • 골드1 : 기하 문제이다. 생각 볼록 껍질, Convex Hull이라 한다. 이 알고리즘에서 유명한 것을 그라함 스캔 알고리즘인데, 해당 동영상을 봐보자. 이것과 같은 알고리즘을 구현하기 위해서는 다음과 같은 절차를 거쳐야 한다. 가장 y가 작은 점을 구한다.

  • 일정한 형태의 도형들로 평면을 빈틈 없이 채우는 것을 말함 타일링(Tiling), 평면작성, 쪽매맞춤, 쪽매붙임이라고도 불림 목욕탕 타일, 보도블록 까는 것에서 흔히 볼 수 있음 타일의 개수, 조건들에 따라 다양한 테셀레이션들이 있다.

get

1건의 항목

gis

6건의 항목

  • 지리적 정보를 시각적으로 나타내는 도구 또는 매체 물리적 실체를 데이터의 형태로 옮겨야 한다. 이러한 의미에서 지도는 나라의 재산이다. GIS(Geographic Infomation System) 공간 데이터 + 속성 데이터 통합 관리 시스템 .

  • 3D를 어떻게 2D로 만들까? 지구 중심에 광원이 있다고 가정, 그림자를 투영 투영면의 종류에 따라 원통 원추(뿔) 방위(천장 원만 사용) 광원의 위치에 따라 심사(정중앙) 평사(표면) 정사(무한이 먼 광원, 평행) 메르카토르 도법 원통, 심사 정형법: 각도를 유지 모든 면이 같은 면적과 같이 보이기 때문에, 지도에서의 각과, 실제 배를 돌리때의 기수각이 같다는 점에서 이러한 단어가 붙음 지도의 위쪽으로 갈수록 실제 면적이 길게 표현됨 특성상 북극, 남극의 경우 투사가 되지 않아 표현자체가 어렵다는 단점이 존재 골피터스 도법 면적이...

  • 개요 한점에 대해 유일한 좌표를 부여하기 위한 체계 직교좌표계 (x, y, z) 구면좌표계 (r \theta, \phi) 지리좌표계 (\lambda, \phi) 지표면에만 있다고 가정하고 위, 경도로만 표현하는 것 지심좌표계 (x, y, z) 지표면 안으로 들어간다고 가정했을 때 필요 좌표계 EPSG 무지하게 많은 좌표계들을 한번에 알아볼 수 있는 코드 좌표계 변환 방식 측지계가 같으면 쉽게 변환이 가능 즉 준거타원체와 기준점이 같으면 하지만 측지계가 다르면 복잡한 로직이 필요 즉, 준거타원체도 다르고, 기준점도 다르면 3-Para...

  • Basic Point 하나의 좌표를 갖는 geometry LineString(Polyline) 두 개 이상의 좌표를 갖는 geometry Line 두개의 좌표인 경우 LinearRing 첫 점과 끝점이 같은 경우 분류 Simple Non-Simple - 선이 교차하는 경우 Simple, closed - 교차하지 않는 다각형모양을 가진 선 LinearRing Non-Simple, closed - Not a LinaerRing Polygon 면 hole을 가질 수 있다.

  • 관계 연산 (True or False) Equals 두 개가 완전히 동치인 경우 Disjoint 두 개가 하나도 겹치지 않는, 즉 서로소인 경우 Intersects 교집합 뚫고 지나가는 경우, 겹치는 경우 Touches 테두리에 걸리는 경우 Crosses 교차할 때 그런데, 비교하고자 하는 두개의 gemoetry가 서로 차원이 다르거나 (점, 선, 면) 혹은 선이어야만 연산이 성립 점 & 선, 선 & 면, 선 & 선만 정의가 가능 Within / Contains 완전히 포함될 떄 성립 Overlaps 같은 차원...

  • 점, 선, 면 Box로 만든 뒤에 저장 저장은 어떻게? Grid 전체 공간을 Tessellation하여 셀로 나누고, 데이터를 셀에 넣는 방식 Tessellation 일정한 형태의 도형들로 평면을 빈틈없이 채우는 것을 말함 a.k.a 쪽매맞춤 쪽매붙임 공간을 다 특정도형으로 쪼개고, 또 그 안에서 쪼개는 방식으로 저장하는 것 무조건적으로 다 분할해야 함 QuadTree 전체 공간을 재귀적으로 가로/세로 2등분하여 4개의 자식 노드를 가진 트리 구조를 사용하는 공간 인덱스 4개의 노드를 가지도록 분할하여 저장 특정 geometry가 ...

git

4건의 항목

  • 작업 하는 와중에 develop branch를 origin에서 pull하려다가 Fast Forward if possible이라는 것을 보게되었다. 이건 무엇인가? 알아볼 녀석 git kraken에는 pull 버튼 아래에 옵션을 선택할 수 있다.

  • 발생하는 경우 계정 패스워드를 바꿨는데 로컬 반영이 안된 경우 환경 등의 알지못하는 변경이 영향을 준 경우 해결 방법 git config --unset credential.helper // git config credential.helper store // 해당 Git directory에서 적용 git config credential.helper store --global // 전체 Git에서 적용 Reference push 시 Password 물어보지 않도록 설정하기 .

  • git checkout refs/tags/5.23.0\(2\) 이렇게 써줘야 함 (를 알아먹지 못하기 때문 .

  • 설명 실제 동작하는 스타벅스 앱을 클론 코딩하였습니다. 처음으로 팀플을 진행했으며, commit convention, 브랜치 전략등을 사용해보았습니다.

global

2건의 항목

go

2건의 항목

  • 보통 golang이라 부른다. 컴파일 언어이다. 장점 컴파일 속도가 매우 빨라 인터프리터 언어처럼 쓸 수 있다. 단순함과 실용성을 강조한다. 정적 타입 언어이다. GoRoutine 비동기 매커니즘을 제공한다. 단점 Byte code 생성 언어가 아니다.

  • Go Lang Features를 기반으로 한 Static site generator 빠르다. 유연함을 강조하여 다양한 플랫폼에서 쉽게 사용가능하다. Reference Hugo .

gold

1건의 항목

  • 금 가격이 지금 어디 있는지 미국 상장 ETF(GLD) 시세로 봅니다. 무엇이 움직이면 다시 들여다볼지 짚습니다.

goto

1건의 항목

  • Do ~ While 일단 Do 안에 있는 명령문을 실행하고 나중에 while문의 조건식 비교 적어도 한번은 명령문을 처리함 마지막에 세미콜론(;)을 반드시 추가해야 함 조건식을 검사하는 while(조건식)은 C 문장으로 여기기 때문 #include <stdio.h> int main() { int sum = 0; int number = 0; printf("1에서 10까지 합을 구합니다.\n"); do { number++; sum += number; } while(number<10); printf(&q...

gradient

1건의 항목

gradient-descent

1건의 항목

graham-scan

1건의 항목

  • 골드1 : 기하 문제이다. 생각 볼록 껍질, Convex Hull이라 한다. 이 알고리즘에서 유명한 것을 그라함 스캔 알고리즘인데, 해당 동영상을 봐보자. 이것과 같은 알고리즘을 구현하기 위해서는 다음과 같은 절차를 거쳐야 한다. 가장 y가 작은 점을 구한다.

grammar

1건의 항목

  • 절차적 언어 순수한 절차적 언어 즉, 데이터보다 프로세스에 중점이 맞춰져 있다. 반대로 말하면 개체지향 언어의 경우 “데이터”에 중점을 맞춘다는 뜻. 반드시 나쁜 것은 아님 그냥 매뉴얼에 적힌 내용을 순서대로 따라하는 느낌.

grand-central-dispatch

3건의 항목

  • Completion은 main에서 호출해주는 것이 좋다. 이유 api를 호출하고, 결과가 도착한 경우 completion을 호출하는 함수가 있다고 하자.

  • 이전 글에서 동시성에 대해서 알아보았다. 하지만 iOS에서는 Thread를 직접 생성해서 작업하지 않는다. 그러면 어떻게 동시성 프로그래밍을 가능하게 할까? 그 답인 GCD에 대해서 알아보자. 시작해보자. 해당 글은 사내 발표와 추가 정보를 기반으로 작성하였습니다.

  • 앞에서는 새롭게 나온 개념들을 어떻게 사용하는지에 대해서 알아보았다. 그렇다면 왜 이렇게 설계했는지, 실제로는 어떻게 동작하는지 알아보자. Threading Model New feed reader 앱을 만든다고 생각해보자. 고수준에서 어떠한 것들이 필요할지 생각해보자.

graph

9건의 항목

  • 그래프 용어 V : vertex E : Edge path 연결 그래프 : 어떤 두 정점 사이에도 경로가 존재하는 그래프 부분 그래프 가중치 포함 그래프 : Edge에 가중치가 달려있음 순환 경로 순환 그래프, 비순환 그래프 트리 - 비순환, 비방향그래프 신장 트리 : 연결된, 비방향성 그래프에서 순환경로를 제거하면서 연결된 부분 그래프가 되도록 하는 트리 신장 트리의 개수는 Cayley’s formula에 따른 개수를 가짐 최소비용신장트리 신장 트리가 되는 부분 그래프 중에서 가중치가 최소가되는 부분 그래프 무조건 트리로 나온다.

  • 골드3 : 그래프 문제이다. 생각 현재 시작 위치에서 다음 쓰레기를 치우고, 그 위치에서 다시 다음 경로를 탐색하는 과정으로 문제를 풀려 했다. 하지만 코드를 짜면서도 탐색과정이 계속하여 중복되서 어떻게 풀어야 할지 고민을 많이했다.

  • 실버1 : dfs를 사용하는 기초적인 문제이다. 이런 문제를 풀 때, 생각보다 실수를 많이하는 부분은, testcase가 있을 때, 초기화를 하지 않는 것이다. 항상 testcase가 있는 문제는, 이 부분을 유념해야 한다.

  • DFS graph 골드4 : 그래프 문제이다. 생각 이분 그래프란 무엇인가? 문제를 읽고는 파악하는 게 힘들었다. 차라리 그림으로 보는 것이 좋다. {:.center-text} 왼쪽과 같은 그래프가 있을 이걸 오른쪽 그림처럼 바꿀 수 있느냐의 문제이다.

  • 골드3 : dfs 문제이다. 풀이 트리 = 사이클이 없는 무방향 그래프. 어떠한 두 노드를 선택해도 경로는 하나이다. 즉 무조건 연결되어 있다. 쉽게 생각하기 위해서 이미 두 지름인 점을 알고 있다고 가정하자.

  • 실버2 : 그래프 문제이다. 생각 아. 정말 쉽겠지 했는데, 되지도 않는 시간 복잡도 줄여보겠다고 확인 되지 않는 것 썼다가 하루 다 날린 문제이다. 문제는 상당히 간단하게 DFS로 풀 수 있다.

  • Code import tensorflow as tf tf.set_random_seed(777) # 같은 값이 나오도록 하기 위해서 # 데이터 준비 x_train = [1, 2, 3] y_train = [1, 2, 3] # 초기에 랜덤하게 값을 할당한다.

  • 무향 Graph에서 완전히 연결된 부분 그래프 Reference Clique .

  • 용어 정점(Vertex, Node): 그래프의 노드 간선(Edge): 그래프의 노드를 연결하는 선 방향 (화살표) 무방향 그래프(Undirected Graph): 간선에 방향이 없는 그래프 방향 그래프(Directed Graph): 간선에 방향이 있는 그래프 값 가중치(Weight): 간선에 부여된 값 정의 그래프(Graph) 그래프(graph) G는 정점(vertex)의 집합 V와 간선(edge)의 집합 E로 구성된다.

graphics

4건의 항목

  • JPG(Joint Photographic Experts Group) 정의: 정지 화상을 위해서 만들어진 손실 압축 방법 표준 핵심: 전체적 구조 손실보다 디테일 손실에 둔감하다는 점을 통해 압축 원리: 이미지의 고주파 성분의 일부를 제거함.

  • PNG(Portable Network Graphics) 핵심: 비손실 압축 방법 원리 Huffman coding를 통한 압축 그렇기 때문에 반복되는 이미지가 등장할 경우 PNG가 보다 효과적 장점: 투명도 사용가능, 비손실 압축, 32비트 트루컬러, 크게 색상 변화가 크지 않은 이미지의 경우 사용하는 것이 좋다.

  • 색상정보가 담긴 픽셀로 표현 JPEG, GIF, PNG 등 .

  • 수학식으로 이루어진 점, 직선, 곡선 등으로 표현 확대 및 축소에 자유로움 계산량이 많아 하지만 색상의 자연스러운 변화나 세밀한 표현이 어려움 AI, SVG 등 .

greedy

7건의 항목

  • 그래프 용어 V : vertex E : Edge path 연결 그래프 : 어떤 두 정점 사이에도 경로가 존재하는 그래프 부분 그래프 가중치 포함 그래프 : Edge에 가중치가 달려있음 순환 경로 순환 그래프, 비순환 그래프 트리 - 비순환, 비방향그래프 신장 트리 : 연결된, 비방향성 그래프에서 순환경로를 제거하면서 연결된 부분 그래프가 되도록 하는 트리 신장 트리의 개수는 Cayley’s formula에 따른 개수를 가짐 최소비용신장트리 신장 트리가 되는 부분 그래프 중에서 가중치가 최소가되는 부분 그래프 무조건 트리로 나온다.

  • 실버4 : 그리디 문제이다. 풀이 단순한 문제이다. 앞뒤에 어떠한 문자를 넣을 수 있으니, 현재 가지고 있는 문자열만 가지고서 부분적으로 보았을 때, 가장 작은 차이를 가지고 있는 지점만 알면된다. 이후는 맞춰서 끼워넣으면 되니까.

  • 골드2 : 그리디, 정렬 문제이다. 생각 실제로 운송물을 움직인다고 생각해보자. 그렇다면 가장 무거운 하중을 움직일 수 있는 크레인이 가장 많이 움직여야 최단 시간에 짐을 움직일 수 있다. 이부분이 핵심이다.

  • 실버1 : 그리디 문제이다. 풀이 처음에 부르트 포스로 접근했다가, 시간초과가 났다. 그래서 그리디로 방향을 전향했다. >가 나왔을 때, 가장 큰 숫자를 설정해두고, 이하 부터 순서대로 이숫자를 채우는 것으로 해당 조건을 만족시킬 수 있다.

  • 골드5 : 스택 문제이다. 풀이 비슷한 문제를 한 3번 봤다. 근데 그 때는 heap을 사용해서 뒤에서 가장 큰 문자를 계속해서 뽑는 것으로 문제를 해결했다. 풍선 터트리기 그런 방식으로 해당 문제를 다시 풀려했으나, 밑에 알고리즘 분류를 봤는데 stack…이더라.

  • 풀이 어떻게 해야 이런 문제를 풀 수 있을까. 일단 조합과 같은 생각은 n이 작을 때 한다. 완전 탐색 방법을 먼저 생각한다.

  • Greedy는 알고리즘 문제를 풀 때 보았던 용어이다. 이 용어는 어떤 의미로 사용이 될까? 무언가 탐욕적으로 한다는 의미일 것이다. 다음과 같은 문자열에서 처음 나오는 tag를 검색하고 싶다 해보자.

group

2건의 항목

group-by

1건의 항목

group-theory

4건의 항목

guard

1건의 항목

gui

1건의 항목

  • 운영체제에 대한 정의, 역할에 대해 알아본다. 운영체제는 사용자가 컴퓨터를 사용하기 위해 필요한 소프트웨어이다. 일반적으로 사용하는 모든 프로그램은 운영체제에서 그 자원을 관리한다. 목적 운영체제를 사용하는 가장 큰 목적은 하드웨어의 관리이다.

halting-problem

1건의 항목

  • 그래서 예외는 어떻게 처리하는 것이 좋은걸까? 오류 상황 예외 상황과 오류 상황을 다른 의미로 사용할 것 오류 상황은 error condition을 말함 이 오류 상황을 처리하는 방법 중에 예외가 있음 오류 상황은 예측 가능한 상황을 의미함 프로그램 실행 중에 기본적으로는 일어나지 않음 하지만 일어날 수 있는 일 따라서 이러한 상황을 처리하는 코드는 프로그램 기능의 일부임 프로그래머가 이를 예측하지 못했다면? 버그 오류 상황을 처리하는 4가지 방법 무시 곧바로 크래시 일단은 작동하는데 언젠가는 크래시 안정적이지 못한 상태로 계속 동...

harmonic-mean

1건의 항목

hash

3건의 항목

hash160

1건의 항목

hdd

2건의 항목

  • 기억 장치의 동작방법에 대해 이해해보자. 최호성님의 유튜브 강의를 보며 기본적인 컴퓨터 구조를 이해하고 정리하자.

  • 위 그림은 하드디스크의 구조이다. platter 실제 데이터를 기록하는 자성을 가진 원판이다. platter는 그림과 같이 여러 개가 존재하고 앞뒤로 사용할 수 있다. 한 platter는 여러 개의 track으로 이루어져 있다.

head

1건의 항목

header

2건의 항목

  • Header File 왜 사용하는가? C++ 코드를 작성하다가 보면, Class 내의 멤버변수, 멤버함수, 또 내가 만들어서 사용하는 사용자 정의 함수, main 함수 등 결국 어떤 프로그램을 동작하고 싶은 건지 전체적 구조를 알기 어렵다는 점이 있다.

  • headerView가 있는 TableView에서 높이는 제대로 맞는데, 이상하게 셀수가 많아질 상황에서 끝까지 스크롤되지 않는 문제가 발생했다. headerView의 layout을 먼저 잡아주어야 한다.

heap

3건의 항목

heuristics

2건의 항목

  • 우리는 private을 통해 변수를 자주 정의한다. 이렇게 하는 이유는 남들이 변수에 의존하지 않도록 만들고 싶기 때문이다. 그럼에도 불구하고 많은 프로그래머들은 get, set 함수를 당연하게 외부에 노출하는 오류를 범한다.

  • 15장(JUnit)과 16장(SerialDate Refactoring)은 코드가 많고, 지배적인 내용이 아니라 판단하여 생략하였다. 17장, 냄새와 휴리스틱을 정리해본다. 개인적으로 가장 실용적이며 중요한 절이라는 생각이 든다.

high-demensional-lift

1건의 항목

high-order-function

1건의 항목

histogram

1건의 항목

  • 통계 개념 정리에 앞서 통계학이라는 학문에 대해 알아본다. 통계는 왜 공부하는가 미래를 알기 위해서, 집단의 특징을 알기 위해서 우리는 군중의 특징에 대해 알 필요가 있다. 예를 들어 물건을 판다고 생각해보자.

hit-test

1건의 항목

  • Hit Testing 그럼 터치가 어디서 발생했는지는 어떻게 알 수 있을까? 즉, 터치가 발생한 시점에, 어떻게 내가 누른 가장 상위 객체(상단은 view 계층에서 top을 말함)를 판단할 수 있을까? 여기서 이벤트에 반응한 가장 상위 객체를 first Responder라 한다.

host

2건의 항목

  • 디바이스가 가지고 있는 고유의 물리적, 하드웨어 주소 패킷에 들어오는 mac 주소를 보고 적어둔 테이블을 기반으로 사설 IP주소를 알아낸다음 해당 디바이스로 데이터를 넘겨준다.

  • 가상 단말기 프로그램 ssh, telnet, tcp 접속을 위한 클라이언트 window환경의 호스트 운영체제에서 다른 운영체제의 CLI환경에 SSH 접속 가능 받아서 사용하면 끝 호스트네임 (사용자이름@IP주소) 포트번호 넣어주고 뿅 .

html

1건의 항목

  • <details> <summary>제거된 파일 개수: 435</summary> 세부사항 </detail> .

http

6건의 항목

  • HTTP 관련 내용은 사실 읽어도 읽어도 잘 머리에 안남는 것 같다. 사실 전반적인 흐름은 아는데, 뭔가 단어들이 기억에 잘 남는다는 느낌은 안들었었다. 다시한번 정리하면서 반복학습을 할 목적으로 포스팅을 남겨본다.

  • HTTP 메소드 종류 GET 요청이 캐시된다. 브라우저, 로봇이 임의로 요청이 가능하다.

  • CodeInfomationRangeDescription1xxInformational100, 101100: Continue 101: Switching Protocols 2xxSuccessful200~206 201: Created 202: Accepted (대기열 긴 경우, 요청은 받았어! ^^ 이 용도..) 3xxRedirection300~307 301: Moved Permanently 302: Found (이전 Moved Temporarily) 307: Temporary Redirect (Recommaned) 308: Perman...

  • www.example.org/index.html 을 GET 요청 한 상황을 가정해보자. 서버는 80번 포트를 열고 요청을 대기한다. 클라이언트는 웹 브라우저 주소창에 URL을 입력한다. 웹 브라우저는 DNS에 물어보고 해당 URL Host의 아이피를 알아낸다.

  • 언제 사용할까? Conditional GET을 이용하여 트래픽은 줄일 수 있으나, Round Trip은 줄일 수 없다.

  • HTTP에서 상태가 필요한 이유 로그인이 되게 하고 싶다. 쇼핑몰 로그인이 아니어도 카트 목록을 기억하게 하고 싶다. 해결 방법 Fat URL - URL에 상태 정보를 모두 집어 넣기 - URL을 파싱해서, 사용자의 상태를 확인한다.

https

2건의 항목

  • HTTP 관련 내용은 사실 읽어도 읽어도 잘 머리에 안남는 것 같다. 사실 전반적인 흐름은 아는데, 뭔가 단어들이 기억에 잘 남는다는 느낌은 안들었었다. 다시한번 정리하면서 반복학습을 할 목적으로 포스팅을 남겨본다.

  • TLS 위에서 동작하는 HTTP 종단간 암호화 (E2E 암호화) HTTP 메시지를 암호화하여 주고 받음 보안이란? 서버 인증 클라이언트는 자신이 진짜 서버임을 알 수 있어야 함 클라이언트 인증 서버는 자신이 진짜 사용자임을 알 수 있어야 함 무결성 클라이언트와 서버는 그들의 데이터가 위조되는 것으로 부터 안전해야 함 암호화 클라이언트와 서버는 도청 걱정 없이 대화가 가능해야 함 동작 방식 서버가 클라이언트에게 인증서를 보내어 자신을 증명한다.

hub

2건의 항목

  • 기본 요소 송신기 전달 매개체(매질) 수신기 신호 아날로그 연속적인 값이기 때문에, 노이즈에 의해 영향을 받을 수 있다. 즉, 값의 변화가 반영될 여지가 크다. 애초에 연속적인 값이기 때문.

  • 비트 0, 1 비트가 모여 데이터 구성 비트를 주고 받는 것이 통신의 본질 바이트 = 8비트 워드 = 1바이트가 2개 (16비트) 데이터가 어떻게 전기 신호로 전달? 데이터가 전달되지 않을 때 전기적 신호가 존재 Clock 신호 CPU는 해당 신호에 맞춰 일을 처리한다.

hugging-property

1건의 항목

hungarian-algorithm

1건의 항목

hyper-parameter

1건의 항목

hyperscaler

1건의 항목

  • 전자상거래 회사로 아는 Amazon이 왜 AI 인프라 이야기의 큰손으로 계속 등장하는지 짚습니다. NVIDIA의 최대 고객군이면서 동시에 자체 칩으로 경쟁하는 이중 역할, 그리고 번 현금 대부분을 데이터센터에 쏟는 지출 구조를 어떤 축으로 읽어야 하는지 살펴봅니다.

identifier

2건의 항목

identity

1건의 항목

  • Types of Matrix A\;=\;[a_{ij}] i = m , row size j = n, column size Square Matrix m = n \begin{bmatrix} 0 & 1 & 0\\ 0 & 2 & 0\\ 0 & 0 & 3 \end{bmatrix} Rectangular Matrix m\; \ne\;n \begin{bmatrix} 0 & 1 & 2\\ -1 & 0 & 3\\ -2 & -3 & 0\\ 9 & 3 & ...

image

10건의 항목

  • 컴퓨터가 모든 것을 숫자로 다루는 방식을 알아보자. 최호성님의 유튜브 강의를 보며 기본적인 컴퓨터 구조를 이해하고 정리하자. 컴퓨터로 글자를 나타내는 방법 ASCII Code 숫자와 글자에 대한 함수관계를 정의한다.

  • JPG(Joint Photographic Experts Group) 정의: 정지 화상을 위해서 만들어진 손실 압축 방법 표준 핵심: 전체적 구조 손실보다 디테일 손실에 둔감하다는 점을 통해 압축 원리: 이미지의 고주파 성분의 일부를 제거함.

  • PNG(Portable Network Graphics) 핵심: 비손실 압축 방법 원리 Huffman coding를 통한 압축 그렇기 때문에 반복되는 이미지가 등장할 경우 PNG가 보다 효과적 장점: 투명도 사용가능, 비손실 압축, 32비트 트루컬러, 크게 색상 변화가 크지 않은 이미지의 경우 사용하는 것이 좋다.

  • 색상정보가 담긴 픽셀로 표현 JPEG, GIF, PNG 등 .

  • 수학식으로 이루어진 점, 직선, 곡선 등으로 표현 확대 및 축소에 자유로움 계산량이 많아 하지만 색상의 자연스러운 변화나 세밀한 표현이 어려움 AI, SVG 등 .

  • image 화 하기 코드가 다른 것으로 파악, 아래 코드는 동작한다.

  • 개념 개발자와 시스템 관리자가 컨테이너 기술을 사용하여 어플리케이션을 개발, 배포, 실행하기 위한 플랫폼 컨테이너 기술을 리눅스에서 사용되던 기술이다. 이 때, 이 기술을 사용하여 응용프로그램을 배포하는 것을 컨테이화 시킨 것이다.

  • Data(contentof)는 로컬 파일을 불러오기 위한 메서드이다. 애초에 동기 메서드이다. 가끔 이걸 DispatchQueue에 Item으로 싼뒤에 넣어 비동기 처럼 사용하는 경우가 있는데, 이러면 안된다. API의 존재 이유에 맞지 않기 때문이다.

  • 비동기 네트워크 처리에 있어 순서대로 이미지 순서가 보장되어야 하는 문제를 해결했습니다. 방탈출 테마 세부페이지에서는 해당 방을 방문한 유저들의 Top 5 랭킹이 보여지도록 하였습니다.

  • 현재 프로젝트에 적합한 간단한 이미지 캐시를 구현하여 사용하였습니다. 기본에 임시로 작업한 이미지 캐시의 경우, 네트워크 요청후 디스크에 저장이 되는 구조로 제작하였습니다.

immutable

1건의 항목

  • 분기에 따라 값이 결정되는 코드를 짤 때, 변수를 무엇으로 선언하는 것이 좋을까? 작은 부분이나 좋은 지적이라 생각하여 정리해본다. 핵심 요약 분기에 따라 값이 결정될 때 변수를 선언해야 한다면, var보다는 let을 우선적으로 검토해보자.

implementation

26건의 항목 처음 10개의 태그

inception

1건의 항목

include

2건의 항목

  • 왜 C를 배워야 하는가? C 표준 C89/ANSI-C 최초의 C 표준 (89년) 여전히 많은 코드가 이 표준을 사용 임베디드 시스템 이걸 가장 많이 살펴볼 것임 C99 많은 내용 추가 인라인 함수 새로운 헤더파일들 새로운 자료형 한 줄짜리 주석 유연한 배열 멤버 가변 길이 배열 보다 안전한 I/O 함수 C11 C99 대체 유니코드 지원 이름 없는 구조체 및 공용체 제네릭 표현식 표준화된 멀티스레딩 지원 C18 신규 기능 없음 C11의 결함만 수정 include? 현대에서 많이 사용하는 import와 같은 구문 다른 파일에 구현된 함...

  • Header File 왜 사용하는가? C++ 코드를 작성하다가 보면, Class 내의 멤버변수, 멤버함수, 또 내가 만들어서 사용하는 사용자 정의 함수, main 함수 등 결국 어떤 프로그램을 동작하고 싶은 건지 전체적 구조를 알기 어렵다는 점이 있다.

independent-events

1건의 항목

  • 확률에 대해 이해한다. 사건에 확률을 부여하는 방법 동전의 앞면이 나오는 것을 사건 A라 정의했을 때, P(A)를 구하는 방법에 대해 알아보자. 고전적 방법 단순히 1/2라 생각한다. 이 생각의 배경에는 앞면과 뒷면이 나오는 가능성이 동일하다 생각하고 부여한다.

index

2건의 항목

inference

2건의 항목

  • 표본 분포와 통계량에 대해 이해한다. 추론 (inference) 표본을 가지고 모집단의 특성(모수)를 예측하는 것 통계학의 핵심은 내가 원하는 집단의 특징을 알아내는 것이다.

  • 통계적 추론에 대해 이해한다. 통계적 추론 표본이 갖고 있는 정보를 분석하여 모수에 관한 결론을 유도하고, 모수에 대한 가설의 옳고 그름을 판단하는 것 추정의 방법 모수를 추정하는 방법에 대해서 알아본다. 점 추정 모수를 추정하기 위해 하나의 값을 제안한다.

infill

1건의 항목

  • Infill은 3D 프린팅된 객체 내부를 채우는 소재의 구조를 나타냅니다. 3D 프린터는 대부분 객체의 외부와 내부를 채우기 위해 격자 또는 패턴으로 된 구조를 생성합니다. 이 구조는 모델의 강도를 유지하면서도 소재 사용과 프린팅 시간을 최적화하는 데 도움이 됩니다.

infomation-theory

4건의 항목

  • 두 확률 분포 P와 Q의 차이를 측정하는 방법 H(P, Q) = H(P) + D_{KL}(P||Q) = E[\log {Q(x)}] = \sum_{x \in \mathcal X} P(x) \log {Q(x)} Information Entropy와 유사하지만, P의 정보량을 측정하는 것이 아닌, Q의 정보량을 측정한다.

  • 정보이론에서 확률 변수(Random Variable) 의 불확실성을 정량화하는 척도 Shannon Entropy 이산 확률 변수 X의 섀넌 엔트로피 H(X)는 다음과 같이 정의된다.

  • 동일 확률 변수 X에 관한 개별적인 두 확률분포 P와 Q의 차이를 측정하는 방법 Kullback-Leibler Divergence D_{KL}(P||Q) = E(\log \frac{P(x)}{Q(x)}) = \sum P(x) \log \frac{P(x)}{Q(x)} 성질 비대칭성에서 오는 특징 KL Divergence는 두 분포의 차이를 측정하는 방법이라고 했다.

  • 직관 발생 가능성이 낮은 사건이 발생 가능성이 높은 사건보다 더 많은 “정보”를 얻을 수 있다. 즉, 항상 발생하는 사건은 정보가 없다. 반대로 간헐적으로 발생한다면 정보가 많다. 위 생각에 동의한다면, 이를 수치화 할 수 있어야 한다.

infrastructure

1건의 항목

inheritance

7건의 항목

initial-object

1건의 항목

initialization

2건의 항목

  • 초기값 주기 x, w = 0 일 경우 gradient가 0이 되서 학습이 안된다! 모두 0이면 학습이 안된다! Restricted Boatman Machine(RBM) 어떻게 Weight를 초기화 할 수 있을까? 그 해결방안 중 하나가 RBM이었는데, 아이디어는 간단하다.

  • Global, Static 변수에 대해 사용시에 초기화 되는 방법 eager 앱 시작시 생성됨 장점 단순하다. data race 문제 없다. 단점 초기 로딩시 느리다. lazy 사용시에 초기화됨 장점 초기 로딩시 필요없는 것들을 로딩하지 않아 빠르다.

initializer

1건의 항목

inline

2건의 항목

inner-class

1건의 항목

  • Java에서의 Nested Class를 알아보며, 어떻게 변화해 왔을지 한번 생각해보자. Nested Class 클래스 안에 다른 클래스 Java에서는 둘로 나뉜다.

inout

2건의 항목

  • 일급 함수 parameter로 사용가능 return 값으로 사용가능 익명함수 argument label 호출하는 쪽에서 사용하는 이름 parameter name function 안에서 사용하는 이름 Variadic parameters 0개 이상의 특별한 타입을 나열해서 파라미터로 넘길 수 있음 ...을 넣어서 사용 이렇게 선언된 경우 함수안에서 해당 type의 Array로 사용할 수 있음 func sum(values: Int…) -> Int { var result = 0 for value in values { result +=...

  • 오늘은 작업 중 내가 모르는 코드를 발견해서 글을 써본다. reduce! reduce(::) 형태만 봐왔었는데 reduce(into::) 형태도 있더라! 알아보자.

input

3건의 항목

  • Numpy.loadtxt() 단, csv 파일의 모든 값이 같은 자료형이어야 한다.

  • fstream Reading from file #include <iostream> #include <fstream> #include <string> using namespace std; int main(){ string line1; string line2 ifstream myfile("input.txt"); if (myfile.is_open()){ if(!myfile.eof()){ // end of file 이 아니면 계속 진행.

  • 컴퓨터를 통한 문제 해결을 위해서 우리는 정수, 실수, 문자열 등을 프로그램 실행중에 만들어서 사용하였다.

instance

2건의 항목

integer

1건의 항목

  • 자료형 프로그램에서 선언된 변수들이 기억 공간에서 어떻게 저장되고 처리되어야 할지, 컴파일러에게 알려줌 종류 정수형 실수형 문자형 사용자 정의 자료형 정수형 소수점이 없는 숫자 음의 정수, 0 , 양의 정수 오버플로우(overflow) 데이터 허용 범위를 넘는 값을 변수에 저장할 때, 의도한 값이 아닌 다른 값이 저장되는 것 #include <stdio.h> int main(void) { short a = 32767, b=2, c; unsigned short d; c = a+b; d = a+b; printf("c...

integration

1건의 항목

interest-rates

1건의 항목

  • 두 나라 정책금리의 차이가 자본의 흐름과 환율을 어떻게 밀어내는지, 특히 한·미 금리차가 원·달러 환율을 읽는 핵심 축인 이유를 짚습니다. 2026년 중반 국면의 실제 금리 수준과 향후 경로 시그널을 함께 봅니다.

interface

5건의 항목

  • 최호성님의 유튜브 강의를 보며 기본적인 컴퓨터 구조를 이해하고 정리하자. PC 조립 과정 보며 구조 이해하기 컴퓨터 하드웨어 구성 요약 다나와 다나와 이곳에 가면 컴퓨터 용어에 대한 간단한 설명들을 쉽게 알 수 있다. 컴퓨터란? CPU가 가장 중요하다.

  • 프로세스간 통신 interface IPC를 가능케하는 interface이다. 서로 다른 process에서 접속을 하려 할 때, 이 socket을 사용하여 접근하게 되고, 해당 socket은 접속하는 process가 제대로 왔는 지와 같은 검사를 수행하게 된다.

  • 인터페이스는 왜 필요할까? 그리고 무엇일까? Interface의 사전적 의미 inter-(상호간의) + -face(면) = interface 접해있는 두 물체나 공간 사이의 경계 사용자는 스위치를 키는 버튼에 집중 이걸 누르면 어떤 일이 일어날지를 앎 (what) 어떻게 그런일이 일어나는지는 모름 (how) 실제 동작은 구현 공간에서 일어남 배선의 연결 사용자는 잘 알지 못하는 공간 구현자만 알고 있음 이미 알고 있는 개념 = 함수 함수는 블랙박스임: 호출자는 내부가 어떻게 도는지 이해하려 하지 않는다.

  • 인터페이스를 사용해야 하는가? 그냥 실질적인 내용이 담긴 구현체를 사용해야 하는가? 모든 것이 인터페이스여야 한다는 주장 다른 클래스의 메서드를 절대로 직접 호출하면 안된다. 모든 것을 인터페이스로 만들어라.

  • 우리는 시스템에 들어가는 모든 코드를 보통 직접 개발하지 않는다. 외부 패키지 구입, 오픈소스, 사내 팀의 제공 컴포넌트 사용 등 다양한 방식으로 외부 코드를 사용한다. 이 외부 코드를 우리 코드에 깔끔하게 통합하는 것은 꽤나 중요하다.

interface-separation-principle

2건의 항목

intermediate-value-theorem

1건의 항목

  • Intuition Concept 컴퓨터가 생각하는 방식은 절레절레와 노가다 밖에 없어요. 무슨말이냐면 Yes, No의 선택방식과, 계산을 계속하는 방법이 전부라는 의미죠. 멍청하다고 생각할 수 있겠지만 이것을 잘 활용하면 강점이 됩니다.

internet

2건의 항목

  • 네트워크 두 대 이상의 컴퓨터를 연결한 것 인터넷 수억개의 컴퓨팅 장치를 연결하는 TCP/IP 프로토콜로 구현된 네트워크 결론 인터넷은 네트워크의 일종 TCP/IP 프로톨을 준수하는 네트워크 이용하기 위해 웹브라우저 사용 .

  • LAN 근거리 통신망 같은 건물 안을 범위로 하는 네트워크 집, 사무실과 같은 공간에서 사용 컴퓨터, 프린터와 같은 장치를 연결 MAN 도시권 통신망 서울시, 대학 캠퍼스 정도의 범위 WAN 광역 통신망 넓은 범위에 구축된 네트워크 랜과 랜을 연결 범위가 넓어 속도가 느리고 오류가 많다.

interpolation

2건의 항목

  • 탐색하는 방법에 대해 알아보자. 검색 문제 n개의 키를 가진 배열 S와 키 x가 주어졌을 때, x=S[i]가 되는 첨자 i를 찾는 것 없다면 오류로 처리한다. 결론 : 이분 검색 알고리즘보다 효율적인 알고리즘은 없다. 이진 검색 상태 공간 트리 순차 검색은 답이없다.

  • 오늘은 보간법에 대해 공부해본다. Intution Concept 보간법은 사실 위와 같이 4개의 점을 서로서로 이어서(다양한 방법이 있겠죠?) 그 사이값을 추정하는 방법에 대한 것이다. 그런데 비슷한 걸 앞에서 하지 않았냐! 하고 궁금할 지도 모르겠다.

interpreter

2건의 항목

  • 컴파일러 소스코드를 타겟 언어와 의미론적으로 동등하게 번역해주는 프로그램 어떠한 언어에서 기계어로만 변환하는 것을 부르지 않음 예시 C 언어 컴파일러 (기계어로 변환) Silicon Compiler 논리 게이트 연산을 수행할 때 쉽게하기 위해 해주는 녀석 OS Command language 명령어 커맨드를 어휘분석, 구분 분석을 통해서 OS가 이해하는 언어로 변환함 Query language 쿼리문 자체를 데이터 베이스가 이해하는 언어로 변경해줌 컴파일러 언어 한번 컴파일이 오래걸림 하지만 컴파일 하고나면 실행파일이 생성되기 때문에...

  • GoF의 디자인 패턴, 해석자 패턴에 대해 알아본다. 해당 글은, 다음의 코드를 기반으로 이해하는 것이 편리합니다.

interrupt

1건의 항목

  • 일괄처리부터 시분할시스템, 최근의 고급운영체제, 인터럽트에 기반한 현대 운영체제까지 변천 역사를 알아본다. 1. 초기 컴퓨터 노가다, 사람 손도 많이가, 장치도 엄청커, 비싸기도 비싸 운영체제는 컴퓨터가 발전하면서 같이 발전하게 되었다.

intrinsic-content-size

1건의 항목

inverse-matrix

3건의 항목

  • Inverse Matrix Definition 정사각행렬에서 정의된다. AA^{-1}\;=\;A^{-1}A\;=\;I Determinant 에 따른 구분, 그리고 의미 Determinant 가 존재한다. 역행렬이 존재한다.

  • Rank 행렬은 하나의 공간을 매핑한다고 했다. 방금은 3 x 3 의 행렬에 대해 봤기 때문에, 열벡터 공간과 행벡터 공간이 동일하게 3차원 공간을 매핑하고 있었다. 하지만 행렬이 꼭 정사각행렬이라는 법은 없다.

  • Gauss Elimination 가우스 소거법은, 연립방정식의 해를 행렬을 이용해 쉽게 구하는 방법이다. 기본적으로 행벡터의 계수를 조작하여 구하는 방법으로, Upper Triangle Matrix, Lower Triangle Matrix 를 만들어 구하는 방법이다.

io

1건의 항목

  • 운영체제의 주요 서비스: 프로세스, 메모리, 파일관리, 시스템 호출에 대해 알아본다. 운영체제의 주요 서비스는 하드웨어 자원을 각 사용자 애플리케이션에 적절히 분배해주는 것이다.

ios

74건의 항목 처음 10개의 태그

iou

1건의 항목

ip

4건의 항목

  • HTTP에서 상태가 필요한 이유 로그인이 되게 하고 싶다. 쇼핑몰 로그인이 아니어도 카트 목록을 기억하게 하고 싶다. 해결 방법 Fat URL - URL에 상태 정보를 모두 집어 넣기 - URL을 파싱해서, 사용자의 상태를 확인한다.

  • 인터넷 공간 상에서 해당 단말기의 고유 주소 Socket을 통해 통신한다는 것은 알았다. 근데 우리가 전화를 걸더라도, 어디에 전화를 걸것인지 알아야 한다. 그걸 대표하는 것이 전화번호이다. 마찬가지로 통신을 하려면, 어디에 통신할 것인지 알려주는 과정이 필요하다.

  • 네트워크 두 대 이상의 컴퓨터를 연결한 것 인터넷 수억개의 컴퓨팅 장치를 연결하는 TCP/IP 프로토콜로 구현된 네트워크 결론 인터넷은 네트워크의 일종 TCP/IP 프로톨을 준수하는 네트워크 이용하기 위해 웹브라우저 사용 .

  • IP 주소를 갖고 있는 컴퓨터에서 Process에 접근하기 위한 번호 해당 컴퓨터에 들어가더라도, 어떤 process에 접근하는지를 알아야 한다. 그걸 대표하는 것이 포트 번호이다.

ipv4

1건의 항목

  • 인터넷 공간 상에서 해당 단말기의 고유 주소 Socket을 통해 통신한다는 것은 알았다. 근데 우리가 전화를 걸더라도, 어디에 전화를 걸것인지 알아야 한다. 그걸 대표하는 것이 전화번호이다. 마찬가지로 통신을 하려면, 어디에 통신할 것인지 알려주는 과정이 필요하다.

isomorphism

1건의 항목

isp

3건의 항목

  • Internet Service Provider 서비스를 제공하는 모든 제공자를 뜻한다.

  • 이전글들은 사실 이 원칙을 위해 달려온 것이 아닌가하는 생각이 든다. OOP의 정수로 불리우는 SOLID원칙에 대해서 깊게 알아보고, 실제 iOS Framework의 설계 방향에 대입하면서 보다 찐한 이해를 경험해보자.

  • SOLID 설계 정신에 대해 알아보자. SOLID 정신으로 이룰 수 있는 것 소프트웨어 설계를 “유연하게” 할 수 있다. 유연한 소프트웨어 설계, 즉 추상적인 설계로 커플링을 제거할 수 있다.

iterator

2건의 항목

  • GoF의 디자인 패턴, 반복자 패턴에 대해 알아본다. 해당 글은, 다음의 코드를 기반으로 이해하는 것이 편리합니다.

  • Iterator 반복자는 33. Generic 함수이다. 즉, 일반적인 프로그래밍을 가능하게 하기위해 만들어진 전역함수이다. 우리는 배열을 다루기 위해 vector, array, list와 같은 것들을 사용했다.

java

11건의 항목 처음 10개의 태그

  • 소프트웨어의 혁신과 함수형 프로그래밍 소프트웨어를 통한 혁신은 왜 발생했는가? 인간의 추상적인 사고를 통해 발생한 아이디어를 컴퓨터의 극대화된 연산력을 통해 사용할 수 있게 되었기 때문. 이러한 시각은 크게 봐도 그렇고 개발자가 언어를 바라보든 작은 시각에서도 맞다.

  • Java에서의 Nested Class를 알아보며, 어떻게 변화해 왔을지 한번 생각해보자. Nested Class 클래스 안에 다른 클래스 Java에서는 둘로 나뉜다.

  • 추상클래스는 왜 필요할까? 다형성은 멋지고 강력한 개념 OO 4대 특성인 이유 (상속, 캡슐화, 다형성, 추상화) 다형성은 상속에 기반 상속과 다형성은 추상화에 기반 공통된 것을 뽑아내어 일반화된, 범용적인 것으로 적용 여러 클래스에서 공통 분모를 뽑아 부모 클래스로 제작 자식마다 달리 작동하는 구현을 부모의 method signature로 일반화 추상화는 조금더 복잡한 문제를 해결하기 위한 것 새로운 개념은 새로운 문제도 가져온다 추상화는 막강하지만 그로 인해 생각지 못한 문제가 발생 역시 사람은 직접 해보고 당해봐야 답을 찾음 ...

  • 인터페이스는 왜 필요할까? 그리고 무엇일까? Interface의 사전적 의미 inter-(상호간의) + -face(면) = interface 접해있는 두 물체나 공간 사이의 경계 사용자는 스위치를 키는 버튼에 집중 이걸 누르면 어떤 일이 일어날지를 앎 (what) 어떻게 그런일이 일어나는지는 모름 (how) 실제 동작은 구현 공간에서 일어남 배선의 연결 사용자는 잘 알지 못하는 공간 구현자만 알고 있음 이미 알고 있는 개념 = 함수 함수는 블랙박스임: 호출자는 내부가 어떻게 도는지 이해하려 하지 않는다.

  • 빌더 패턴은 무엇일까? 무엇을 조심해야 할까? 어떤식으로 활용하는 것이 좋을까? Builder 개체의 생성과정을 그 개체의 클래스로부터 분리하는 방법 개체의 부분부분을 만들어 나가다 준비가되면 그제서야 개체를 생성 StringBuilder 단순한 것은 이걸 사용해서 원하는 문자열을 만들 수 있다.

  • Adapter 패턴으로 알려져있는 Wrapper 패턴에 대해 알아보자. 이름의 문제 GoF: 09.

  • 개체 지향을 얘기하면 꼭 나오는 단어인 예외에 대해서 알아본다. Exception 사실 예외는 개체지향의 일부가 아니다.

  • 예외 처리를 제대로 하지 못하는 이유는 무엇일까? 예외 처리를 제대로 하지 못하는 이유 과거에 주류이던 예외 처리 방식은 지속적으로 작동이 보장되어야 하는 프로그램에 대해 “하드웨어가 멈추는 크래시”가 무서워서 그랬을 수 있다.

  • 그래서 예외는 어떻게 처리하는 것이 좋은걸까? 오류 상황 예외 상황과 오류 상황을 다른 의미로 사용할 것 오류 상황은 error condition을 말함 이 오류 상황을 처리하는 방법 중에 예외가 있음 오류 상황은 예측 가능한 상황을 의미함 프로그램 실행 중에 기본적으로는 일어나지 않음 하지만 일어날 수 있는 일 따라서 이러한 상황을 처리하는 코드는 프로그램 기능의 일부임 프로그래머가 이를 예측하지 못했다면? 버그 오류 상황을 처리하는 4가지 방법 무시 곧바로 크래시 일단은 작동하는데 언젠가는 크래시 안정적이지 못한 상태로 계속 동...

  • 해당 부분은 너무 코드가 많아, 이전 상태와 이후 상태를 놓고 그 사이에서 저자가 어떠한 흐름으로 이를 처리했는지 간략하게 정리하는 것을 목적으로 한다. Intro 해당 부분에서는 출발은 좋았으나, 확장서잉 부족했던 모듈을 소개한다.

javascript

18건의 항목 처음 10개의 태그

jit

1건의 항목

  • 전체 과정 개발자가 소스코드를 작성한다. (Ts, Html, css, sass, scss etc) Babel을 통해 모든 브라우저에서 호환 가능한 문법의 코드로 변환한다. 소스코드를 하나로 묶는 Bundling을 진행한다. 원격 저장소에 Deploy한다.

join

3건의 항목

jpg

1건의 항목

  • JPG(Joint Photographic Experts Group) 정의: 정지 화상을 위해서 만들어진 손실 압축 방법 표준 핵심: 전체적 구조 손실보다 디테일 손실에 둔감하다는 점을 통해 압축 원리: 이미지의 고주파 성분의 일부를 제거함.

just-in-time

1건의 항목

  • 전체 과정 개발자가 소스코드를 작성한다. (Ts, Html, css, sass, scss etc) Babel을 통해 모든 브라우저에서 호환 가능한 문법의 코드로 변환한다. 소스코드를 하나로 묶는 Bundling을 진행한다. 원격 저장소에 Deploy한다.

jvm

1건의 항목

  • 고급언어 > 가상 머신 > 실제 머신 이 이해하는 방식으로 추상화된 코드가 구체화 된다. 이 단계에서 가상 머신이 이해할 수 있을 정도의 형태로 변환한 코드를 바이트 코드라 한다. 이렇게 중간단계를 둚으로서 다양한 머신에 대응할 수 있다.

kalman-filter

1건의 항목

kernel

2건의 항목

  • 운영체제에 대한 정의, 역할에 대해 알아본다. 운영체제는 사용자가 컴퓨터를 사용하기 위해 필요한 소프트웨어이다. 일반적으로 사용하는 모든 프로그램은 운영체제에서 그 자원을 관리한다. 목적 운영체제를 사용하는 가장 큰 목적은 하드웨어의 관리이다.

  • 운영체제의 근간을 이루는 핵심 코드 어떠한 방식으로 자원을 나눠주고, 프로세스를 관리하는지, 프로그램이 요구하는 시스템 콜 같은 중요한 작업을 수행하는 코드를 말한다. 그렇기에 어떤 커널을 사용하느냐에 따라 OS의 정체성이 규정된다.

key-value-coding

4건의 항목

key-value-observing

3건의 항목

keypath

1건의 항목

  • 이전 글들에서 Objective C의 KeyPath와 Swift에서의 KeyPath를 한번씩 보았다. 모양이 좀 달랐었는데 왜 다른지에 대해서 알아보자. 이번 글은 WWDC 17을 기준으로 한다.

keyword

3건의 항목

korea-economy

1건의 항목

krw

1건의 항목

kvc

4건의 항목

kvo

3건의 항목

lambda

1건의 항목

  • Lambda function 함수 안에서 부를 수 있는 Local function! 사실 정체는 객체이지만, 우리는 함수의 개념으로 갖다 쓴다! Usage [closure](입력 매개변수)->출력 type{내용} Local function 이기 때문에 만들어졌다가 리턴 후 사라진다.

lambda-function

1건의 항목

  • Lambda function 함수 안에서 부를 수 있는 Local function! 사실 정체는 객체이지만, 우리는 함수의 개념으로 갖다 쓴다! Usage [closure](입력 매개변수)->출력 type{내용} Local function 이기 때문에 만들어졌다가 리턴 후 사라진다.

lan

1건의 항목

  • LAN 근거리 통신망 같은 건물 안을 범위로 하는 네트워크 집, 사무실과 같은 공간에서 사용 컴퓨터, 프린터와 같은 장치를 연결 MAN 도시권 통신망 서울시, 대학 캠퍼스 정도의 범위 WAN 광역 통신망 넓은 범위에 구축된 네트워크 랜과 랜을 연결 범위가 넓어 속도가 느리고 오류가 많다.

lan-card

1건의 항목

  • 비트 0, 1 비트가 모여 데이터 구성 비트를 주고 받는 것이 통신의 본질 바이트 = 8비트 워드 = 1바이트가 2개 (16비트) 데이터가 어떻게 전기 신호로 전달? 데이터가 전달되지 않을 때 전기적 신호가 존재 Clock 신호 CPU는 해당 신호에 맞춰 일을 처리한다.

late-binding

1건의 항목

latent-variable

1건의 항목

  • 혼합 분포 특정 분포를 만드는데 있어, 여러개의 확률 분포를 사용하는 것. 상황을 하나 생각해보자. 1에서 6까지의 숫자가 나열되어 있는 분포를 생각해보자. 해당 숫자들은 각기 다른 빈도를 갖고 있을 것이다. 그리고 주사위 하나를 생각해보자.

law-of-demeter

1건의 항목

  • 우리는 private을 통해 변수를 자주 정의한다. 이렇게 하는 이유는 남들이 변수에 의존하지 않도록 만들고 싶기 때문이다. 그럼에도 불구하고 많은 프로그래머들은 get, set 함수를 당연하게 외부에 노출하는 오류를 범한다.

layer

1건의 항목

  • 레이어 높이(Layer Height)는 3D 프린팅 과정에서 한 번에 쌓이는 각 층의 두께를 나타냅니다. 3D 프린터는 3D 모델을 여러 작은 수평 층으로 나누어서 생성하는데, 이 각 층의 두께가 레이어 높이입니다.

layout

3건의 항목

  • 전체 과정 개발자가 소스코드를 작성한다. (Ts, Html, css, sass, scss etc) Babel을 통해 모든 브라우저에서 호환 가능한 문법의 코드로 변환한다. 소스코드를 하나로 묶는 Bundling을 진행한다. 원격 저장소에 Deploy한다.

  • headerView가 있는 TableView에서 높이는 제대로 맞는데, 이상하게 셀수가 많아질 상황에서 끝까지 스크롤되지 않는 문제가 발생했다. headerView의 layout을 먼저 잡아주어야 한다.

  • iOS Layout을 적용하는 것에는 여러가지 방법이 있다. autolayout만이 정답이라 생각했는데, 오산이었다. 이 부분은 주기적인 업데이트를 하도록 하겠다. Storyboard 장점으로는 UI 구성을 눈으로 확인할 수 있다는 점이다.

layoutifneeded

1건의 항목

layoutsubviews

2건의 항목

  • iOS 화면 업데이트는 어떻게 되는 걸까? draw, layoutIfNeeded, setNeedsLayout 등. 이해가 안가는 것들이 너무 많았다.

  • View 화면을 구성하는데 기본이 되는 class NSObject를 상속한 UIResponder를 상속해서 구성됨 CustomView는 UIView를 상속함 UIImageView, UILable, UIScrollView… 가능한 것들 Drawing Animation Layout subview 관리 Event Handling UIResponder 상속하기 때문에, touch와 같은 event에 반응 가능 gesture 추가 초기화 형태 // code init(frame:) init() // default parameter = CGRe...

lazy

2건의 항목

  • lazy property를 사용해본 경험이 있다. 해당 아이디어는 함수형 프로그래밍 언어에서 주로 사용한다. 이번에는 지연 계산법이 무엇인지, 그리고 Lazy와 unfold sequence에 대해 알아본다.

  • Global, Static 변수에 대해 사용시에 초기화 되는 방법 eager 앱 시작시 생성됨 장점 단순하다. data race 문제 없다. 단점 초기 로딩시 느리다. lazy 사용시에 초기화됨 장점 초기 로딩시 필요없는 것들을 로딩하지 않아 빠르다.

lazy-evaluation

1건의 항목

lazy-loading

3건의 항목

learning

1건의 항목

  • 프로는 어떤 마음가짐을 가져야 하는가? 함부로 바라지 마라 Professionalism 명예와 긍지 책임과 의무 책임감을 가져라 제대로 테스트하지 않고 물건을 보냈을 때 발생한 사건에 대해 말한다. 제품이 완성됨을 확신하지 않고서 납품하여 큰 문제가 발생했다.

learning-rate

1건의 항목

least-square-method

2건의 항목

legacy

1건의 항목

let

1건의 항목

  • 분기에 따라 값이 결정되는 코드를 짤 때, 변수를 무엇으로 선언하는 것이 좋을까? 작은 부분이나 좋은 지적이라 생각하여 정리해본다. 핵심 요약 분기에 따라 값이 결정될 때 변수를 선언해야 한다면, var보다는 let을 우선적으로 검토해보자.

leveling

1건의 항목

  • 3D 모델이 만들어지는 기반 플랫폼. 프린터의 작업 표면. 빌드 플레이트(Build Plate)는 3D 프린터에서 3D 모델을 만들 때 사용되는 기반 플랫폼이며, 일반적으로 이 플레이트 위에 소재가 적층되어 모델이 만들어집니다.

lf

1건의 항목

  • Request-Line OR Status-Line [Header CRLF] CRLF [ Body ] Start Line Request Response Header 헤더 중 X가 붙은 경우, 커스텀 헤더임 Pragma: 옛날 캐시 정책 Deprecated Cache-Control: 캐시 정책인데, 기능이 추가된 것들 Connection: close, keep-alive 두 개의 옵션이 있음 Stateless Protocol HTTP는 상태가 없는 프로토콜이다.

library

4건의 항목

  • String library method #include <string> #include <iostream> using namespace std; int main(){ string word = "good"; word.length(); // 길이 리턴 word.empty(); // 빈 문자열인지 1, 0값 리턴 word.clear(); // 문자열 삭제 word += "-bye"; // 더하기 가능 word[0]; // h word[word.length() - 1]; // 마지막...

  • for_each() algorithm 라이브러리에는 다양한 함수가 있지만, 그중에서 for_each() 함수에 대해서 알아보자.

  • 앞으로 진행할 긇에서는, Library와 Framework에 대해서 알아볼 것이다. 첫번째 순서로는 Library이다. Library & Framework 일단 간단하게 Library와 Framework에 대한 차이를 알아보고 가자.

  • 프로젝트의 외부 라이브러리 의존은 줄일 수록 빠른 대응이 가능한 서비스를 만들 수 있다 판단했습니다. 프로젝트를 진행하기에 앞서, 라이브러리를 어느수준까지 사용하는 것을 허용할 것인지에 대해 고민했습니다.

lift

2건의 항목

likelihood

1건의 항목

line-feed

1건의 항목

  • Request-Line OR Status-Line [Header CRLF] CRLF [ Body ] Start Line Request Response Header 헤더 중 X가 붙은 경우, 커스텀 헤더임 Pragma: 옛날 캐시 정책 Deprecated Cache-Control: 캐시 정책인데, 기능이 추가된 것들 Connection: close, keep-alive 두 개의 옵션이 있음 Stateless Protocol HTTP는 상태가 없는 프로토콜이다.

linear

12건의 항목 처음 10개의 태그

linear-algebra

12건의 항목 처음 10개의 태그

linear-independence

1건의 항목

linearity

1건의 항목

  • 데이터의 두 변수간 선형관계를 나타내는 척도에 대해서 알아본다. 선형관계 두 변수의 관계를 알아보는 것은 매우 중요하다. 어떠한 연관성을 통하여 유의미한 정보를 이끌어 낼 수 있기 때문이다. 이러한 선형관계를 알아내는 척도는 3가지 정도가 알려져 있다.

link

2건의 항목

linker

1건의 항목

linux

1건의 항목

  • 개념 개발자와 시스템 관리자가 컨테이너 기술을 사용하여 어플리케이션을 개발, 배포, 실행하기 위한 플랫폼 컨테이너 기술을 리눅스에서 사용되던 기술이다. 이 때, 이 기술을 사용하여 응용프로그램을 배포하는 것을 컨테이화 시킨 것이다.

lipo

1건의 항목

  • 실제 컴파일, 링킹이 끝난 뒤의 결과물에 대해서는 잘 모르는 것 같다. 실행 파일은 어떻게 구성되어 있는 걸까? 우리가 사용하는 프로그램들은, 바이너리화되어 있는 파일의 형태로 존재한다. 그런데, 이 실행파일의 형태는 OS에 따라 다른 형태로 존재한다.

list

2건의 항목

  • List 이제껏 vector container 에 대해서 집중적으로 사용했는데, list container 역시 vector와 마찬가지로 많이 사용된다. Vector 장점 : search가 빠르다. 단점 : pop/ push 가 느리다.

  • 지금까지, 정수, 실수 문자열을 다루는 법을 배웠다. 그런데 하나의 값 말고, 여러개를 다룰 필요가 있다면 어떡해야할까? 이런 용도를 위해 python은 리스트를 제공하고 있다.

listener

1건의 항목

  • RIB과 통신하기 생성시에 어떠한 흐름으로 동작하는지 알았다면, 이번에는 RIB간의 소통을 알아볼 차례다.

little-endian

1건의 항목

lldb

1건의 항목

llm

1건의 항목

  • Chat GPT Plus 구독 현재로서 가장 가성비가 좋은 건 이것임 (240403) Video, Audio, Summary, Code Generation 등 가장 많은 기능을 처리할 수 있음 GPTs를 통해 특화된 기능도 사용가능 Copilot 구독 가장 유명한 것 일단 써봄.

llvm

2건의 항목

loadview

1건의 항목

  • ViewController는 iOS 앱 개발에서 빼놓을 수 없는 요소이다. 구조적으로 어떻게 구성되었는지 알아보고, 어떤 life cycle을 가지는지 이해해보자. 그럼 시작하자.

local

1건의 항목

  • Local, Global Variables Local Variables 함수 안에서만 동작하고 함수가 끝나면 메모리에서 삭제된다.

locktime

3건의 항목

logging

29건의 항목 처음 10개의 태그

  • 특정 값을 찍을 때 print를 찍기 일수다. 쉬우니까. 하지만 이 습관은 좋지 않다. 왜 인지 알아보자.

  • 맥에서 아이폰 콘솔 로그 확인하기. 맨날 까먹어서 기억용으로 적어둔다. 방법 맥 앱 중에서 console.app을 실행한다. 아래 이미지에서 콘솔 로그를 보고 싶은 기기를 선택한다. 로그 메시지 필터를 걸어 확인한다.

  • Good 1월 부터 목표로 한 근력운동 루틴을 잘 지키고 있다. 이제 33개월 남았다. 아침에 일어나는 습관(6-7시 기상)을 잘 들이고 있다. 일찍 자는 습관(22-23시)을 잘 들이고 있다. 식단을 잘 챙겨먹고 있다. 약을 잘 챙겨먹고 있다.

  • Good 운동을 꾸준히 했다. 몸이 점점 커진다. 무섭다. 블로그 글을 그래도 한 20개 정도는 쓴 것 같다. 트위터 계정을 만들었다. 결국 셋업을 구매했다. 저렴하게 구매해서 좋다. 하락장에 용기내어 주식 매수했다. 좋은 생활 패턴을 가지고 있다.

  • Good 아침 7시에 출근하고 7시 이후에 퇴근했다. 투자글 역시 꾸준히 올렸다. 클린 코드 먼저 읽고 정리를 꾸준히 했다. 저녁 샐러드 먹기 시도했다. 회사 모니터 설정, 키보드, 마우스, 트랙패드 구매했다. 맥 스튜디오 구입했다.

  • Good 음, 생각보다 없다. 돈아끼는 방법을 하나 추가적으로 알았다. 브런치 글을 꾸준히 쓰고있다. Bad 운동을 못했다. 허리가 아프다. 약간 무기력증이 도지는 느낌이다. 코드를 많이 안짜서 그런 듯 하다. 최근에 잠을 잘 못잤던게 월말에 밀려왔다.

  • Good 크게 없다. Bad 에너지 레벨이 떨어졌다. 체력이 문제인가? 더 간절한 것이 없어졌을 지도 모른다.

  • Goals 무엇을 목표했나요? Good 뭔가 어떻게든 끝내려 했다..? 무언가 나만의 새로운 것을 하려는 시도를 하는 중이다.

  • Goals 무엇을 목표했나요? Good 운동을 시작했다. 작은 생활 계획을 세우고 이행중이다. Bad 코드를 생각을 덜 하고 짜는 것인지 지적을 좀 받았다. 퍼포먼스가 약간 떨어졌던 것 같다. 수면을 좀 더 해야겠다.

  • Good 하루 목표한 양은 다했다. 서둘러서 처리하려 했고, 이뤘다. Bad 일이 바빠, 세워두었던 라이프 스타일을 지키지 못했다.

logic-gate

1건의 항목

  • CPU의 동작방법을 알아보자. 최호성님의 유튜브 강의를 보며 기본적인 컴퓨터 구조를 이해하고 정리하자. 디지털 회로 기본적으로 연산을 수행하도록 가능하게 하는 것은 이 디지털 회로가 있기 때문이다. 이 디지털 회로는 반도체의 특징을 이용하면 가능하다.

logistic-regression

1건의 항목

lookahead

1건의 항목

  • 개요 Lookahead Assertions는 이해하기가 어렵다. 하지만 예시와 함께라면 어떤 경우에 이를 사용해야 하는지 알 수 있을 것이다.

loop

2건의 항목

  • 반복문의 필요성 특정 명령을 반복적으로 사용해야 함 규칙적으로 반복하는 일 동일한 내용을 반복할 때 For 특정 문장을 일정한 횟수만큼 반복 시킬 때 사용 #include <stdio.h> int main() { int i, Sum = 0; for (i=1; i<=10; i++) Sum += i; printf("1부터 10까지의 합은 %d다.\n",Sum); return 0; } // 프로세스가 시작되었습니다.

  • 컴퓨터를 통하여 문제를 해결하는 가장 중요한 이유 중에는 계속적으로 반복하는 작업을 컴퓨터가 대신 처리하여 주는 것이다. 이런 기능을 반복문이라고 하며, 대부분의 프로그래밍 언어는 다양한 반복문을 제공한다.

loss-function

4건의 항목

lower-bound

3건의 항목

lsp

2건의 항목

  • 이전글들은 사실 이 원칙을 위해 달려온 것이 아닌가하는 생각이 든다. OOP의 정수로 불리우는 SOLID원칙에 대해서 깊게 알아보고, 실제 iOS Framework의 설계 방향에 대입하면서 보다 찐한 이해를 경험해보자.

  • SOLID 설계 정신에 대해 알아보자. SOLID 정신으로 이룰 수 있는 것 소프트웨어 설계를 “유연하게” 할 수 있다. 유연한 소프트웨어 설계, 즉 추상적인 설계로 커플링을 제거할 수 있다.

lu-decomposition

1건의 항목

mac

5건의 항목

  • 디바이스가 가지고 있는 고유의 물리적, 하드웨어 주소 패킷에 들어오는 mac 주소를 보고 적어둔 테이블을 기반으로 사설 IP주소를 알아낸다음 해당 디바이스로 데이터를 넘겨준다.

  • 답답한 걸 싫어하는 내게 속도가 나지 않는다는 것은 정말 곤욕이다. 내가 자주 사용하는 Alfred Workflow를 공유해본다. Markdown Table 블로그글을 쓰거나, 기록을 해야 할 때, table만큼 좋은 게 없다.

  • C4D Download octane .

  • 왜 필요한가? 주기적인 포맷이 필요하다는 것을 느꼈다. 7년동안 정리를 안하다보니 나도 스트레스를 받더라. 그럴 때마다 기존에 사용하는 환경을 다시 구축하는게 너무나 시간낭비고 하기 싫었다.

  • iOS 개발자로서 제플린이나 피그마 창을 하나만 띄워서 보는건 너무 귀찮다. 여러개 띄울수는 없을까? 해결 방법 open -na /Applications/Zeplin.app open -na /Applications/Figma.app 모든 프로그램이 되는 것은 아니다.

mac-address

3건의 항목

  • 디바이스가 가지고 있는 고유의 물리적, 하드웨어 주소 패킷에 들어오는 mac 주소를 보고 적어둔 테이블을 기반으로 사설 IP주소를 알아낸다음 해당 디바이스로 데이터를 넘겨준다.

  • 비트 0, 1 비트가 모여 데이터 구성 비트를 주고 받는 것이 통신의 본질 바이트 = 8비트 워드 = 1바이트가 2개 (16비트) 데이터가 어떻게 전기 신호로 전달? 데이터가 전달되지 않을 때 전기적 신호가 존재 Clock 신호 CPU는 해당 신호에 맞춰 일을 처리한다.

  • Switch Data Link Layer에서 동작 Layer 2 스위치, 스위치 허브라 불림 허브와 비슷하지만, 데이터 충돌을 방지할 수 있다.

mach-o

1건의 항목

  • 실제 컴파일, 링킹이 끝난 뒤의 결과물에 대해서는 잘 모르는 것 같다. 실행 파일은 어떻게 구성되어 있는 걸까? 우리가 사용하는 프로그램들은, 바이너리화되어 있는 파일의 형태로 존재한다. 그런데, 이 실행파일의 형태는 OS에 따라 다른 형태로 존재한다.

machine-epsilon

1건의 항목

machine-learning

4건의 항목

macro

1건의 항목

main-thread

4건의 항목

man

1건의 항목

  • LAN 근거리 통신망 같은 건물 안을 범위로 하는 네트워크 집, 사무실과 같은 공간에서 사용 컴퓨터, 프린터와 같은 장치를 연결 MAN 도시권 통신망 서울시, 대학 캠퍼스 정도의 범위 WAN 광역 통신망 넓은 범위에 구축된 네트워크 랜과 랜을 연결 범위가 넓어 속도가 느리고 오류가 많다.

management

5건의 항목

  • HTTP에서 상태가 필요한 이유 로그인이 되게 하고 싶다. 쇼핑몰 로그인이 아니어도 카트 목록을 기억하게 하고 싶다. 해결 방법 Fat URL - URL에 상태 정보를 모두 집어 넣기 - URL을 파싱해서, 사용자의 상태를 확인한다.

  • 이제 리팩터링 전반에 적용되는 원칙 몇 가지를 살펴보자. 리팩터링 정의 리팩터링이라는 개발 용어는 굉장히 두루뭉실한 의미로 통용된다. (많은 개발 용어가 그렇다) 하지만 이를 엄격하게 정의해야 유용하다.

  • 시간은 참 짧다. 어떻게 관리해야 할까 시간 관리 저자는 아침에 조용한 시간동안 할일을 정리했다고 한다. 회의 회의는 참석자마다 시간당 약 20만원 정도의 비용이 든다. 급여, 복지비 등등 모두 합치면 회의는 필요하다. 그럼에도 회의는 엄청난 시간 낭비다.

  • 코드의 관리는 중요하다. 위계 질서를 가지고 구분하지 않으면 혼란을 초래한다. 접근 제어는 특히 SDK 작업을 하는 경우 인터페이스 역할을 하기 때문에 잘 알아두는 것이 좋다.

  • static 변수 및 함수는 인스턴스를 생성하지 않고 접근하기 위해 사용한다. swift에서는 어디서 관리하는 것이 좋을까? swift에서 사용하는 Method가 궁금하다면 해당글을 읽고 오자.

map

2건의 항목

  • 지리적 정보를 시각적으로 나타내는 도구 또는 매체 물리적 실체를 데이터의 형태로 옮겨야 한다. 이러한 의미에서 지도는 나라의 재산이다. GIS(Geographic Infomation System) 공간 데이터 + 속성 데이터 통합 관리 시스템 .

  • 관계 연산 (True or False) Equals 두 개가 완전히 동치인 경우 Disjoint 두 개가 하나도 겹치지 않는, 즉 서로소인 경우 Intersects 교집합 뚫고 지나가는 경우, 겹치는 경우 Touches 테두리에 걸리는 경우 Crosses 교차할 때 그런데, 비교하고자 하는 두개의 gemoetry가 서로 차원이 다르거나 (점, 선, 면) 혹은 선이어야만 연산이 성립 점 & 선, 선 & 면, 선 & 선만 정의가 가능 Within / Contains 완전히 포함될 떄 성립 Overlaps 같은 차원...

markdown

2건의 항목

  • <details> <summary>제거된 파일 개수: 435</summary> 세부사항 </detail> .

  • Expander control github의 issue나 pull request 올릴 때, 정보를 숨기고 싶은 경우가 있다. 그런 경우 toggle을 사용하면 유용하다. expander control이라고도 하는데, 접기/펼치기 를 가능케해서 그런 이름이 붙었다.

math

41건의 항목 처음 10개의 태그

matlab

4건의 항목

  • 오늘은 보간법에 대해 공부해본다. Intution Concept 보간법은 사실 위와 같이 4개의 점을 서로서로 이어서(다양한 방법이 있겠죠?) 그 사이값을 추정하는 방법에 대한 것이다. 그런데 비슷한 걸 앞에서 하지 않았냐! 하고 궁금할 지도 모르겠다.

  • Intuition Concept 컴퓨터가 생각하는 방식은 절레절레와 노가다 밖에 없어요. 무슨말이냐면 Yes, No의 선택방식과, 계산을 계속하는 방법이 전부라는 의미죠. 멍청하다고 생각할 수 있겠지만 이것을 잘 활용하면 강점이 됩니다.

  • Intuition Concept 아까와 마찬가지로 컴퓨터의 반복계산과 Y,N를 사용해서 만든 알고리즘이에요. 하지만 비교의 개념이 들어가다보니 아까는 하나의 값을 넣어주었지만 이번에는 값을 범위화해서 넣어주어야 겠죠. 그리고 이번에는 최솟값을 구하는 함수 밖에 없어요.

  • Plot3 x, y, z값이 있을 때 이를 그려준다.

matrix

11건의 항목 처음 10개의 태그

maximum

1건의 항목

  • Intuition Concept 아까와 마찬가지로 컴퓨터의 반복계산과 Y,N를 사용해서 만든 알고리즘이에요. 하지만 비교의 개념이 들어가다보니 아까는 하나의 값을 넣어주었지만 이번에는 값을 범위화해서 넣어주어야 겠죠. 그리고 이번에는 최솟값을 구하는 함수 밖에 없어요.

mean

1건의 항목

mean-sqaure-error

1건의 항목

median

2건의 항목

  • 데이터의 중심을 나타내는 척도에 대해서 배워본다. 평균 (mean) 평균은 대표적으로 집단의 중심위치를 나타내는 척도로 사용된다. 이 평균에는 보통 3종류가 사용된다.

  • 데이터를 설명하는 상대위치와 이를 나타내는 box plot에 대해 알아본다. 상대위치 중앙값이 50%에 위치하는 분위수라면, 이에 대응하는 다양한 분위수가 존재한다. 백분위수 분포를 100개로 쪼개어 생각하는 것이다.

mediator

1건의 항목

  • GoF의 디자인 패턴, 중재자 패턴에 대해 알아본다. 해당 글은, 다음의 코드를 기반으로 이해하는 것이 편리합니다. 핵심 요약 객체들 간의 복잡한 관계를 중재자라는 것을 두어 매우 효과적으로 단순화시킨다. 예시 에어컨, 문, 창문, 보일러가 있다고 하자.

memento

1건의 항목

  • GoF의 디자인 패턴, 메멘토 패턴에 대해 알아본다. 해당 글은, 다음의 코드를 기반으로 이해하는 것이 편리합니다. 핵심 요약 객체의 상태를 기억해두었다가 필요할 때 기억해둔 상태로 객체를 되돌린다.

memoization

1건의 항목

memory

2건의 항목

memory-dump

1건의 항목

  • 그래서 예외는 어떻게 처리하는 것이 좋은걸까? 오류 상황 예외 상황과 오류 상황을 다른 의미로 사용할 것 오류 상황은 error condition을 말함 이 오류 상황을 처리하는 방법 중에 예외가 있음 오류 상황은 예측 가능한 상황을 의미함 프로그램 실행 중에 기본적으로는 일어나지 않음 하지만 일어날 수 있는 일 따라서 이러한 상황을 처리하는 코드는 프로그램 기능의 일부임 프로그래머가 이를 예측하지 못했다면? 버그 오류 상황을 처리하는 4가지 방법 무시 곧바로 크래시 일단은 작동하는데 언젠가는 크래시 안정적이지 못한 상태로 계속 동...

mentoring

1건의 항목

  • 프로는 어떤 마음가짐을 가져야 하는가? 함부로 바라지 마라 Professionalism 명예와 긍지 책임과 의무 책임감을 가져라 제대로 테스트하지 않고 물건을 보냈을 때 발생한 사건에 대해 말한다. 제품이 완성됨을 확신하지 않고서 납품하여 큰 문제가 발생했다.

merge-sort

2건의 항목

meta-string

1건의 항목

  • 원래 그 문자가 가진 뜻이 아닌 특별한 용도로 사용하는 문자 문자 클래스 [] [ ] 사이에 있는 각각의 문자들에 대해 적어도 하나가 매치가 되는가? 즉, 정규 표현식이 [abc]라면 이 표현식의 의미는 “a, b, c 중 한 개의 문자와 매치”를 뜻한다.

metatype

1건의 항목

  • 이전에 metatype에 대해 흘려들었었는데, 이번에 간단하게 정리해보려한다. metatype이란? Swift에서 우리는 특정 instance의 Type에 접근할 수 있다.

methods

2건의 항목

  • HTTP 메소드 종류 GET 요청이 캐시된다. 브라우저, 로봇이 임의로 요청이 가능하다.

  • 창발성 단순한 결합이 복잡한 결과를 나타내는 것을 뉴런 하나만으로 의미가 있을까? 뉴런이 모여 어떠한 인식을 하기 위해서는 수십억개의 뉴련이 상호작용해야 한다. 즉, 미시적인 부분의 각각의 특성만으로는 설명할 수 없는 전체로서 나타나는 복잡한 현상을 말한다.

metoring

1건의 항목

  • 멘토링, 수습기간, 장인 정신에 대해 고찰해본다. 수습기간 소프트웨어 역시 실무 훈련기간이 있어야 한다. 왜 프로그래머는 학교만 졸업하면 가능할 것이라 생각하는가? 소프트웨어는 일상생활에 너무나도 많은 곳에 들어가 있다. 합리적 훈련과 감독을 받는 실습기간은 필요하다.

migration

1건의 항목

mind

1건의 항목

  • 코딩은 어렵다. 코딩 오류를 느끼는 감각은 중요하다. 이는 곧 빠른 피드백 루프를 통해 배움이 빨라짐을 의미한다. 잘못된 것을 알아야 고칠 것 아닌가? 이 장에서는 코드를 짤 때 행동과 기분, 태도에 대한 규칙과 원칙을 소개한다.

minimum

1건의 항목

  • Intuition Concept 아까와 마찬가지로 컴퓨터의 반복계산과 Y,N를 사용해서 만든 알고리즘이에요. 하지만 비교의 개념이 들어가다보니 아까는 하나의 값을 넣어주었지만 이번에는 값을 범위화해서 넣어주어야 겠죠. 그리고 이번에는 최솟값을 구하는 함수 밖에 없어요.

mistake

1건의 항목

  • 실수가 2번이상 반복되면 실력이다. UI 개발시 한방에 끝나기 위한 Edge case를 정리하자. 수시로 업데이트 한다.

mixed-sectors

1건의 항목

  • 텔레콤, 미디어, 엔터테인먼트, 인터넷 서비스 등을 포함하는 통신 서비스 섹터입니다. 경기 순환적 특성과 방어적 특성을 모두 가진 혼합형 섹터로, Google/Alphabet, Netflix, KT 등이 대표 기업입니다.

mle

1건의 항목

mnist

1건의 항목

  • MNIST Dataset # Lab 7 Learning rate and Evaluation import tensorflow as tf import matplotlib.pyplot as plt import random tf.set_random_seed(777) # for reproducibility # 텐서플로우에서 데이터 받아오기 from tensorflow.examples.tutorials.mnist import input_data # Check out www.tensorflow.org/get_started/mnist/beginn...

mobile

3건의 항목

  • Progressive Web App PWA(Progressive Web App)는 웹 애플리케이션을 개발하고 배포하기 위한 접근 방식과 기술 집합을 가리키는 용어입니다.

  • 많은 수의 엔지니어와 nested states를 관리하기 위한 mobile app Cross-platform Architecture RIBs의 이름은 Router, Interactor, Builder의 약자이다.

  • 이미지 자체를 늘리고 싶은데. 특정 부분은 고정시키고 싶으면 어떻게 할까? Image Stretch a.k.a nine patch 이렇게 이미지의 특정 부분은 고정시키고 나머지만 늘릴 수 있도록 하게 만드는 것을 Image Stretch라 한다.

mocking

1건의 항목

  • Test라는 과정은 사실 공학 어디에서든 등장하는 개념이다. 작업에 의존도가 있고, 복잡한 과정으로 넘어갈 수록 이전 단계의 오류는 치명적이기 때문이다. 이를 관리하는 방법이 Test라 할 수 있다. 소프트웨어에서 역시 이러한 개념이 적용된다.

mode

1건의 항목

modular

1건의 항목

module

3건의 항목

  • Python은 언어이기에 내장하는 기능들이 대부분의 프로그래머에게 필요한 필수적인 것들을 제공하고 있다. 따라서 특정 분야에서 필수적으로 필요로 하는 기능은, 분야에 제한적이기에 Python 언어에서 기본 내장하기가 어렵다.

  • 정규 표현식은 다양한 언어에서 사용이 가능하다. 이 글에서는 파이썬을 기반으로 정규 표현식을 확인해 보도록 하자. import re p = re.compile('ab*') re.compile을 사용하여 정규 표현식(위 예에서는 ab*)을 컴파일한다.

  • 코드의 관리는 중요하다. 위계 질서를 가지고 구분하지 않으면 혼란을 초래한다. 접근 제어는 특히 SDK 작업을 하는 경우 인터페이스 역할을 하기 때문에 잘 알아두는 것이 좋다.

modulemap

1건의 항목

monad

9건의 항목

monetary-policy

3건의 항목

  • 달러가 다른 주요 통화 전반에 강한지 약한지를 한 숫자로 재는 달러인덱스가 무엇이고, 원·달러 환율을 읽을 때 왜 이 지표를 같이 봐야 하는지 짚습니다. 2026년 중반 실제 데이터로 달러 강세와 원화 약세가 어떻게 겹쳤는지 살펴봅니다.

  • 두 나라 정책금리의 차이가 자본의 흐름과 환율을 어떻게 밀어내는지, 특히 한·미 금리차가 원·달러 환율을 읽는 핵심 축인 이유를 짚습니다. 2026년 중반 국면의 실제 금리 수준과 향후 경로 시그널을 함께 봅니다.

  • 원·달러 환율이 높다는 걱정을 두고, 지금의 원화 약세가 한국만의 문제인지 아니면 전 세계가 겪는 달러 강세의 한 조각인지를 실제 데이터로 갈라 봅니다. 무엇을 확인하면 이 판정이 뒤집히는지까지 짚습니다.

monitor

1건의 항목

monitoring

1건의 항목

  • DevOps란? 서비스 개발과 운영을 통합 왜 필요할까? 개발과 운영이 분리된 전통적 방식 개발팀, 운영팀 분리 되어 있음 개발팀에서 배포 파일을 운영팀에 전달 운영팀에서 배포 운영팀은 모니터링을 통해 개발팀에게 피드백 전달 이렇게 되는 경우 배포사이 개발팀과 운영팀의 커뮤니케이션 비용 증가 문제가 발생했을 때 현상/원인 파악이 어려움 서비스 개발자는 서비스 코드를 잘 알지만 운영 환경에 익숙하지 않음 시스템 운영자는 운영 환경에 익숙하지만 서비스 코드를 잘 모름 긴 주기 배포 하지만 각 분야 전문가가 배치되어 있어 보다 안전하다고...

monoidal-functor

2건의 항목

monomorphism

1건의 항목

mount

1건의 항목

  • Volume과 Mount Docker Conatiner에 쓰여진 데이터는 컨테이너가 삭제될 때 함께 사라진다. 하지만 이에 관계없이 우리는 데이터를 영속적으로 저장할 필요가 있다.

mse

1건의 항목

mudule

1건의 항목

  • Module Stability는 무엇일까? 공식문서를 통해 알아보자. Module Swift에서 Module은 무엇을 말할까? Swift는 접근 제어의 기준으로 Module을 사용한다. 코드 배포의 단위로써 import 키워드를 통해 사용하는 것들이 모두 모듈이다.

multi-thread

4건의 항목

mutable

2건의 항목

  • 냄새나면 당장 갈아라. 어떻게 하는지에 대해서 지금까지 배웠다. 하지만, “언제” 시작하고 그만할지를 판단하는 것은 또 다른 얘기다. 어떤 “냄새”를 맡았을 때 손을 대야할까? 기이한 이름 이름으로 이게 뭐하는 것인지 딱 볼 수 있게 작성해야 한다.

  • 분기에 따라 값이 결정되는 코드를 짤 때, 변수를 무엇으로 선언하는 것이 좋을까? 작은 부분이나 좋은 지적이라 생각하여 정리해본다. 핵심 요약 분기에 따라 값이 결정될 때 변수를 선언해야 한다면, var보다는 let을 우선적으로 검토해보자.

mutex

1건의 항목

mutual-exclusion

5건의 항목

mvc

1건의 항목

  • 과일 카드 게임 Stack: MVC, UIKit, XCTest, iOS Team: 1인 진행 기간: 2021/08/30 → 2021/09/10 About: MVC 패턴에서 Model을 설계하는 것을 연습하고, 이를 View에 보여주는 간단한 카드게임을 만들었습니다.

mvp

1건의 항목

  • onBan Stack: Caching, MVP, Network, UIKit, UserDefault, iOS Team: 1인 Role: 개발 진행 기간: 2021/09/27 → 2021/10/08 About: 반찬을 주문할 수 있는 간단한 애플리케이션입니다.

mvvm

3건의 항목

  • 맛보기의 마지막으로, 간단하게 프로젝트에 적용해보자. MVVM과 찰떡인 RxSwift를 적용해보면서 아키텍쳐와 사용방법에 대해 익숙해져보자. 프로젝트 개요 버튼을 누르면 값이 변경되고 아래에 총 금액이 나타난다.

  • 사용자 입력에 대한 Test, 단방향 흐름, 역할과 책임을 고려한 MVVM 구조를 채택하였습니다. 기획 분석 화면 이동이 복잡하지 않다. 사용자 입력에 대해 처리할 부분이 있어, 입력 테스트가 필요하다. 목표 단방향 흐름의 구조를 갖는 아키텍쳐를 사용한다.

  • 앱 설명 방탈출, 이제는 기록하고 경쟁하세요! 방탈출 카페 위치 조회, 방탈출 정보 기록 및 랭크 확인 기능 제공 AppStore: ‎Escaper 방탈출 Escaper Keynote 소개자료 WIKI 사용 스킬 MVVM Firebase CoreLocation MapKit 경험 한 것 사용자의 데이터 과금을 우려하여 ImageCache를 직접 구현하여 사용하였습니다.

n-queen

1건의 항목

naming

7건의 항목

  • 개체 지향 프로그래밍을 배우는데 있어 알아두면 좋은 내용들을 정리해본다.

  • 임시 변수를 없애는 방법을 알아보자.

  • 냄새나면 당장 갈아라. 어떻게 하는지에 대해서 지금까지 배웠다. 하지만, “언제” 시작하고 그만할지를 판단하는 것은 또 다른 얘기다. 어떤 “냄새”를 맡았을 때 손을 대야할까? 기이한 이름 이름으로 이게 뭐하는 것인지 딱 볼 수 있게 작성해야 한다.

  • Rename Variable, 변수 이름 바꾸기를 알아보자. 요약 코드 let a = height * width; let area = height * width; 배경 명확한 프로그래밍의 핵심은 이름 짓기다.

  • 이름은 어디서든 쓰인다. 많이 사용하기 때문에 잘지으면 편하다. 몇 가지의 규칙을 알아보자. 의도를 분명히 밝혀라 말하기는 쉽지. 어렵거든? 저자도 안다. 하지만 이 의도가 분명한 이름을 짓는 것은 정말로 중요하다. 결국 최종적으로 절약하는 시간이 더 많기 때문이다.

  • Intro 프로그래밍 초창기에는 System = Routine + Subroutine 이었다. Fortran, PL/1시절에는 System = Program + SubProgram + Function 이었다.지금은 Function만 남았다.

  • Fundamentals 사용처에 대한 “명료함”이 최우선이다. “간결함”보다 “명료함”이 보다 중요하다. 모든 선언에 대해 문서를 작성해라. ??? 클린코드와 대치된다.

nat

1건의 항목

  • Network Address Translation (네트워크 주소 변환) 자 위에서 결국 우리는 공유기를 통해서 우리집에 배정된 공인 IP 주소를 가지고 각각의 장치에 배정된 사설 IP로 뿌려서 사용한다는 것을 알게되었다.

nested-class

1건의 항목

  • Java에서의 Nested Class를 알아보며, 어떻게 변화해 왔을지 한번 생각해보자. Nested Class 클래스 안에 다른 클래스 Java에서는 둘로 나뉜다.

nested-function

1건의 항목

network

36건의 항목 처음 10개의 태그

  • 목적지 컴퓨터의 IP 주소를 이용하여 MAC Address를 찾기 위한 Protocol! ARP 요청 - Ethernet 프레임을 전송하려면, 목적지 컴퓨터의 MAC Address를 알아야 한다.

  • 수도관의 크기 결국 데이터는 흐름이다. 그렇기 때문에 어떤 관을 따라간다고 생각할 수 있다. 이 때 관의 지름이 대역폭이다. 한번에 보낼 수 있는 데이터의 양이라 생각하면 된다. 이 크기가 클수록 많은 데이터를 초 당 전송할 수 있는 양이 늘어난다.

  • CDN? Content Delivery Network 곳곳에 분산되어 있는 서버 그룹을 말한다. 이를 사용하게 되면 인터넷 콘텐츠를 빠르게 전달할 수 있다.

  • 내, 외부 네트워크 구간 사이에 위치한 중간 지점 접근 제한을 수행 외부 네트워크에서 직접 접근이 가능 설명 회사에서는 서비스를 제공하는 서버와 내부에서만 동작해야하는 서버가 있다.

  • Domain Name Server 도메인이름을 치면 IP주소로 바꿔주는 서비스 naver.com -> 192.168.03.2 OR 192.168.03.2:80 그러면 어떻게 DNS서버를 들렀다 오는걸까? 그러면 매번 입력할 때마다 DNS를 들렀다 오는걸까? 브라우저 캐시에 저장되어 있다.

  • 랜에서 데이터를 정상적으로 주고 받기 위해 필요한 계층 앞은 전달하기 위해 변환하는 과정이 주라 생각 MAC Address Ethernet = Switch 트레일러 FCS(Frame Check Sequence) 전송중 오류 발생 확인 용도 프레임 Ethernet 헤더와 트레일러가 추가된 데이터 MAC Address를 통한 프레임 전송 과정 A에서 B로 데이터를 전송한다고 생각해보자.

  • 기본 요소 송신기 전달 매개체(매질) 수신기 신호 아날로그 연속적인 값이기 때문에, 노이즈에 의해 영향을 받을 수 있다. 즉, 값의 변화가 반영될 여지가 크다. 애초에 연속적인 값이기 때문.

  • 일반적으로 데이터 링크 계층에서 가장 많이 사용되는 규칙 랜에서 사용되는 규칙 허브와 같은 장비에 연결된 컴퓨터와 데이터를 주고받을 때 사용 허브는 근본적으로 전기 신호를 받을 포트 뿐만 아니라 다른 포트에도 전달함 이 부분이 상당히 문제임.

  • 다른 네트워크로 들어가는 입구 역할을 하는 네트워크 포인트 종류가 다른 네트워크 간의 통로 역할을 하는 장치 Protocol을 적절히 변환해주기도 함 다른 언어를 사용하는 사람 사이의 통역가, 번역기라 생각 톨게이트와 유사 한국에서 일본으로 넘어가는 톨게이트가 있다 해보자.

  • 인터넷 공간 상에서 해당 단말기의 고유 주소 Socket을 통해 통신한다는 것은 알았다. 근데 우리가 전화를 걸더라도, 어디에 전화를 걸것인지 알아야 한다. 그걸 대표하는 것이 전화번호이다. 마찬가지로 통신을 하려면, 어디에 통신할 것인지 알려주는 과정이 필요하다.

network-layer

3건의 항목

  • 네트워크 계층 네트워크 연결 구조 Data Link Layer에서는 Ethernet 규칙을 기반으로 같은 네트워크 내에 있는 컴퓨터끼리 연결했다. 다른 네트워크에 있는 목적지로 데이터를 전달하려면 다른 기술이 필요하다.

  • 물리 계층 (Physical Layer L1) 기계적, 전기적인 통신망 접면의 정의 데이터를 전기적인 신호로 변환해서 주고받는 기능만 할 뿐 대표 장비 : 통신 케이블, 리피터, 허브 등 데이터링크 계층 (Data Link Layer 2, L2) 데이타 링크의 제어 (프레임화, 데이터 투명성, 오류 제어 등) 맥 주소를 가지고 통신한다.

  • 이 계층에서도 TCP 헤더를 붙여 세그먼트(Segment)를 만드는 캡슐화를 진행한다. 연결형 통신에 사용 연결이라는 통신로를 확보해야 한다. 가상의 통신로 연결을 확립하기 위해서는 TCP 헤더의 코드 비트를 확인해야 한다.

neural-network

2건의 항목

  • XOR 문제 두 개의 인풋에 대해 1개의 결과값이 나오는 문제이므로 텐서플로우로 구현해보자. 결과값이 0 또는 1이므로, logistic regression으로 만들 수 있다.

  • 초기값 주기 x, w = 0 일 경우 gradient가 0이 되서 학습이 안된다! 모두 0이면 학습이 안된다! Restricted Boatman Machine(RBM) 어떻게 Weight를 초기화 할 수 있을까? 그 해결방안 중 하나가 RBM이었는데, 아이디어는 간단하다.

nil-coalescing

1건의 항목

  • Swift를 처음 공부하면서 가장 어려웠던게 이 Optional인 것 같다. 애초에 개발도 처음할 시기였으니, 이런 자료구조가 왜 필요한지 전혀 몰랐었던 시간이 있었다. 해당 이유는 Either와 Result 이해와 실제 사용예 알아보기 포스트를 참고해주길 바란다.

nine-patch

1건의 항목

  • 이미지 자체를 늘리고 싶은데. 특정 부분은 고정시키고 싶으면 어떻게 할까? Image Stretch a.k.a nine patch 이렇게 이미지의 특정 부분은 고정시키고 나머지만 늘릴 수 있도록 하게 만드는 것을 Image Stretch라 한다.

non-blocking

2건의 항목

norm

1건의 항목

  • 행렬의 “크기”나 “길이”를 수치적으로 나타내는 척도 만족해야 하는 성질 비음수성 (Non-negativity) \|A\| \geq 0 이고, \|A\| = 0 이면 A = 0 동차성 (Homogeneity) 스칼라 \alpha 에 대해 \|\alpha A\| = |\alpha| \|A\| 삼각 부등식 (Triangle Inequality) \|A + B\| \leq \|A\| + \|B\| Induced Norm 행렬이 벡터에 작용할 때 그 벡터의 크기가 얼마나 변화하는지 측정하는 노름 \|A\| = \sup_{\mathbf{x...

normal-distribution

2건의 항목

notification

2건의 항목

nsattributedstring

1건의 항목

  • 이미지와 글자가 있는 Button을 만들다가, String안에 image를 넣을 수 있다는 것을 알았다! NSAttributedString 텍스트 일부에 대해 특성(시각적 스타일, 하이퍼 링크 등)이 있는 문자열 텍스트 일부에 대해 특성들을 적용할 수 있는 String이다.

nsbundle

1건의 항목

  • Bundle 실행 가능한 코드(executble code) + 리소스 (Resources)를 가진 계층 어떻게 보면 이 개념은 개발자를 위한 개념이다. 결국 Package내부는 Bundle과 같이 구성되어 있다.

nscoding

2건의 항목

nslock

1건의 항목

nsnotfound

1건의 항목

  • TableView의 index를 조정하면서 NSNotFound라는 값을 넣어주는 것을 보게되었다. 왜 이런 것이 필요한지 알아본다. 핵심 정리 ObjectiveC에는 Optional이 없다.

nsobject

2건의 항목

null

1건의 항목

  • 깨끗한 코드와 오류 처리는 화실히 연관성이 있다. 하지만 오류 처리로 인해 프로그램 논리를 이해하기 어려줘진다면 깨끗한 코드가 아니다. 오류보다 예외를 사용하라 에전 프로그래밍 언어는 예외를 지원하지 않았다.

number-of-lines

1건의 항목

number-system

1건의 항목

  • Bit와 진법 변환에 대해 알아본다. 최호성님의 유튜브 강의를 보며 기본적인 컴퓨터 구조를 이해하고 정리하자. 4Bit 4Bit로는 16진수 한자리를 표현할 수 있다. 16진수는 0F(015) 까지 한 자리에 쓴다.

number-theory

1건의 항목

numerical-analysis

2건의 항목

nvidia

2건의 항목

object

3건의 항목

object-detection

3건의 항목

objective-c

2건의 항목

observer

2건의 항목

obsidian

1건의 항목

  • 동기 다른 블로그 호스팅 서비스(Tistory, Velog)를 사용하면, 내가 온전히 관리하지 못한다는 측면에서 아쉬움이 있었다. Github Page를 Jekyll을 사용해 포스팅해보았지만, 1000개가 넘어가는 시점부터 너무 느려 사용하기가 꺼려졌다.

ocp

2건의 항목

  • 이전글들은 사실 이 원칙을 위해 달려온 것이 아닌가하는 생각이 든다. OOP의 정수로 불리우는 SOLID원칙에 대해서 깊게 알아보고, 실제 iOS Framework의 설계 방향에 대입하면서 보다 찐한 이해를 경험해보자.

  • SOLID 설계 정신에 대해 알아보자. SOLID 정신으로 이룰 수 있는 것 소프트웨어 설계를 “유연하게” 할 수 있다. 유연한 소프트웨어 설계, 즉 추상적인 설계로 커플링을 제거할 수 있다.

octane

1건의 항목

odr

1건의 항목

  • 앱 배포에 있어 꼭 알아야 하는 App Thining중 On-Demand Resource에 대해 알아본다. 해당글은 WWDC 2015를 기준으로 한다. Do Better 이전 글에서 App Slicing을 하면서 앱 크기를 많이 줄일 수 있다는 것을 확인했다.

official

1건의 항목

on-demand-resource

1건의 항목

  • 앱 배포에 있어 꼭 알아야 하는 App Thining중 On-Demand Resource에 대해 알아본다. 해당글은 WWDC 2015를 기준으로 한다. Do Better 이전 글에서 App Slicing을 하면서 앱 크기를 많이 줄일 수 있다는 것을 확인했다.

on-premise

1건의 항목

  • On premise 서버를 운영하기 위해 서버를 사내 랙에 설치하거나 데이터 센터에 두는 방식 Cloud 월 정액 기반으로 사용한 만큼 요금을 지불하는 방식 선택 방법 시스템 자원 사용량을 근간으로 가격을 책정하기 때문에, 잘생각 하지만 시스템 설비를 책정할 때, 최대 용량을 기준으로 하기 때문에 비효율적 구 분클라우드온프라미스 (기존 서버 구축방식)초기도입비용월정액기반으로 사용한만큼 요금을 지불일회성 비용으로 구매시 많은 비용예산이 소요됨인력운영비시스템 엔지니어의 업무 감소시스템 엔지니어의 업무 증대 ( 서버 운영 및 관리/ 전산...

oop

57건의 항목 처음 10개의 태그

operatiing-system

27건의 항목 처음 10개의 태그

  • 운영 체제가 하는 일을 간단하게 알아보자. 최호성님의 유튜브 강의를 보며 기본적인 컴퓨터 구조를 이해하고 정리하자. 운영체제가 하는 일 접근 제어 + 동기화 + 관리 전산 자원을 관리한다. 대표적인 전산 자원은 CPU, RAM 등이 있다.

  • 운영체제에 대한 정의, 역할에 대해 알아본다. 운영체제는 사용자가 컴퓨터를 사용하기 위해 필요한 소프트웨어이다. 일반적으로 사용하는 모든 프로그램은 운영체제에서 그 자원을 관리한다. 목적 운영체제를 사용하는 가장 큰 목적은 하드웨어의 관리이다.

  • 일괄처리부터 시분할시스템, 최근의 고급운영체제, 인터럽트에 기반한 현대 운영체제까지 변천 역사를 알아본다. 1. 초기 컴퓨터 노가다, 사람 손도 많이가, 장치도 엄청커, 비싸기도 비싸 운영체제는 컴퓨터가 발전하면서 같이 발전하게 되었다.

  • 운영체제의 사용자모드와 관리자모드, 하드웨어 보호 관해서 알아본다. 1.

  • 운영체제의 주요 서비스: 프로세스, 메모리, 파일관리, 시스템 호출에 대해 알아본다. 운영체제의 주요 서비스는 하드웨어 자원을 각 사용자 애플리케이션에 적절히 분배해주는 것이다.

  • 프로세스의 정의, CPU 스케쥴러, 멀티 프로그래밍에 대해 알아본다. 1. 프로세스(Process) 프로세스는 메인 메모리에 할당되어 실행중인 상태인 프로그램을 말한다. 프로그램은 일반적으로 하드디스크(보조기억장치)에 저장되어 아무 일도 하지 않는 상태이다.

  • CPU 스케쥴링에 대해 알아본다. CPU가 하나의 프로세스 작업이 끝나면 다음 프로세스 작업을 수행해야 한다. 이때 다음 프로세스가 어느 프로세스인지를 선택하는 알고리즘을 CPU Scheduling 알고리즘이라고 한다.

  • Thread에 대해서 알아본다. 쓰레드(Thread) 쓰레드는 프로그램 **내부의 흐름(맥)**이다.

  • 프로세스 동기화가 발생하는 예시와 목적, 그리고 그것을 해결하기 위한 원칙에 대해 알아본다. 1.

  • 2. Bank Account Problem(은행 계좌 문제) 동기화의 필요성을 가장 잘 느낄 수 있는 은행 계좌 문제에 대해 알아본다. 2.1 문제 설명 동기화 문제 중에서 대표적인 은행 계좌 문제를 살펴보자. 은행에는 하나의 계좌에 입금, 출금을 할 수 있다.

operation

1건의 항목

  • 관계 연산 (True or False) Equals 두 개가 완전히 동치인 경우 Disjoint 두 개가 하나도 겹치지 않는, 즉 서로소인 경우 Intersects 교집합 뚫고 지나가는 경우, 겹치는 경우 Touches 테두리에 걸리는 경우 Crosses 교차할 때 그런데, 비교하고자 하는 두개의 gemoetry가 서로 차원이 다르거나 (점, 선, 면) 혹은 선이어야만 연산이 성립 점 & 선, 선 & 면, 선 & 선만 정의가 가능 Within / Contains 완전히 포함될 떄 성립 Overlaps 같은 차원...

operation-queue

1건의 항목

operators

2건의 항목

  • 연산자 & 피연산자 연산자 : 산술연산자인 +, - , * , / 와 같이 이미 정의된 연산을 수행하는 기호 피연산자 : 연산에 참여하는 변수나 값 연산자의 종류 대입 연산자 일반적 수학에서 사용하는 기호 LHS와 RHS가 다른의미를 가지고 있다.

  • Combine이 무엇일까? Apple이 설명하는 것을 들어보자. What is Combine 이벤트 처리 연산자를 결헙하여 비동기 이벤트를 처리하는 방법 일단 비동기 이벤트가 무엇이 있는지부터 알아보자.

opposite-category

1건의 항목

optimization

1건의 항목

  • 설명 최적화 기법 중 하나다. 대부분의 최적화 기법이 그렇듯, 특정 제약조건에서 목적함수를 최적화하는 문제이다. 그런데 이 목적함수의 모양이 선형이다. 주로 자원 배분, 생산 계획, 물류 최적화 등에서 활용된다.

option

1건의 항목

  • 정의 옵션의 시간 가치 감소율 옵션의 가치가 만기일이 다가옴에 따라 시간 경과로 인해 얼마나 감소하는지를 측정함. 옵션은 만기일이 가까우면, 불확실성이 사라지기 때문에 기본적으로는 가치가 감소함. 이 측면에서 바라본 가치의 감소만을 뜻함.

optional

5건의 항목

optional-chaining

1건의 항목

  • Swift를 처음 공부하면서 가장 어려웠던게 이 Optional인 것 같다. 애초에 개발도 처음할 시기였으니, 이런 자료구조가 왜 필요한지 전혀 몰랐었던 시간이 있었다. 해당 이유는 Either와 Result 이해와 실제 사용예 알아보기 포스트를 참고해주길 바란다.

options

1건의 항목

ordinary-differential-equations

1건의 항목

orthogonal-matrix

1건의 항목

osi

1건의 항목

osi-7layer

2건의 항목

out-of-index

1건의 항목

out-of-range

2건의 항목

output

3건의 항목

  • fstream Reading from file #include <iostream> #include <fstream> #include <string> using namespace std; int main(){ string line1; string line2 ifstream myfile("input.txt"); if (myfile.is_open()){ if(!myfile.eof()){ // end of file 이 아니면 계속 진행.

  • format() print('{0} ate {1} apples {2}'.format('I', '3', 'yesterday')) print('{0} ate {1} apples {2}'.format('You', '5', 'at 2 pm')) print('{1} ate {0} apples {2}'.format('5', 'You', 'a...

  • 컴퓨터를 통한 문제 해결을 위해서 우리는 정수, 실수, 문자열 등을 프로그램 실행중에 만들어서 사용하였다.

overfitting

1건의 항목

overflow

1건의 항목

  • 자료형 프로그램에서 선언된 변수들이 기억 공간에서 어떻게 저장되고 처리되어야 할지, 컴파일러에게 알려줌 종류 정수형 실수형 문자형 사용자 정의 자료형 정수형 소수점이 없는 숫자 음의 정수, 0 , 양의 정수 오버플로우(overflow) 데이터 허용 범위를 넘는 값을 변수에 저장할 때, 의도한 값이 아닌 다른 값이 저장되는 것 #include <stdio.h> int main(void) { short a = 32767, b=2, c; unsigned short d; c = a+b; d = a+b; printf("c...

overloading

2건의 항목

  • Overloading 같은 함수이름, 혹은 연산자를 사용하면서, 하나 이상의 정의가 가능한 방법이다. Function Overloading 연산자 오버로딩과 방식이 동일하다. 밑에서 예를 든것을 보고 이해해보자.

  • Inherence 전체적인 구조 상속이 필요한 이유 상속은 매우 유용하다. 13. Class & Object & Constructor 글을 다시 기억해보자.

override

2건의 항목

  • 인터페이스는 왜 필요할까? 그리고 무엇일까? Interface의 사전적 의미 inter-(상호간의) + -face(면) = interface 접해있는 두 물체나 공간 사이의 경계 사용자는 스위치를 키는 버튼에 집중 이걸 누르면 어떤 일이 일어날지를 앎 (what) 어떻게 그런일이 일어나는지는 모름 (how) 실제 동작은 구현 공간에서 일어남 배선의 연결 사용자는 잘 알지 못하는 공간 구현자만 알고 있음 이미 알고 있는 개념 = 함수 함수는 블랙박스임: 호출자는 내부가 어떻게 도는지 이해하려 하지 않는다.

  • Inherence 전체적인 구조 상속이 필요한 이유 상속은 매우 유용하다. 13. Class & Object & Constructor 글을 다시 기억해보자.

overriding

1건의 항목

package

1건의 항목

  • Package Finder가 단일 파일인 것처럼 사용자에게 제공하는 디렉토리 가장 쉽게 알아볼 수 있는 것은 우리가 사용하는 Application에 있는 최종 Product! .app 이다.

packet

3건의 항목

  • Packet Delay 패킷스위칭을 시 라우터는 패킷단위의 데이터를 전달받고 목적지로 전달하는 역할을 수행한다. 이 과정에서 라우터가 보낼 수 있는 대역폭보다 더 많은 유저가 더 빠른 속도로 데이터를 보낸다면 딜레이가 생길 수 밖에 없다.

  • 한번에 전송할 데이터의 크기 편지를 내가 썼다. 그 편지를 누군가한테 보내는데, 글자하나하나를 보내지 않는다. 이 때 편지는 우체부 아저씨가 누군가한테 배달하는 단위가 된다. 이와 같은 개념이 패킷이다. 패킷은 데이터를 보내는 데 있어 발생하는 단위이다.

  • 설명 현재 네트워크에서 다른 네트워크로 최적 경로를 통해 데이터를 전송 경로 정보는 라우팅 테이블에 등록 라우팅 테이블에 경로 정보를 등록하는 방법은 수동 등록과 자동 등록이 있다. 수동 등록은 소규모 네트워크에 적합하다.

padding

1건의 항목

paging

2건의 항목

  • 외부 단편화를 해결하는 방법인 페이징(Paging)에 대해 알아본다. 1. 페이징(Paging) 외부 단편화로 인한 메모리 낭비는 매우 심하다는 것을 살펴보았다.

  • page를 메모리에 할당하는 프레임 할당에 대해 알아본다. 1. Global VS Local Replacement Global Replacement 메모리 상의 모든 프로세스 페이지에 대한 교체 작업을 수행한다.

pair-programming

2건의 항목

  • 기한이 다가오고, 모르는 기술 앞에서 우리는 압박을 받기 마련이다. 어떻게 헤쳐나가야 할까? 압박 프로개발자는 압박감을 느껴도 침착하고 결단력 있게 행동한다. 압박감이 커질 수록 훈련과 규율을 따른다.

  • 사람이 싫더라도 우리는 그들과 일하는 방법을 배워야 한다. 프로그래머 vs 보통 사람들 프로그래머는 사람들과 같이 일하는게 좋아서 된게 아니다. 일반적으로 사람들 사이의 관계는 뒤죽박죽이고 예측하기 히믇ㄹ다. 우리는 예측한 대로 움직일 때가 즐겁다.

parallelism

3건의 항목

parameter

8건의 항목

  • Example of a Layer 이제 원래 배웠던 신경망의 노드에서 하는 활동으로 돌아오자. 결국 이 필터는 가중치들의 모임이고, 원래 데이터에서 이 가중치를 곱한다음에 더하는 행위는 한 노드에 이 데이터들이 들어가는 것이다.

  • 냄새나면 당장 갈아라. 어떻게 하는지에 대해서 지금까지 배웠다. 하지만, “언제” 시작하고 그만할지를 판단하는 것은 또 다른 얘기다. 어떤 “냄새”를 맡았을 때 손을 대야할까? 기이한 이름 이름으로 이게 뭐하는 것인지 딱 볼 수 있게 작성해야 한다.

  • Introduce Parameter Object, 매개변수 객체 만들기에 대해 알아보자.

  • 변수 func someFunction(a: Int, b: Int) { } 이러한 상황에서 a, b는 무엇일까? 일단 기본적으로 변수다. 그리고 함수내에서 사용하고 있다. 이렇게 함수 내에서 사용하는 변수인 경우 parameter라 부른다. 다른 말로는 매개변수이다.

  • 함수의 일반적인 개념 사용자가 필요한 함수를 만들어 쓰자. 프로그램 실행 흐름 프로그램 실행 중에 함수명과 동일한 부분을 만나면, 해당함수로 이동 함수실행 main() 함수로 다시 돌아옴 함수의 장점 동일한 기능을 여러번 작성할 필요가 없다.

  • 함수의 기본 모양 수학에서의 함수와 같이, input , output 이 있고, input 이 들어갔을 때, 어떤 작업을 한 뒤, output 을 내보내는 방식으로 작동한다.

  • 일급 함수 parameter로 사용가능 return 값으로 사용가능 익명함수 argument label 호출하는 쪽에서 사용하는 이름 parameter name function 안에서 사용하는 이름 Variadic parameters 0개 이상의 특별한 타입을 나열해서 파라미터로 넘길 수 있음 ...을 넣어서 사용 이렇게 선언된 경우 함수안에서 해당 type의 Array로 사용할 수 있음 func sum(values: Int…) -> Int { var result = 0 for value in values { result +=...

  • Parameters 문서에 제공할만한 매개변수 이름을 선택하자. 파라미터 이름을 숨겨 보이지 않는 경우에도 설명에 있어서는 중요하다.

parameter-name

1건의 항목

  • 일급 함수 parameter로 사용가능 return 값으로 사용가능 익명함수 argument label 호출하는 쪽에서 사용하는 이름 parameter name function 안에서 사용하는 이름 Variadic parameters 0개 이상의 특별한 타입을 나열해서 파라미터로 넘길 수 있음 ...을 넣어서 사용 이렇게 선언된 경우 함수안에서 해당 type의 Array로 사용할 수 있음 func sum(values: Int…) -> Int { var result = 0 for value in values { result +=...

parametric-search

4건의 항목

  • 실버2 : 파라메트릭 서치 문제이다. 생각 파라메트릭 서치 문제이다. 일단 완전 탐색이 불가하고, 답을 제시했을 때 분기를 만들 수 있다는 점에서 바로 접근했다. 인접한 집간의 최대 거리를 제시한다.

  • 실버1 : 이분 탐색, Parametric Search 문제이다. 생각 처음에 이 문제를 풀 때, 세그먼트 트리로 풀려고 했다. 그런데, 문제가 생겼다.

  • 실버3 : 이분 탐색 문제이다. 생각 이분 탐색 문제이다. 이전의 문제들과 마찬가지로, 값을 제시하고 그에 대한 분기를 만드는 것이 중요하다. 이 때, 어느 영역에서 답이 나오는지를 잘 체크하고, 답의 후보를 기록해두는 행위가 중요하다.

  • 실버2 : 파라메트릭 서치 문제이다. Root 찾기 처음에 또다시 해시로 풀려고 하다가, 중간에 입력값의 범위가 후덜덜한 것을 보고 풀이 방법을 바꾸었다. 이 문제를 그냥 linear하게 풀려고 하면 100000번을 linear하게 탐색해야 하기 때문에 터져버린다.

parsing

1건의 항목

  • protoc protobuf는 데이터를 구조화하고, 이를 전송하고자 하는데 있어서 유연하고 효율적으로 작성하고 파싱하도록 지원하는 자동화 솔루션이다. json이나 xml을 생각하면 이해가 쉬운데, 사실 조금 다른 부분이 있다.

password

1건의 항목

  • 발생하는 경우 계정 패스워드를 바꿨는데 로컬 반영이 안된 경우 환경 등의 알지못하는 변경이 영향을 준 경우 해결 방법 git config --unset credential.helper // git config credential.helper store // 해당 Git directory에서 적용 git config credential.helper store --global // 전체 Git에서 적용 Reference push 시 Password 물어보지 않도록 설정하기 .

patch

1건의 항목

pbxproj

1건의 항목

  • 내가 기존에 만들었던 강아지 밥주는 앱(DogFood …)를 기준으로 설명해보겠다. PROJECT_FILE_NAME.xcodeproj 이녀석의 정체는 파일이 아니다. 디렉토리다! 우클릭후 “패키지 내용보기”로 내부를 확인할 수 있다.

pda

1건의 항목

  • 소수설에서 태어난 다양한 주장들에 대해 알아보자. ADT와 PDA, Alan Kay에 대해 알아보자. 지금까지. 주류 OO에 대해 배웠다. 이제는 소수설들이 어떤 것들이 있었는지 알아보자. 취할 것은 취하고, 아닌 것은 아닌 것임을 알기 위해 배운다.

pe

1건의 항목

  • 실제 컴파일, 링킹이 끝난 뒤의 결과물에 대해서는 잘 모르는 것 같다. 실행 파일은 어떻게 구성되어 있는 걸까? 우리가 사용하는 프로그램들은, 바이너리화되어 있는 파일의 형태로 존재한다. 그런데, 이 실행파일의 형태는 OS에 따라 다른 형태로 존재한다.

percent-encoding

1건의 항목

percentile

1건의 항목

  • 데이터를 설명하는 상대위치와 이를 나타내는 box plot에 대해 알아본다. 상대위치 중앙값이 50%에 위치하는 분위수라면, 이에 대응하는 다양한 분위수가 존재한다. 백분위수 분포를 100개로 쪼개어 생각하는 것이다.

performance

2건의 항목

  • 이제 리팩터링 전반에 적용되는 원칙 몇 가지를 살펴보자. 리팩터링 정의 리팩터링이라는 개발 용어는 굉장히 두루뭉실한 의미로 통용된다. (많은 개발 용어가 그렇다) 하지만 이를 엄격하게 정의해야 유용하다.

  • iOS Layout을 적용하는 것에는 여러가지 방법이 있다. autolayout만이 정답이라 생각했는데, 오산이었다. 이 부분은 주기적인 업데이트를 하도록 하겠다. Storyboard 장점으로는 UI 구성을 눈으로 확인할 수 있다는 점이다.

permutation

4건의 항목

phase

1건의 항목

physical-ai

3건의 항목

physical-layer

2건의 항목

pivoting

1건의 항목

pixel

1건의 항목

  • 컴퓨터가 모든 것을 숫자로 다루는 방식을 알아보자. 최호성님의 유튜브 강의를 보며 기본적인 컴퓨터 구조를 이해하고 정리하자. 컴퓨터로 글자를 나타내는 방법 ASCII Code 숫자와 글자에 대한 함수관계를 정의한다.

pla

1건의 항목

placeholder

2건의 항목

planning

11건의 항목 처음 10개의 태그

  • 모든 사람들의 의견을 바탕으로 수렴된 추정치를 내는 방법 Agile 개발 방법론에서 등장하는 단어이다. 추정치를 내는데 사용하는 방법중 하다나. 모든 개발자가 참여한다.

  • 계획이란 무엇인가? 계획이 없다면 프로젝트는 수많은 문제들과 마주하게 된다. 시간 / 비용 값을 기반으로 진행 여부를 판단한다 제때 원하는 기능을 내놓을 수 있을지 없을지 알 수 있다. 하지만 계획한다는 것은 어렵고, 수시로 어긋나기까지 한다.

  • 계획과 추정에 대한 연구결과 2/3 가량의 프로젝트는 추정된 비용 이상으로 많은 돈이 든다. 최종 제품에 포함된 기능들 중 64 퍼센트 가량은 거의 혹은 결코 쓰이지 않는다. 평균적인 프로젝트는 계획된 일정을 두 배 정도 초과한다.

  • 지금 열정적으로 수행하는 ‘좋은’ 계획이 다음 주에 실행할 ‘완벽한’ 계획보다 낫다.

  • 스토리 점수는 상대적이다 스토리 점수: 사용자 스토리나, 기능, 작업의 규모를 표현하기 위해 사용하는 단위 값의 상대성에 의미가 있다.

  • 이상적 시간과 실제 경과 시간 축구 한게임하는데 시간이 얼마나 걸릴까? 누구는 90분, 누구는 3시간이라 말할 것이다. 90분은 이상적 시간에 대응되고, 3시간은 실제 경과 시간에 대응된다고 볼 수 있다.

  • 수확 체감의 법칙 수확 체감의 법칙은 노동을 더 투입한 만큼에 비례하여 결과가 늘어나지 않음을 말한다. 계획 추정에 있어서도 비슷하다. 적은 시간 투자를 통해 얻는 결과와 많은 시간 투자를 통해 얻은 결과가 크게 다르지 않다.

  • 재 추정을 하면 안 되는 경우 첫번째 이터레이션을 한 후, 1, 2번 스토리를 마무리했다고 생각해보자. 원래는 4개의 스토리 모두를 한 이터레이션에 할 수 있을 것이라 생각했다.

  • 규모 추정에는 스토리 점수와 이상적 작업일이라는 두 수단이 있다. 각각 나름의 장단점이 있는데, 어떻게 활용하는 것이 좋은지에 대해 얘기해본다. 스토리 점수의 장점 스토리 점수는 팀원들로 하여금 기능간 경계를 뛰어 넘게 한다.

  • 핵심 요약 시간이 없기 때문에 우선순위 선정을 해야 한다. 스토리 말고 테마를 통해 우선순위 산정한다.

planning-poker

2건의 항목

  • 우리가 가장 못하는 행위인 추정에 대해 알아보자. 추정 가장 단순하면서도 가장 두려운 행위다. 큰 사업가치가 추정에 따라 좌지우지된다. 사업부와 개발자를 벌어지게 만드는 제 1요소이다. 불신감의 원인은 대부분 추정이다.

  • 모든 사람들의 의견을 바탕으로 수렴된 추정치를 내는 방법 Agile 개발 방법론에서 등장하는 단어이다. 추정치를 내는데 사용하는 방법중 하다나. 모든 개발자가 참여한다.

png

1건의 항목

  • PNG(Portable Network Graphics) 핵심: 비손실 압축 방법 원리 Huffman coding를 통한 압축 그렇기 때문에 반복되는 이미지가 등장할 경우 PNG가 보다 효과적 장점: 투명도 사용가능, 비손실 압축, 32비트 트루컬러, 크게 색상 변화가 크지 않은 이미지의 경우 사용하는 것이 좋다.

pointer

4건의 항목

polar-coordinate

3건의 항목

polymorphism

7건의 항목

  • 다형성은 무엇인가? 왜 중요한가? Polymorphism poly + morph + ism: 다양한 + 변하다 + 상태 = 다양한 형태로 변할 수 있는 능력 많은 사람들이 OOP의 핵심이라 여기는 특징 같은 지시를 내렸는데 다른 종류의 개체가 동작을 달리 하는 것 어떤 함수 구현이 실행될지 실행중에 결정된다.

  • Early Binding과 Late Binding은 성능에서 어떤 차이가 나는가? 실제로는 어떻게 사용하는가? 알게 모르게 당연하게 사용하고 있는 다형적 메서드는 무엇이 있을까? 이른 바인딩 vs.

  • 추상클래스는 왜 필요할까? 다형성은 멋지고 강력한 개념 OO 4대 특성인 이유 (상속, 캡슐화, 다형성, 추상화) 다형성은 상속에 기반 상속과 다형성은 추상화에 기반 공통된 것을 뽑아내어 일반화된, 범용적인 것으로 적용 여러 클래스에서 공통 분모를 뽑아 부모 클래스로 제작 자식마다 달리 작동하는 구현을 부모의 method signature로 일반화 추상화는 조금더 복잡한 문제를 해결하기 위한 것 새로운 개념은 새로운 문제도 가져온다 추상화는 막강하지만 그로 인해 생각지 못한 문제가 발생 역시 사람은 직접 해보고 당해봐야 답을 찾음 ...

  • 만약에 연극 종류가 추가되면 어떻게 될까? 이제 다형성으로 변경할 시점이다. 다형성을 활용해 계산코드 재구성하기 지금까지 구성한 코드를 한번 보자.

  • 마지막으로 변경된 코드를 보며 생각해보자.

  • Replace Conditional With Polymorphism, 조건부 로직을 다형성으로 바꾸기를 알아보자.

  • Dynamic Binding (동적 바인딩) 그런데, 우리가 두 클래스가 상속관계에 있다는 것을 안다면, 이 멤버함수를 자동으로 묶어줄 수는 없을까? 이제 override , virtual 의 강력한 기능을 알 수 있다.

polynomials

1건의 항목

pooling

2건의 항목

pop

1건의 항목

population

1건의 항목

  • 모집단을 추정하기 위한 표본을 추출하는 방법에 대해 알아본다. 표본 추출 단순 랜덤 추출 단순히 랜덤하게 모집단에서 추출하는 방법이다. 집단의 분포가 불균형할 경우 모집단의 특성을 대변하지 못한다는 단점이 있다.

population-parameter

1건의 항목

  • 통계 개념 정리에 앞서 통계학이라는 학문에 대해 알아본다. 통계는 왜 공부하는가 미래를 알기 위해서, 집단의 특징을 알기 위해서 우리는 군중의 특징에 대해 알 필요가 있다. 예를 들어 물건을 판다고 생각해보자.

port

1건의 항목

  • IP 주소를 갖고 있는 컴퓨터에서 Process에 접근하기 위한 번호 해당 컴퓨터에 들어가더라도, 어떤 process에 접근하는지를 알아야 한다. 그걸 대표하는 것이 포트 번호이다.

port-forwarding

1건의 항목

  • IP 주소를 갖고 있는 컴퓨터에서 Process에 접근하기 위한 번호 해당 컴퓨터에 들어가더라도, 어떤 process에 접근하는지를 알아야 한다. 그걸 대표하는 것이 포트 번호이다.

posix

1건의 항목

  • 개념 특정한 규칙을 가진 문자열의 집합을 표현하기 위해 쓰이는 형식언어 프로그래밍을 다루다 보면 가장 많이 만나게 되는 것이 문자열이다. 모든 것이 문자열로 나타나 있고, 이것을 기반으로 한 규칙으로 프로그램이 구동되기 때문이다.

practicing

1건의 항목

  • 모든 직업군에 종사하는 사람들은 연습을 한다. 연습 모든 프로는 기술 연마를 한다. 프로그래머는 무엇을 해야할까? 연습의 배경지식 작은 프로그램을 짜봐라.

preprocessor

1건의 항목

presentation-layer

1건의 항목

pressure

1건의 항목

  • 기한이 다가오고, 모르는 기술 앞에서 우리는 압박을 받기 마련이다. 어떻게 헤쳐나가야 할까? 압박 프로개발자는 압박감을 느껴도 침착하고 결단력 있게 행동한다. 압박감이 커질 수록 훈련과 규율을 따른다.

prim-algorithm

1건의 항목

  • 그래프 용어 V : vertex E : Edge path 연결 그래프 : 어떤 두 정점 사이에도 경로가 존재하는 그래프 부분 그래프 가중치 포함 그래프 : Edge에 가중치가 달려있음 순환 경로 순환 그래프, 비순환 그래프 트리 - 비순환, 비방향그래프 신장 트리 : 연결된, 비방향성 그래프에서 순환경로를 제거하면서 연결된 부분 그래프가 되도록 하는 트리 신장 트리의 개수는 Cayley’s formula에 따른 개수를 가짐 최소비용신장트리 신장 트리가 되는 부분 그래프 중에서 가중치가 최소가되는 부분 그래프 무조건 트리로 나온다.

prime

1건의 항목

prime-factorization

1건의 항목

primitive-type

1건의 항목

print

1건의 항목

  • String 문자열 나누기 Pithon -> Python 으로 바꾸는 작업을 진행해보자. # 잘못된 예 a = "Pithon" a[1] = 'y' 불가능하다. 문자열의 요소값은 바꿀 수 있는 값이 아니다.

printf

1건의 항목

  • 프로그래밍 사용자가 어떤 값을 컴퓨터에 넣고(입력) 처리한 결과를 사용자에게 다시 제공(출력)하는 것 graph LR; A[Input] --> B{Function} B --> C(Output) 입출력 함수 표준 입출력 함수: 키보드와 모니터를 통해 자료를 입출력 파일 입출력 함수: 특정한 파일을 통해 자료를 입출력 저급 입출력 함수: 운영체제 내, 시스템 호출을 통해 자료를 입출력 표준 입출력 함수 형식화된 입출력 printf() 함수 표준 출력 장치인 모니터로 자료를 출력 도스창에 실행결과를 표시할 때 사용 제어 문자열...

prioritization

1건의 항목

priority-queue

1건의 항목

private-ip

2건의 항목

  • 인터넷 공간 상에서 해당 단말기의 고유 주소 Socket을 통해 통신한다는 것은 알았다. 근데 우리가 전화를 걸더라도, 어디에 전화를 걸것인지 알아야 한다. 그걸 대표하는 것이 전화번호이다. 마찬가지로 통신을 하려면, 어디에 통신할 것인지 알려주는 과정이 필요하다.

  • Network Address Translation (네트워크 주소 변환) 자 위에서 결국 우리는 공유기를 통해서 우리집에 배정된 공인 IP 주소를 가지고 각각의 장치에 배정된 사설 IP로 뿌려서 사용한다는 것을 알게되었다.

private-key

2건의 항목

  • Secure Shell 기존에 Telnet 사용 → 암호화를 통해 안전한 제어 가능, 중간에 가로채도 쓸모 없음 클라이언트와 서버로 분리됨 공개키, 암호키 방식으로 서버에 접속하는 방식이 있음 보다 안전함 → 따로 구글링 할 것 .

  • 비밀키를 직렬화하는 방법을 알아보자. 비밀키 직렬화 비밀키를 직렬화할 이유는 그닥 없다. 네트워크로 전파할 일이 없기 때문이다. 비밀키 전파는 지갑이 털릴 수 있는 위험이 매우 크다.

probability

1건의 항목

probability-density-function

1건의 항목

probability-mass-function

1건의 항목

procedural-data-abstraction

1건의 항목

  • 소수설에서 태어난 다양한 주장들에 대해 알아보자. ADT와 PDA, Alan Kay에 대해 알아보자. 지금까지. 주류 OO에 대해 배웠다. 이제는 소수설들이 어떤 것들이 있었는지 알아보자. 취할 것은 취하고, 아닌 것은 아닌 것임을 알기 위해 배운다.

process

8건의 항목

  • 운영 체제가 하는 일을 간단하게 알아보자. 최호성님의 유튜브 강의를 보며 기본적인 컴퓨터 구조를 이해하고 정리하자. 운영체제가 하는 일 접근 제어 + 동기화 + 관리 전산 자원을 관리한다. 대표적인 전산 자원은 CPU, RAM 등이 있다.

  • Inter Process Communication 프로세스는 완전히 독립된 실행객체이다. 서로 독립되어 있다는 것은 다른 프로세스의 영향을 받지 않는다는 장점이 있다.

  • IP 주소를 갖고 있는 컴퓨터에서 Process에 접근하기 위한 번호 해당 컴퓨터에 들어가더라도, 어떤 process에 접근하는지를 알아야 한다. 그걸 대표하는 것이 포트 번호이다.

  • 프로세스간 통신 interface IPC를 가능케하는 interface이다. 서로 다른 process에서 접속을 하려 할 때, 이 socket을 사용하여 접근하게 되고, 해당 socket은 접속하는 process가 제대로 왔는 지와 같은 검사를 수행하게 된다.

  • 운영체제의 주요 서비스: 프로세스, 메모리, 파일관리, 시스템 호출에 대해 알아본다. 운영체제의 주요 서비스는 하드웨어 자원을 각 사용자 애플리케이션에 적절히 분배해주는 것이다.

  • Thread에 대해서 알아본다. 쓰레드(Thread) 쓰레드는 프로그램 **내부의 흐름(맥)**이다.

  • 프로세스 동기화가 발생하는 예시와 목적, 그리고 그것을 해결하기 위한 원칙에 대해 알아본다. 1.

  • 외부 단편화를 해결하는 방법인 페이징(Paging)에 대해 알아본다. 1. 페이징(Paging) 외부 단편화로 인한 메모리 낭비는 매우 심하다는 것을 살펴보았다.

producer-consumer

1건의 항목

producer-consumer-problem

3건의 항목

professionalism

2건의 항목

  • 프로란 무엇일까? 내가 생각한 프로와 저자의 프로는 무엇이 다를까? Clean Coder 소프트웨어 개발자로서 전설로 알려진 로버트 C. 마틴의 저서이다. 프로란 무엇인지, 그리고 프로로서 어떻게 생각하고 행동해야 하는지에 대해 적혀있다.

  • 프로는 어떤 마음가짐을 가져야 하는가? 함부로 바라지 마라 Professionalism 명예와 긍지 책임과 의무 책임감을 가져라 제대로 테스트하지 않고 물건을 보냈을 때 발생한 사건에 대해 말한다. 제품이 완성됨을 확신하지 않고서 납품하여 큰 문제가 발생했다.

profile

1건의 항목

  • 앱스토어에 실제 앱을 배포해본 사람은 알겠지만, 인증서, provisioning과 같은 개념은 생소하다. 정확하게 알아보자. 원칙 Apple 만이 자신들의 하드웨어(iOS, iPadOS, MacOS etc)에 특정 소프트웨어가 동작하도록 할 수 있다.

programmer

1건의 항목

  • 사람이 싫더라도 우리는 그들과 일하는 방법을 배워야 한다. 프로그래머 vs 보통 사람들 프로그래머는 사람들과 같이 일하는게 좋아서 된게 아니다. 일반적으로 사람들 사이의 관계는 뒤죽박죽이고 예측하기 히믇ㄹ다. 우리는 예측한 대로 움직일 때가 즐겁다.

programmers

37건의 항목 처음 10개의 태그

programming

2건의 항목

  • 송재준 저자의 Programming Bitcoin을 정리합니다.

  • 고급언어 > 가상 머신 > 실제 머신 이 이해하는 방식으로 추상화된 코드가 구체화 된다. 이 단계에서 가상 머신이 이해할 수 있을 정도의 형태로 변환한 코드를 바이트 코드라 한다. 이렇게 중간단계를 둚으로서 다양한 머신에 대응할 수 있다.

programming-language

1건의 항목

  • 보통 golang이라 부른다. 컴파일 언어이다. 장점 컴파일 속도가 매우 빨라 인터프리터 언어처럼 쓸 수 있다. 단순함과 실용성을 강조한다. 정적 타입 언어이다. GoRoutine 비동기 매커니즘을 제공한다. 단점 Byte code 생성 언어가 아니다.

project

2건의 항목

  • 팀이 중요할까 프로젝트가 중요할까? 갈아서 만들었나요? 서로 다른 프로젝트에 속한 사람들이 뒤죽박죽이라면 어떨까? 1에는 A, B 2에는 B, C 거기에 프로그래머 말고 사업분석가, 테스터들도 섞인다면? 한 덩어리로 뭉친 팀 팀이 만들어지는데는 시간이 걸린다.

  • 간단하게 프로젝트 내부를 탐험해보았다면, 각각의 제대로된 정의를 알아야 한다. 앞의 글에서 이어지니, 이해가 안되면 보고 오는 것이 좋다.

project-structure

1건의 항목

  • 내가 기존에 만들었던 강아지 밥주는 앱(DogFood …)를 기준으로 설명해보겠다. PROJECT_FILE_NAME.xcodeproj 이녀석의 정체는 파일이 아니다. 디렉토리다! 우클릭후 “패키지 내용보기”로 내부를 확인할 수 있다.

projection

1건의 항목

  • 3D를 어떻게 2D로 만들까? 지구 중심에 광원이 있다고 가정, 그림자를 투영 투영면의 종류에 따라 원통 원추(뿔) 방위(천장 원만 사용) 광원의 위치에 따라 심사(정중앙) 평사(표면) 정사(무한이 먼 광원, 평행) 메르카토르 도법 원통, 심사 정형법: 각도를 유지 모든 면이 같은 면적과 같이 보이기 때문에, 지도에서의 각과, 실제 배를 돌리때의 기수각이 같다는 점에서 이러한 단어가 붙음 지도의 위쪽으로 갈수록 실제 면적이 길게 표현됨 특성상 북극, 남극의 경우 투사가 되지 않아 표현자체가 어렵다는 단점이 존재 골피터스 도법 면적이...

property

1건의 항목

  • 간단하게 property는 member 변수이다. 그런데 Swift에는 다양한 종류의 property가 존재한다. 사실 어떻게 보면 활용방법? 테크닉에 가깝겠다. 어떻게 property를 관리하는 지 안다면, 실제 코드를 간결하고 읽기 좋게 유지할 수 있다.

property-observer

1건의 항목

  • 간단하게 property는 member 변수이다. 그런데 Swift에는 다양한 종류의 property가 존재한다. 사실 어떻게 보면 활용방법? 테크닉에 가깝겠다. 어떻게 property를 관리하는 지 안다면, 실제 코드를 간결하고 읽기 좋게 유지할 수 있다.

property-wrapper

1건의 항목

  • 간단하게 property는 member 변수이다. 그런데 Swift에는 다양한 종류의 property가 존재한다. 사실 어떻게 보면 활용방법? 테크닉에 가깝겠다. 어떻게 property를 관리하는 지 안다면, 실제 코드를 간결하고 읽기 좋게 유지할 수 있다.

protobuf

1건의 항목

  • protoc protobuf는 데이터를 구조화하고, 이를 전송하고자 하는데 있어서 유연하고 효율적으로 작성하고 파싱하도록 지원하는 자동화 솔루션이다. json이나 xml을 생각하면 이해가 쉬운데, 사실 조금 다른 부분이 있다.

protocol

6건의 항목

  • HTTP 관련 내용은 사실 읽어도 읽어도 잘 머리에 안남는 것 같다. 사실 전반적인 흐름은 아는데, 뭔가 단어들이 기억에 잘 남는다는 느낌은 안들었었다. 다시한번 정리하면서 반복학습을 할 목적으로 포스팅을 남겨본다.

  • 목적지 컴퓨터의 IP 주소를 이용하여 MAC Address를 찾기 위한 Protocol! ARP 요청 - Ethernet 프레임을 전송하려면, 목적지 컴퓨터의 MAC Address를 알아야 한다.

  • 서로 다른 개체들이 서로 간의 의사소통을 하기 위해 만들어놓은 규약 사람이 대화를 하는 과정에도 일정한 흐름과 규약이 존재한다. 어떠한 객체가 소통하기 위해서는 서로의 방식을 맞추어야 한다.

  • 설명 현재 네트워크에서 다른 네트워크로 최적 경로를 통해 데이터를 전송 경로 정보는 라우팅 테이블에 등록 라우팅 테이블에 경로 정보를 등록하는 방법은 수동 등록과 자동 등록이 있다. 수동 등록은 소규모 네트워크에 적합하다.

  • 이전에 metatype에 대해 흘려들었었는데, 이번에 간단하게 정리해보려한다. metatype이란? Swift에서 우리는 특정 instance의 Type에 접근할 수 있다.

  • Protocol의 경우 POP라는 개념으로 Apple에서 밀어주는? 개념이다.

protocol-oriented-programming

1건의 항목

prototype

2건의 항목

  • GoF의 디자인 패턴, 원형 패턴에 대해 알아본다. 해당 글은, 다음의 코드를 기반으로 이해하는 것이 편리합니다.

  • 인터페이스는 왜 필요할까? 그리고 무엇일까? Interface의 사전적 의미 inter-(상호간의) + -face(면) = interface 접해있는 두 물체나 공간 사이의 경계 사용자는 스위치를 키는 버튼에 집중 이걸 누르면 어떤 일이 일어날지를 앎 (what) 어떻게 그런일이 일어나는지는 모름 (how) 실제 동작은 구현 공간에서 일어남 배선의 연결 사용자는 잘 알지 못하는 공간 구현자만 알고 있음 이미 알고 있는 개념 = 함수 함수는 블랙박스임: 호출자는 내부가 어떻게 도는지 이해하려 하지 않는다.

provisioning

1건의 항목

  • 앱스토어에 실제 앱을 배포해본 사람은 알겠지만, 인증서, provisioning과 같은 개념은 생소하다. 정확하게 알아보자. 원칙 Apple 만이 자신들의 하드웨어(iOS, iPadOS, MacOS etc)에 특정 소프트웨어가 동작하도록 할 수 있다.

proxy

3건의 항목

pub-sub

4건의 항목

public-ip

2건의 항목

  • 인터넷 공간 상에서 해당 단말기의 고유 주소 Socket을 통해 통신한다는 것은 알았다. 근데 우리가 전화를 걸더라도, 어디에 전화를 걸것인지 알아야 한다. 그걸 대표하는 것이 전화번호이다. 마찬가지로 통신을 하려면, 어디에 통신할 것인지 알려주는 과정이 필요하다.

  • Network Address Translation (네트워크 주소 변환) 자 위에서 결국 우리는 공유기를 통해서 우리집에 배정된 공인 IP 주소를 가지고 각각의 장치에 배정된 사설 IP로 뿌려서 사용한다는 것을 알게되었다.

public-key

2건의 항목

  • Secure Shell 기존에 Telnet 사용 → 암호화를 통해 안전한 제어 가능, 중간에 가로채도 쓸모 없음 클라이언트와 서버로 분리됨 공개키, 암호키 방식으로 서버에 접속하는 방식이 있음 보다 안전함 → 따로 구글링 할 것 .

  • 공개키 비트코인 주소 형식에 대해 알아본다. 이는 곧 “주소”이다. 비트코인 주소 WIF(Wallet Import Format) 앞에서 공개키와 비밀키, 그리고 서명, 검증 방식에 대해 알아보았다. 그리고 이를 직렬화하는 방법도 배웠다.

publish-subscribe

4건의 항목

publisher

4건의 항목

  • Combine이 무엇일까? Apple이 설명하는 것을 들어보자. What is Combine 이벤트 처리 연산자를 결헙하여 비동기 이벤트를 처리하는 방법 일단 비동기 이벤트가 무엇이 있는지부터 알아보자.

  • Apple에서 공개한 API인 Combine. 이제 Rx에서 Combine으로 많이 넘어간다고 한다. 무엇을 하는 것인지, 왜 좋은지, 바로 써먹기 위한 팁은 무엇이 있는지 알아본다.

  • Combine에 대해서 실제 사용하다 보니, 이게 도대체 어떤 방식으로 이루어지는 지 궁금했다. 실제 코드를 보지 않으면 명확해지지 않을 것 같아 정리한다.

  • 두번째 글에서는 이해한 RxSwift의 기본 개념을 바탕으로 자주 사용하는 메서드를 알아본다. 무리하게 기억할 필요는 없고, 이렇게 사전 제작된 함수들이 많고, 잘 사용할 경우 유용하다는 사실까지만 이해해도 맛보기로는 충분할 듯 하다.

publishing

1건의 항목

  • 동기 다른 블로그 호스팅 서비스(Tistory, Velog)를 사용하면, 내가 온전히 관리하지 못한다는 측면에서 아쉬움이 있었다. Github Page를 Jekyll을 사용해 포스팅해보았지만, 1000개가 넘어가는 시점부터 너무 느려 사용하기가 꺼려졌다.

push

1건의 항목

  • 발생하는 경우 계정 패스워드를 바꿨는데 로컬 반영이 안된 경우 환경 등의 알지못하는 변경이 영향을 준 경우 해결 방법 git config --unset credential.helper // git config credential.helper store // 해당 Git directory에서 적용 git config credential.helper store --global // 전체 Git에서 적용 Reference push 시 Password 물어보지 않도록 설정하기 .

pwa

2건의 항목

  • Progressive Web App PWA(Progressive Web App)는 웹 애플리케이션을 개발하고 배포하기 위한 접근 방식과 기술 집합을 가리키는 용어입니다.

  • appsco.pe/developer/splash-screens 해당 사이트에서 스플래시 이미지를 만든다. PWA를 위해 이를 적절한 사이즈로 변환한 뒤, html head에 넣어준다.

python

87건의 항목 처음 10개의 태그

qa

3건의 항목

  • 프로는 어떤 마음가짐을 가져야 하는가? 함부로 바라지 마라 Professionalism 명예와 긍지 책임과 의무 책임감을 가져라 제대로 테스트하지 않고 물건을 보냈을 때 발생한 사건에 대해 말한다. 제품이 완성됨을 확신하지 않고서 납품하여 큰 문제가 발생했다.

  • 테스트 전략에 대해 알아본다. 테스트 전략 단위 테스트로는 충분치 않다. 프로 개발 팀이라면 훌륭한 테스트 전략이 필요하다. QA는 오류를 찾지 못해야 한다. 개발팀의 목표는 이거다. 그렇다고 해서 QA와 개발자가 서로 적대적인 관계를 가져야 하는 것은 아니다.

  • 왜 필요할까? V-Diagram 왜 단계적인 테스트가 필요할까? 문제가 발생했을 때, 시간, 의사소통 등의 비용을 줄이기 위함 요구사항 만족함을 증명하는 것 어떤 종류가 있을까? 단위 테스트 테스트가 가능한 최소 단위로 나누어진 모듈, 프로그램, 객체, 클래스 내에서 결함을 찾고 기능을 검증 독립적으로 수행됨 프로그래머가 주도함 코드를 중심으로 수행 이러한 구분은, 어떤 Task냐에 따라 구분이 달라진다.

qa-decomposition

1건의 항목

queue

1건의 항목

race-condition

1건의 항목

  • 현재 프로젝트에 적합한 간단한 이미지 캐시를 구현하여 사용하였습니다. 기본에 임시로 작업한 이미지 캐시의 경우, 네트워크 요청후 디스크에 저장이 되는 구조로 제작하였습니다.

ram

2건의 항목

  • 기억 장치의 동작방법에 대해 이해해보자. 최호성님의 유튜브 강의를 보며 기본적인 컴퓨터 구조를 이해하고 정리하자.

  • 운영체제에 대한 정의, 역할에 대해 알아본다. 운영체제는 사용자가 컴퓨터를 사용하기 위해 필요한 소프트웨어이다. 일반적으로 사용하는 모든 프로그램은 운영체제에서 그 자원을 관리한다. 목적 운영체제를 사용하는 가장 큰 목적은 하드웨어의 관리이다.

random

2건의 항목

  • String library method #include <string> #include <iostream> using namespace std; int main(){ string word = "good"; word.length(); // 길이 리턴 word.empty(); // 빈 문자열인지 1, 0값 리턴 word.clear(); // 문자열 삭제 word += "-bye"; // 더하기 가능 word[0]; // h word[word.length() - 1]; // 마지막...

  • 확률분포에 대해 이해한다. 왜 배우는가? 실생활에서 결국 엔지니어가 수행하는 역할은, 다양한 문제에 대해 이를 다룰 수 있는 문제로 바꾸는 것에 있다. 확률과 같이 애매하게 보이는 개념을 어떻게 수치화하여, 다룰 수 있는 문제로 바꾸는지에 대한 내용이 대부분이다.

random-variable

2건의 항목

  • 확률분포에 대해 이해한다. 왜 배우는가? 실생활에서 결국 엔지니어가 수행하는 역할은, 다양한 문제에 대해 이를 다룰 수 있는 문제로 바꾸는 것에 있다. 확률과 같이 애매하게 보이는 개념을 어떻게 수치화하여, 다룰 수 있는 문제로 바꾸는지에 대한 내용이 대부분이다.

  • 확률 변수 여러 값을 무작위하게 가지는 변수 확률 변수는 반드시 확률 분포와 결합되어야 한다. 확률 변수는 이산적일 수도, 연속적일 수도 있다. 이산적일 경우 반드시 정수인 것은 아니다. 연속적인 경우 실수값들과 연관된다.

range

1건의 항목

  • 컴퓨터를 통하여 문제를 해결하는 가장 중요한 이유 중에는 계속적으로 반복하는 작업을 컴퓨터가 대신 처리하여 주는 것이다. 이런 기능을 반복문이라고 하며, 대부분의 프로그래밍 언어는 다양한 반복문을 제공한다.

rank

2건의 항목

  • 1D Array & Slicing # www.tensorflow.org/api_guides/python/array_ops import tensorflow as tf import numpy as np import pprint tf.set_random_seed(777) # for reproducibility pp = pprint.PrettyPrinter(indent=4) sess = tf.InteractiveSession() t = np.array([0., 1., 2., 3., 4., 5., 6.]) pp.pprint(t) pr...

  • Rank 행렬은 하나의 공간을 매핑한다고 했다. 방금은 3 x 3 의 행렬에 대해 봤기 때문에, 열벡터 공간과 행벡터 공간이 동일하게 3차원 공간을 매핑하고 있었다. 하지만 행렬이 꼭 정사각행렬이라는 법은 없다.

raster

3건의 항목

  • JPG(Joint Photographic Experts Group) 정의: 정지 화상을 위해서 만들어진 손실 압축 방법 표준 핵심: 전체적 구조 손실보다 디테일 손실에 둔감하다는 점을 통해 압축 원리: 이미지의 고주파 성분의 일부를 제거함.

  • PNG(Portable Network Graphics) 핵심: 비손실 압축 방법 원리 Huffman coding를 통한 압축 그렇기 때문에 반복되는 이미지가 등장할 경우 PNG가 보다 효과적 장점: 투명도 사용가능, 비손실 압축, 32비트 트루컬러, 크게 색상 변화가 크지 않은 이미지의 경우 사용하는 것이 좋다.

  • 색상정보가 담긴 픽셀로 표현 JPEG, GIF, PNG 등 .

rcnn

3건의 항목

reactive

1건의 항목

  • Promise, Rx 등 비동기 처리를 하기 위한 방법은 많다. 이를 배워보기 이전에, 왜 그러한 개념이 나왔는지, 어떠한 방식으로 개선해왔는지를 코드를 고쳐보면서 이해해보는 것이 이 포스팅의 목표이다. 최대한 개조식으로 적으려 노력했다.

readers-writers

1건의 항목

readers-writers-problem

1건의 항목

realtime

1건의 항목

recursive

2건의 항목

  • 재귀 호출 함수에서 그 함수를 다시 호출하는 것 재귀함수 재귀호출을 구현한 함수 #include <stdio.h> int sum(int a); int main() { int input, s = 0; printf("양의 정수를 입력하세요 : "); scanf("%d", &input); s = sum(input); printf("재귀함수를 이용한 1부터 %d까지 합 : %d\n", input, s); return 0; } int sum(int a) { if (a &...

  • Recursion Function Factorial 같은 함수를 구현하기 위해서는, 자기자신의 출력값을 다시 불러야 되는 필요성이 있다. 이것을 재귀함수라 한다. 11. Function Part.

recursive-function

2건의 항목

  • 재귀 호출 함수에서 그 함수를 다시 호출하는 것 재귀함수 재귀호출을 구현한 함수 #include <stdio.h> int sum(int a); int main() { int input, s = 0; printf("양의 정수를 입력하세요 : "); scanf("%d", &input); s = sum(input); printf("재귀함수를 이용한 1부터 %d까지 합 : %d\n", input, s); return 0; } int sum(int a) { if (a &...

  • Recursion Function Factorial 같은 함수를 구현하기 위해서는, 자기자신의 출력값을 다시 불러야 되는 필요성이 있다. 이것을 재귀함수라 한다. 11. Function Part.

red-black-tree

1건의 항목

  • 탐색하는 방법에 대해 알아보자. 검색 문제 n개의 키를 가진 배열 S와 키 x가 주어졌을 때, x=S[i]가 되는 첨자 i를 찾는 것 없다면 오류로 처리한다. 결론 : 이분 검색 알고리즘보다 효율적인 알고리즘은 없다. 이진 검색 상태 공간 트리 순차 검색은 답이없다.

reduce

1건의 항목

  • 오늘은 작업 중 내가 모르는 코드를 발견해서 글을 써본다. reduce! reduce(::) 형태만 봐왔었는데 reduce(into::) 형태도 있더라! 알아보자.

refactoring

29건의 항목 처음 10개의 태그

reference-count

1건의 항목

  • 모든 변수는 객체이다. 파이썬에서 사용하는 변수는 객체를 가리킨다. 여기서 객체란 파이썬에서 사용되는 모든 것 을 의미하는 말이다. 이게 무슨말일까? 이 개념에 대한 직관적인 설명을 잘해둔 페이지가 있어 여기 소개한다.

reference-cycle

1건의 항목

reference-type

4건의 항목

  • Aliasing (Reference Variable) 기본적으로, 우리가 선언된 변수를 다른 변수에 할당하게 되면 이 값을 복사해서 사용하는 셈이 된다.

  • Pass by Reference 내가 클래스를 만들고, 그 클래스를 바탕으로 객체를 만들었다. 이때, 이 클래스에 연결되어 있는, 함수를 메서드라 했다.

  • Swift는 객체의 느낌으로 사용하는 3개의 개체가 있다. struct, class, enumeration이 그것이다. struct는 apple에서 권장하고, 실제로도 대체하는 것이 좋다고 생각되는 자료구조이고, enum의 경우 다른 언어보다 기능이 많이 추가되었다.

  • 처음에 Swift 공부할 때는 정말 아무것도 몰라서, 힘들었던 경험이 있다. 좋은 기회로 한번더 정리할 시간이 생겼다. 다시한번 전체적으로 훑는 시리즈를 만들어본다. 먼저, Swift가 어떤 언어적 특징을 갖는지, 기본 문법은 어떤지 알아보는 시간을 가지려 한다.

refusal

1건의 항목

  • 한다, 하지 않는다 둘뿐이다. 중간은 없다. 아니라고 말하기 시간을 쪼는 관리자와 개발 팀장간의 대화를 소개하며 시작한다. 관리자는 이번주 안에 마치라 한다. 개발자인 나는 4주가 소요된다고 말한다.

regex

11건의 항목 처음 10개의 태그

  • 문자열 처리는 파이썬으로 find() isalpha() isalnum() for ~ in list, string으로 하나씩 꺼낼 수 있다. ~ in list, string으로만 하면 t/f 반환한다.

  • 정규 표현식은 다양한 언어에서 사용이 가능하다. 이 글에서는 파이썬을 기반으로 정규 표현식을 확인해 보도록 하자. import re p = re.compile('ab*') re.compile을 사용하여 정규 표현식(위 예에서는 ab*)을 컴파일한다.

  • 개요 앞의 글에서 우리는 컴파일 된 pattern 객체의 메서드를 공부했다. 이 메서드에는 match, search, findall, finditer가 있었다. 해당 메서드들은 검색이 된 경우 match 객체를 리턴했다.

  • 개요 지금까지는 간단한 정규식을 살펴 보았지만, 실제로 존재하는 다양한 문자열에서 정보를 뽑아내기 위해서는 추가적인 옵션이 필요하다. 예를 들어 쇼핑몰의 상품 리뷰를 사용자가 작성했다고 한다. 우리는 여기서 핵심적인 단어를 뽑아내야 한다.

  • 앞에서 정규식을 표현할 때 우리는 \ 문자를 사용했다. 하지만 내가 정규식을 작성하는 데 있어서 \문자 자체를 찾고 싶다면 어떻게 해야할까? \section 이렇게 정규식을 작성하게 되면 문제가 발생한다.

  • 특정 문자열이 반복되는지에 대해서 알기 위해서는 어떠한 정규식을 작성해야 할까? 우리가 앞에서 배운 내용으로는 할 수 없다. 이렇게 특정 문자열이 단위로 구성되어 검색을 진행하고 싶을 때 사용하는 것이 그루핑이다.

  • 개요 Lookahead Assertions는 이해하기가 어렵다. 하지만 예시와 함께라면 어떤 경우에 이를 사용해야 하는지 알 수 있을 것이다.

  • 개요 sub 메서드를 사용하면 정규식과 매치되는 부분을 다른 문자로 쉽게 바꿀 수 있다.

  • Greedy는 알고리즘 문제를 풀 때 보았던 용어이다. 이 용어는 어떤 의미로 사용이 될까? 무언가 탐욕적으로 한다는 의미일 것이다. 다음과 같은 문자열에서 처음 나오는 tag를 검색하고 싶다 해보자.

  • 개념 특정한 규칙을 가진 문자열의 집합을 표현하기 위해 쓰이는 형식언어 프로그래밍을 다루다 보면 가장 많이 만나게 되는 것이 문자열이다. 모든 것이 문자열로 나타나 있고, 이것을 기반으로 한 규칙으로 프로그램이 구동되기 때문이다.

region-proposal-network

1건의 항목

register

2건의 항목

regression

2건의 항목

  • 3개의 Feature를 가진 회귀모델 # Lab 4 Multi-variable linear regression import tensorflow as tf tf.set_random_seed(777) # for reproducibility x1_data = [73., 93., 89., 96., 73.] x2_data = [80., 88., 91., 98., 66.] x3_data = [75., 93., 90., 100., 70.] y_data = [152., 185., 180., 196., 142.] # placeholders for ...

  • # Lab 5 Logistic Regression Classifier import tensorflow as tf tf.set_random_seed(777) # for reproducibility x_data = [[1, 2], [2, 3], [3, 1], [4, 3], [5, 3], [6, 2]] y_data = [[0], [0], [0], [1], [1], [1]] # placeholders for a tensor that will be always fed.

regularization

1건의 항목

relu

1건의 항목

rendering-mode

1건의 항목

reordering

1건의 항목

repeater

2건의 항목

  • 기본 요소 송신기 전달 매개체(매질) 수신기 신호 아날로그 연속적인 값이기 때문에, 노이즈에 의해 영향을 받을 수 있다. 즉, 값의 변화가 반영될 여지가 크다. 애초에 연속적인 값이기 때문.

  • 비트 0, 1 비트가 모여 데이터 구성 비트를 주고 받는 것이 통신의 본질 바이트 = 8비트 워드 = 1바이트가 2개 (16비트) 데이터가 어떻게 전기 신호로 전달? 데이터가 전달되지 않을 때 전기적 신호가 존재 Clock 신호 CPU는 해당 신호에 맞춰 일을 처리한다.

request-driven

2건의 항목

  • 무심코 사용하는 많은 비동기 함수들은 사실 변화의 과정을 겪은 결과들이다. 네트워크 I/O API가 어떻게 변화되어 왔는지 알아보자. 한눈에 보기 network API를 사용하다보면 자연스레 머리에 이런 그림이 떠오른다.

  • 특정 데이터를 서버로부터 받고 싶다고 하자. 일반적인 REST API를 사용한다면 서버에 GET 요청을 하고, 그 결과로 json 데이터를 받을 것이다. 이렇게 일반적으로 가장 많이 사용하는 Server 통신 방식이 Request-Driven 방식이라 생각하면 된다.

required

1건의 항목

  • Swift에서 Struct, Class, Enum을 초기화할 수 있는 Initializer에 대해서 알아보자. 이 부분에서 class 초기화는 다른 언어의 초기화 과정과 약간 다른 부분이 있다. 해당 내용은 좀 길어질 수 있어 다음 포스팅으로 넘겼다.

reserved-words

1건의 항목

resizing

1건의 항목

  • tableView를 다루다보면 셀의 크기를 정하는 일이 상당히 귀찮을 때가 있다. 어떻게 하면 동적인 cell을 만들 수 있는지 확인해보자. Working with Self-Sizing Table View Cells 애플에서는 일단 이 옵션을 사용하지 말라고 한다.

resnet

3건의 항목

responser-chain

2건의 항목

result

2건의 항목

rethrow

1건의 항목

reverse-proxy

1건의 항목

  • 프록시란? 대리 응답 프록시(proxy)는 “대리”라는 뜻이다. 그렇다면 어떠한 경우에서 이러한 대리의 개념이 필요할까? 보통은 보안상의 이유로 직접 통신하는 것이 문제가 발생할 경우 이런 방식을 사용한다.

rgb

1건의 항목

ribs

6건의 항목

  • 많은 수의 엔지니어와 nested states를 관리하기 위한 mobile app Cross-platform Architecture RIBs의 이름은 Router, Interactor, Builder의 약자이다.

  • 간단한 구조 일단 RIB의 구조는 위와 같다.

  • 그럼 이번에는 Router에서 하위 RIB의 build()를 호출할 때 어떠한 순서로 진행되는지 알아보자. 먼저, 동적 의존성이 있을 경우 component를 생성해준다.

  • RIB과 통신하기 생성시에 어떠한 흐름으로 동작하는지 알았다면, 이번에는 RIB간의 소통을 알아볼 차례다.

  • Deep link를 적용하기 위해서는 AppDelegate에서 응답을 받아 처리해야 한다. 해당 내용은 그림으로 그리기가 너무 벅차 말로 간단하게 대체하려 한다.

  • 일단 해당 내용을 다 따라가면서 쳐보는 것을 추천한다. 아무래도 framework라고 공식 문서에 적혀있는 것으로 보아 진입장벽이 있을 것으로 보인다. 오히려 핵심 아이디어만 가져와서 사용하고, 유연하게 적용하는 것이 좋지 않을까하는 생각이다.

right-bicep

1건의 항목

  • 왜 필요할까? V-Diagram 왜 단계적인 테스트가 필요할까? 문제가 발생했을 때, 시간, 의사소통 등의 비용을 줄이기 위함 요구사항 만족함을 증명하는 것 어떤 종류가 있을까? 단위 테스트 테스트가 가능한 최소 단위로 나누어진 모듈, 프로그램, 객체, 클래스 내에서 결함을 찾고 기능을 검증 독립적으로 수행됨 프로그래머가 주도함 코드를 중심으로 수행 이러한 구분은, 어떤 Task냐에 따라 구분이 달라진다.

robotics

5건의 항목

  • Agility Robotics가 SPAC 합병으로 나스닥에 오르려는 과정을, IPO 투자설명서와 합병 계약 원문으로 단계별로 짚습니다. 기업가치 25억 달러가 무슨 뜻이고 아직 무엇이 안 정해졌는지.

  • 언어 모델처럼 '하나의 큰 모델'로 여러 로봇을 움직이겠다는 흐름을, NVIDIA의 오픈 모델·서베이 논문·연구 발표를 근거로 짚습니다. 무엇이 확인됐고 어디가 아직 병목인지.

  • 물리 세계를 인식하고 개입하는 AI를 가리키는 'Physical AI'가 무슨 뜻인지, 왜 지금 로봇용 파운데이션 모델과 함께 떠올랐는지, 그리고 병목이 어디인지를 1차 자료로 짚습니다.

  • 로봇을 가상에서 훈련시켜 실물로 옮길 때 생기는 성능 저하, sim-to-real gap이 무엇이고 왜 Physical AI의 핵심 병목인지 짚습니다. 아직 자라는 중인 문서입니다.

  • GPU 회사에서 AI 인프라의 축으로 올라선 NVIDIA를 어떻게 읽어야 하는지, 매출이 데이터센터 한 곳에 얼마나 쏠려 있는지와 Physical AI 전략을 중심으로 관찰 축을 잡습니다.

roi

2건의 항목

roi-align

1건의 항목

roi-pooling

1건의 항목

rom

1건의 항목

  • 운영체제에 대한 정의, 역할에 대해 알아본다. 운영체제는 사용자가 컴퓨터를 사용하기 위해 필요한 소프트웨어이다. 일반적으로 사용하는 모든 프로그램은 운영체제에서 그 자원을 관리한다. 목적 운영체제를 사용하는 가장 큰 목적은 하드웨어의 관리이다.

round-off-error

6건의 항목

  • Train/Test Dataset 정확도를 측정하는데 있어서 앞에서는, 모델을 훈련하는 데 사용했던 데이터를 가지고서 평가했다. 그런데 사실은 그렇게 수행하면 안되는 것이 당연하다.

  • 실수 표현 부동 소수점으로 표현한다. 지표 + 가수로 표현된다. 왜 쓰는가? 고정 소수점으로 쓸 경우, 큰 수 (10^23) 과 같은 수를 표현하기 위해 많은 양의 비트가 필요하게 된다.

  • 반올림 때문에 값이 너무 커져서 표현할 수 없는 현상을 말한다. 이번에는 값이 너무 커져서 ∞, -∞로 근사되는 현상을 말한다. 마찬가리로 NaN으로 처리된다.

  • 디지털 컴퓨터에서 연속적인 대상을 다루는 수학을 처리할 경우 근본적인 문제가 있다. 무한에 가까운 정보를 정해진 비트 패턴으로 표현해야 한다는 것이다. 이는 거의 모든 실수의 경우 근사 오차가 발생한다는 것을 암시한다.

  • 반올림 때문에 값이 0이 되는 현상을 말한다. 값이 잘못해서 정확히 0이 되면 문제소지가 많다. 0으로 나누기. log0 계산. (값이 발산함) log0은 음의 무한대로 발산한다. 근데 실제 계산에서는 NaN(Not a Number)로 처리한다.

  • Motivation of Pivoting 가우스 소거법과, 가우스-조르당 방법에서 대각행렬을 기준으로 수행한다는 것은 명백하다. 우리는 그래서 이 대각 행렬의 요소를 Pivot 이라 부른다.

round-robin

1건의 항목

  • CPU 스케쥴링에 대해 알아본다. CPU가 하나의 프로세스 작업이 끝나면 다음 프로세스 작업을 수행해야 한다. 이때 다음 프로세스가 어느 프로세스인지를 선택하는 알고리즘을 CPU Scheduling 알고리즘이라고 한다.

router

2건의 항목

  • 디바이스가 가지고 있는 고유의 물리적, 하드웨어 주소 패킷에 들어오는 mac 주소를 보고 적어둔 테이블을 기반으로 사설 IP주소를 알아낸다음 해당 디바이스로 데이터를 넘겨준다.

  • 설명 현재 네트워크에서 다른 네트워크로 최적 경로를 통해 데이터를 전송 경로 정보는 라우팅 테이블에 등록 라우팅 테이블에 경로 정보를 등록하는 방법은 수동 등록과 자동 등록이 있다. 수동 등록은 소규모 네트워크에 적합하다.

rr

1건의 항목

  • CPU 스케쥴링에 대해 알아본다. CPU가 하나의 프로세스 작업이 끝나면 다음 프로세스 작업을 수행해야 한다. 이때 다음 프로세스가 어느 프로세스인지를 선택하는 알고리즘을 CPU Scheduling 알고리즘이라고 한다.

rsa

1건의 항목

  • TLS 위에서 동작하는 HTTP 종단간 암호화 (E2E 암호화) HTTP 메시지를 암호화하여 주고 받음 보안이란? 서버 인증 클라이언트는 자신이 진짜 서버임을 알 수 있어야 함 클라이언트 인증 서버는 자신이 진짜 사용자임을 알 수 있어야 함 무결성 클라이언트와 서버는 그들의 데이터가 위조되는 것으로 부터 안전해야 함 암호화 클라이언트와 서버는 도청 걱정 없이 대화가 가능해야 함 동작 방식 서버가 클라이언트에게 인증서를 보내어 자신을 증명한다.

run-time

1건의 항목

  • 컴파일 과정을 마친 응용 프로그램이 사용자에 의해서 실행되어지는 때를 의미 런타임 에러는 이미 컴파일이 끝난 상태에서, 의도치 않은 예외 상황(메모리 부족, 0나누기, Null 참조)으로 인해 발생하는 오류를 말한다.

runloop

3건의 항목

  • RunLoop이란 무엇일까? RunLoop Run loop은 일단 Thread와 관련된 녀석이다. 간단하게 말하면, Run loop은 event를 처리하기 위해 만들어진 loop이다. Timer 또한 함께 처리한다.

  • 이전 글에서 RunLoop에 대해 알아보았다. Timer도 같이 처리한다 했었는데, 이번에는 Timer에 대해서 알아보려한다. Timer 특정 시간 간격이 지난 후, Target 객체로 메시지를 전송한다.

  • iOS 화면 업데이트는 어떻게 되는 걸까? draw, layoutIfNeeded, setNeedsLayout 등. 이해가 안가는 것들이 너무 많았다.

rxswift

3건의 항목

  • Promise, Rx 등 비동기 처리를 하기 위한 방법은 많다. 이를 배워보기 이전에, 왜 그러한 개념이 나왔는지, 어떠한 방식으로 개선해왔는지를 코드를 고쳐보면서 이해해보는 것이 이 포스팅의 목표이다. 최대한 개조식으로 적으려 노력했다.

  • 두번째 글에서는 이해한 RxSwift의 기본 개념을 바탕으로 자주 사용하는 메서드를 알아본다. 무리하게 기억할 필요는 없고, 이렇게 사전 제작된 함수들이 많고, 잘 사용할 경우 유용하다는 사실까지만 이해해도 맛보기로는 충분할 듯 하다.

  • 맛보기의 마지막으로, 간단하게 프로젝트에 적용해보자. MVVM과 찰떡인 RxSwift를 적용해보면서 아키텍쳐와 사용방법에 대해 익숙해져보자. 프로젝트 개요 버튼을 누르면 값이 변경되고 아래에 총 금액이 나타난다.

safe

1건의 항목

  • 인덱스로 Array 아이템을 탐색하다보면 항상 마주하는 것이 있다. Fatal error: Index out of range. 잘못하면 런타임에 애플리케이션이 바로 죽어버리기 마련이다. 아무리 염두에 둔다하더라도 우리는 사람인 이상 실수를 하기 마련이다.

sampling

1건의 항목

  • 모집단을 추정하기 위한 표본을 추출하는 방법에 대해 알아본다. 표본 추출 단순 랜덤 추출 단순히 랜덤하게 모집단에서 추출하는 방법이다. 집단의 분포가 불균형할 경우 모집단의 특성을 대변하지 못한다는 단점이 있다.

sampling-error

1건의 항목

  • 모집단을 추정하기 위한 표본을 추출하는 방법에 대해 알아본다. 표본 추출 단순 랜덤 추출 단순히 랜덤하게 모집단에서 추출하는 방법이다. 집단의 분포가 불균형할 경우 모집단의 특성을 대변하지 못한다는 단점이 있다.

scale

1건의 항목

  • Shadow를 보다가 scale에 대해서 알게된 내용을 적어본다. 정리 retina display가 나오면서 화면의 기본단위를 논리적으로 정의된 것을 사용하게 되었다. Point가 그것이다.

scanf

2건의 항목

  • 프로그래밍 사용자가 어떤 값을 컴퓨터에 넣고(입력) 처리한 결과를 사용자에게 다시 제공(출력)하는 것 graph LR; A[Input] --> B{Function} B --> C(Output) 입출력 함수 표준 입출력 함수: 키보드와 모니터를 통해 자료를 입출력 파일 입출력 함수: 특정한 파일을 통해 자료를 입출력 저급 입출력 함수: 운영체제 내, 시스템 호출을 통해 자료를 입출력 표준 입출력 함수 형식화된 입출력 printf() 함수 표준 출력 장치인 모니터로 자료를 출력 도스창에 실행결과를 표시할 때 사용 제어 문자열...

  • Aliasing (Reference Variable) 기본적으로, 우리가 선언된 변수를 다른 변수에 할당하게 되면 이 값을 복사해서 사용하는 셈이 된다.

scheduling

3건의 항목

  • 운영 체제가 하는 일을 간단하게 알아보자. 최호성님의 유튜브 강의를 보며 기본적인 컴퓨터 구조를 이해하고 정리하자. 운영체제가 하는 일 접근 제어 + 동기화 + 관리 전산 자원을 관리한다. 대표적인 전산 자원은 CPU, RAM 등이 있다.

  • CPU 스케쥴링에 대해 알아본다. CPU가 하나의 프로세스 작업이 끝나면 다음 프로세스 작업을 수행해야 한다. 이때 다음 프로세스가 어느 프로세스인지를 선택하는 알고리즘을 CPU Scheduling 알고리즘이라고 한다.

  • 하드 디스크의 구조를 바탕으로 스케쥴링을 하는 방법에 대해 알아본다. 1. 디스크 스케줄링 보조기억장치는 현재 여러 가지 존재하지만 아직까지는 하드 디스크가 주로 사용된다. 하드 디스크의 구조는 앞서 살펴봤듯이 위 그림과 같다.

scheme

2건의 항목

  • 이전 글에서 Scheme에 대해서 알아보았다. 하지만 실제로 어떻게 사용하는 건지 잘 모른다. 이번 글에서 알아보도록 하자. Scheme 알아보기 프로젝트를 하나 만들어주고, Product -> Scheme -> Edit Scheme 들어가자.

  • Target Xcode의 빌드를 통해 생성된 최종 Product Framework Application 등등 일반적으로 하나의 모듈 또는 앱을 의미한다. 보통 프로젝트 생성시 하나만 생성되나, 목적에 따라 하나의 프로젝트에 여러개의 Target을 생성할 수 있다.

schnorr-signature

1건의 항목

script

1건의 항목

  • 비트코인 스크립트는 무엇일까? Smart Contract 비트코인이 전송되는데 있어 어떠한 계약을 걸 수 있다. 그걸 스마트 컨트랙트이라고 한다. 그리고 그 계약을 서술하는 프로그래밍 언어가 스크립트이다. 스크립트는 스택 기반의 스크립트 언어이다.

scriptpubkey

1건의 항목

search

6건의 항목

  • 골드4 : 이분 탐색 문제이다. 생각 어려웠다. 여러가지 배열이 섞이고, 계산하는 방법을 생각하지 못했다. 이 문제를 풀면서 배운 것은, 정말 컴퓨터처럼(센다..) 생각해야 된다는 것.

  • 실버3 : 이진 탐색 문제이다. 풀이 예산 금액은 최대예산과 아예 안주는(0원) 방법이 있다. 따라서 0과 max금액을 양 끝으로 잡는다.

  • 실버2 : 파라메트릭 서치 문제이다. Root 찾기 처음에 또다시 해시로 풀려고 하다가, 중간에 입력값의 범위가 후덜덜한 것을 보고 풀이 방법을 바꾸었다. 이 문제를 그냥 linear하게 풀려고 하면 100000번을 linear하게 탐색해야 하기 때문에 터져버린다.

  • 풀이1 실버5 : 브루트포스 문제이다. Code // // main.swift // CodingTest // // Created by 최완식 on 2021/08/15.

  • 실버1 : 완전 탐색 문제이다. 풀이 매우 막 푼 풀이. 좋지 않다.

  • 점, 선, 면 Box로 만든 뒤에 저장 저장은 어떻게? Grid 전체 공간을 Tessellation하여 셀로 나누고, 데이터를 셀에 넣는 방식 Tessellation 일정한 형태의 도형들로 평면을 빈틈없이 채우는 것을 말함 a.k.a 쪽매맞춤 쪽매붙임 공간을 다 특정도형으로 쪼개고, 또 그 안에서 쪼개는 방식으로 저장하는 것 무조건적으로 다 분할해야 함 QuadTree 전체 공간을 재귀적으로 가로/세로 2등분하여 4개의 자식 노드를 가진 트리 구조를 사용하는 공간 인덱스 4개의 노드를 가지도록 분할하여 저장 특정 geometry가 ...

search-engine-optimization

1건의 항목

sec

1건의 항목

  • 비밀키, 공개키, 서명, 그리고 검증 방법까지 알아보았다. 하지만 이러한 값을 가지고 있기만 해서는 결제라는 행위가 이루어질 수 없다. 어딘가로 보내야 한다. 그때 필요한 기술인 직렬화를 알아보자.

secp256k1

1건의 항목

  • 암호학에서 중요하게 사용되는 타원곡선에 대해 알아보자. 왜 해당 곡선을 사용할까? 타원곡선 y^2 = x^3 + Ax + B 위의 방정식의 형태로 나타나는 곡선 타원의 둘레를 구하기 위한 적분, 이의 역함수를 구하는 과정에서 유래했다.

secret-key

1건의 항목

security

1건의 항목

segment-tree

2건의 항목

  • 플래티넘5 : 세그먼트 트리 문제이다. 생각 전형적인 세그먼트 트리 문제이다. 구간에 대한 합을 연속된 쿼리로 물어보는 경우인데, 이런 경우 단순하게 짜면 그냥 펑!이다.

  • 플래티넘5 : 세그먼트 트리 문제이다. 생각 01234564175298 입력값이 이렇게 주어진다고 생각해보자. 이 상태에서 3~6까지의 최소값을 구하는 것은, 단순한 방법으로 구해도 O(n^2)으로 풀 수 있다.

segmentation

4건의 항목

semantic

1건의 항목

semaphore

3건의 항목

semiconductors

7건의 항목

sendable

1건의 항목

seo

1건의 항목

sequence

1건의 항목

sequence-diagram

1건의 항목

serialization

5건의 항목

  • 비밀키, 공개키, 서명, 그리고 검증 방법까지 알아보았다. 하지만 이러한 값을 가지고 있기만 해서는 결제라는 행위가 이루어질 수 없다. 어딘가로 보내야 한다. 그때 필요한 기술인 직렬화를 알아보자.

  • 서명 역시 검증을 위해 전파될 필요가 있다. 즉, 직렬화가 필요하다. DER(Distinguished Encoding Rules) 서명에 대해 앞에서 공부했을 때 핵심은 r, s의 값이었다.

  • 비밀키를 직렬화하는 방법을 알아보자. 비밀키 직렬화 비밀키를 직렬화할 이유는 그닥 없다. 네트워크로 전파할 일이 없기 때문이다. 비밀키 전파는 지갑이 털릴 수 있는 위험이 매우 크다.

  • protoc protobuf는 데이터를 구조화하고, 이를 전송하고자 하는데 있어서 유연하고 효율적으로 작성하고 파싱하도록 지원하는 자동화 솔루션이다. json이나 xml을 생각하면 이해가 쉬운데, 사실 조금 다른 부분이 있다.

  • Serialization & Deserialization 데이터 구조나 오브젝트 상태를 동일하거나 다른 컴퓨터 환경에 저장(이를테면 파일이나 메모리 버퍼: persistence)하고 나중에 재구성할 수 있는 포맷으로 변환하는 과정 쉽게 생각하면, 내가 가지고 있는 이 객체 구조를 어딘가에 저장할 수 있도록 변환하는 과정을 말한다.

server

3건의 항목

  • 내, 외부 네트워크 구간 사이에 위치한 중간 지점 접근 제한을 수행 외부 네트워크에서 직접 접근이 가능 설명 회사에서는 서비스를 제공하는 서버와 내부에서만 동작해야하는 서버가 있다.

  • 프록시란? 대리 응답 프록시(proxy)는 “대리”라는 뜻이다. 그렇다면 어떠한 경우에서 이러한 대리의 개념이 필요할까? 보통은 보안상의 이유로 직접 통신하는 것이 문제가 발생할 경우 이런 방식을 사용한다.

  • On premise 서버를 운영하기 위해 서버를 사내 랙에 설치하거나 데이터 센터에 두는 방식 Cloud 월 정액 기반으로 사용한 만큼 요금을 지불하는 방식 선택 방법 시스템 자원 사용량을 근간으로 가격을 책정하기 때문에, 잘생각 하지만 시스템 설비를 책정할 때, 최대 용량을 기준으로 하기 때문에 비효율적 구 분클라우드온프라미스 (기존 서버 구축방식)초기도입비용월정액기반으로 사용한만큼 요금을 지불일회성 비용으로 구매시 많은 비용예산이 소요됨인력운영비시스템 엔지니어의 업무 감소시스템 엔지니어의 업무 증대 ( 서버 운영 및 관리/ 전산...

service

1건의 항목

  • 운영체제의 주요 서비스: 프로세스, 메모리, 파일관리, 시스템 호출에 대해 알아본다. 운영체제의 주요 서비스는 하드웨어 자원을 각 사용자 애플리케이션에 적절히 분배해주는 것이다.

service-locator-pattern

1건의 항목

session-layer

1건의 항목

set

4건의 항목

  • 실버2 : 파라메트릭 서치 문제이다. Root 찾기 처음에 또다시 해시로 풀려고 하다가, 중간에 입력값의 범위가 후덜덜한 것을 보고 풀이 방법을 바꾸었다. 이 문제를 그냥 linear하게 풀려고 하면 100000번을 linear하게 탐색해야 하기 때문에 터져버린다.

  • 문자열 처리는 파이썬으로 find() isalpha() isalnum() for ~ in list, string으로 하나씩 꺼낼 수 있다. ~ in list, string으로만 하면 t/f 반환한다.

  • Set set은 정렬되지 않은 수학의 집합과 동일한 개념의 데이터 타입으로서, 중복된 값을 가질 수 없다. 아래의 예제에서 exSet1은 set의 규칙에 제대로 부합하는 경우 이지만, exSet2는 중복된 아이템(‘p’)이 섞여 있는 것을 볼 수 있다.

  • Value Type 다른 변수에 대입하면 복사됨 argument로 넘겨도 복사됨 argument로 collection을 넘겨서 변화주면 원하는 결과를 얻을 수 없음 Objective-C의 경우 가능 Array 동일한 Type의 값을 저장할 수 있는 Ordered List 동일한 값이 다른 위치에서 반복적으로 낭로 수 있음 Foundation의 NSArray와 bridge 표현 let array: Array<SomeType>() let array: [SomeType] let array = [Int]() let array ...

setneedslayout

1건의 항목

setting

1건의 항목

  • 왜 필요한가? 주기적인 포맷이 필요하다는 것을 느꼈다. 7년동안 정리를 안하다보니 나도 스트레스를 받더라. 그럴 때마다 기존에 사용하는 환경을 다시 구축하는게 너무나 시간낭비고 하기 싫었다.

sha256

1건의 항목

shadow

1건의 항목

shall

1건의 항목

  • 운영체제에 대한 정의, 역할에 대해 알아본다. 운영체제는 사용자가 컴퓨터를 사용하기 위해 필요한 소프트웨어이다. 일반적으로 사용하는 모든 프로그램은 운영체제에서 그 자원을 관리한다. 목적 운영체제를 사용하는 가장 큰 목적은 하드웨어의 관리이다.

shallow-copy

1건의 항목

  • 인터페이스는 왜 필요할까? 그리고 무엇일까? Interface의 사전적 의미 inter-(상호간의) + -face(면) = interface 접해있는 두 물체나 공간 사이의 경계 사용자는 스위치를 키는 버튼에 집중 이걸 누르면 어떤 일이 일어날지를 앎 (what) 어떻게 그런일이 일어나는지는 모름 (how) 실제 동작은 구현 공간에서 일어남 배선의 연결 사용자는 잘 알지 못하는 공간 구현자만 알고 있음 이미 알고 있는 개념 = 함수 함수는 블랙박스임: 호출자는 내부가 어떻게 도는지 이해하려 하지 않는다.

shape

1건의 항목

  • 1D Array & Slicing # www.tensorflow.org/api_guides/python/array_ops import tensorflow as tf import numpy as np import pprint tf.set_random_seed(777) # for reproducibility pp = pprint.PrettyPrinter(indent=4) sess = tf.InteractiveSession() t = np.array([0., 1., 2., 3., 4., 5., 6.]) pp.pprint(t) pr...

shared-resource

2건의 항목

shortcuts

1건의 항목

  • 조금이라도 더 빠르게 Project file을 와리가리 하고 싶은 마음에 사용하는 단축키를 정리해본다. 언젠가는 까먹으니, 그때와서 봐야지. 이건 계속해서 업데이트하도록 하겠다.

shortest-path-problem

4건의 항목

sieve-of-eratosthenes

6건의 항목

sigmoid

3건의 항목

  • XOR 문제에서 이제 NN을 공부하는데 있어서 sigmoid 함수를 통과했던 것을 우리는 Activate Function이라고 부를 것이다.

  • \sigma(x) = \frac{1}{1 + e^{-x}} Bernoulli Distribution의 파라미터 \phi를 추정할 때 쓰인다. 이는 아마 이 함수의 치역이 (0, 1)이기 때문이다. 크기가 큰 수를 넣으면 크기 변화가 거의 없다.

  • Bernoulli Distribution을 따르는 이진 분류 문제에 사용되는 함수 Logistic Function f(x) = \frac L{1 + e^{(-k(x - x_0))}} L: 함수의 최댓값 k: 함수의 경사도 (로지스틱 성장률) x_0: 함수의 중심 Standard Logistic Function (Sigmoid Function) logit^{-1}(x) = \sigma(x) = \frac{1}{1 + e^{-x}} Logit 함수의 역함수 의미 어떠한 성장의 단계를 나타내는 함수 초기에는 기하급수적, 포화가 시작되면...

signal

1건의 항목

  • 기본 요소 송신기 전달 매개체(매질) 수신기 신호 아날로그 연속적인 값이기 때문에, 노이즈에 의해 영향을 받을 수 있다. 즉, 값의 변화가 반영될 여지가 크다. 애초에 연속적인 값이기 때문.

signature

2건의 항목

silver

1건의 항목

  • 은 가격이 지금 어디 있는지 미국 상장 ETF(SLV) 시세로 봅니다. 무엇이 움직이면 다시 들여다볼지 짚습니다.

simplifying-refactoring

4건의 항목

simulation

7건의 항목

singleton

3건의 항목

sjf

1건의 항목

  • CPU 스케쥴링에 대해 알아본다. CPU가 하나의 프로세스 작업이 끝나면 다음 프로세스 작업을 수행해야 한다. 이때 다음 프로세스가 어느 프로세스인지를 선택하는 알고리즘을 CPU Scheduling 알고리즘이라고 한다.

skerness

1건의 항목

  • 통계 개념 정리에 앞서 통계학이라는 학문에 대해 알아본다. 통계는 왜 공부하는가 미래를 알기 위해서, 집단의 특징을 알기 위해서 우리는 군중의 특징에 대해 알 필요가 있다. 예를 들어 물건을 판다고 생각해보자.

sleep

1건의 항목

  • Task와 TaskGroup은 무엇일까? 그리고 Apple이 말하는 Structured Concurrency는 무엇일까? Calling Asynchronous Functions in Parallel 앞의 글에서 보았듯이 await 키워드를 사용하면, 다음코드로 넘어가기 전에 호출자는 해당 작업을 마치는 것을 기다린다.(suspend) let firstPhoto = await downloadPhoto(named: photoNames[0]) let secondPhoto = await downloadPhoto(named: photoNam...

sliding-window

1건의 항목

smart-contract

1건의 항목

  • 비트코인 스크립트는 무엇일까? Smart Contract 비트코인이 전송되는데 있어 어떠한 계약을 걸 수 있다. 그걸 스마트 컨트랙트이라고 한다. 그리고 그 계약을 서술하는 프로그래밍 언어가 스크립트이다. 스크립트는 스택 기반의 스크립트 언어이다.

socket

1건의 항목

  • 프로세스간 통신 interface IPC를 가능케하는 interface이다. 서로 다른 process에서 접속을 하려 할 때, 이 socket을 사용하여 접근하게 되고, 해당 socket은 접속하는 process가 제대로 왔는 지와 같은 검사를 수행하게 된다.

softmax

3건의 항목

softplus

1건의 항목

solid

5건의 항목

  • 이전글들은 사실 이 원칙을 위해 달려온 것이 아닌가하는 생각이 든다. OOP의 정수로 불리우는 SOLID원칙에 대해서 깊게 알아보고, 실제 iOS Framework의 설계 방향에 대입하면서 보다 찐한 이해를 경험해보자.

  • SOLID 설계 정신에 대해 알아보자. SOLID 정신으로 이룰 수 있는 것 소프트웨어 설계를 “유연하게” 할 수 있다. 유연한 소프트웨어 설계, 즉 추상적인 설계로 커플링을 제거할 수 있다.

  • 이전 장들에서는 Code, Code Block, 함수 구현 방법, 함수들의 연관 방식을 알아보았지만, 이번에는 조금더 고차원의 얘기를 할까 한다. 클래스 체계 Java Convention에 따르면 가장 먼저 변수 목록이 나온다.

  • 코딩은 어렵다. 코딩 오류를 느끼는 감각은 중요하다. 이는 곧 빠른 피드백 루프를 통해 배움이 빨라짐을 의미한다. 잘못된 것을 알아야 고칠 것 아닌가? 이 장에서는 코드를 짤 때 행동과 기분, 태도에 대한 규칙과 원칙을 소개한다.

  • 리팩토링 작업중, 고민했던 것들을 정리해본다. 누군가에게는 도움이 되겠지. 문제 상황 일단 문제상황은 위와 같다. 같은 VC로 작성되어있음에도 불구하고, 실제 유저가 진입했을 때 보는 화면은 두가지이다.

solidity

1건의 항목

  • 비트코인 스크립트는 무엇일까? Smart Contract 비트코인이 전송되는데 있어 어떠한 계약을 걸 수 있다. 그걸 스마트 컨트랙트이라고 한다. 그리고 그 계약을 서술하는 프로그래밍 언어가 스크립트이다. 스크립트는 스택 기반의 스크립트 언어이다.

sort

9건의 항목

spac

1건의 항목

space-complexity

1건의 항목

spacial-data

1건의 항목

  • Basic Point 하나의 좌표를 갖는 geometry LineString(Polyline) 두 개 이상의 좌표를 갖는 geometry Line 두개의 좌표인 경우 LinearRing 첫 점과 끝점이 같은 경우 분류 Simple Non-Simple - 선이 교차하는 경우 Simple, closed - 교차하지 않는 다각형모양을 가진 선 LinearRing Non-Simple, closed - Not a LinaerRing Polygon 면 hole을 가질 수 있다.

spaghetti-code

1건의 항목

  • 코드를 짜다보면, 어느새 얽히고 섥혀있는 내 프로젝트를 마주한다. 부지런함이 개발자의 덕목이 아닌가라고 생각될 정도로 항상 깔끔함을 유지하는 것이 참 중요하다는 생각이 들곤한다. 혹은 미래의 나와 과거의 나가 항상 현재에서 싸우는 듯하기도 한다.

speed

1건의 항목

spherical-coordinate

2건의 항목

splash-image

1건의 항목

  • appsco.pe/developer/splash-screens 해당 사이트에서 스플래시 이미지를 만든다. PWA를 위해 이를 적절한 사이즈로 변환한 뒤, html head에 넣어준다.

spread

1건의 항목

sql

8건의 항목

srp

3건의 항목

  • 이전글들은 사실 이 원칙을 위해 달려온 것이 아닌가하는 생각이 든다. OOP의 정수로 불리우는 SOLID원칙에 대해서 깊게 알아보고, 실제 iOS Framework의 설계 방향에 대입하면서 보다 찐한 이해를 경험해보자.

  • SOLID 설계 정신에 대해 알아보자. SOLID 정신으로 이룰 수 있는 것 소프트웨어 설계를 “유연하게” 할 수 있다. 유연한 소프트웨어 설계, 즉 추상적인 설계로 커플링을 제거할 수 있다.

  • 동시성과 깔끔한 코드는 양립하기 아주 어렵다. 그럼에도 불구하고, 동시성은 왜 필요할까? 객체는 처리의 추상화다. 스레드는 일정의 추상화다. - 제임스 O. 코플리엔 동시성이 필요한 이유? 동시성은 “무엇”과 “언제”의 Coupling을 없애는 전략이다.

ssd

1건의 항목

ssh

2건의 항목

  • 가상 단말기 프로그램 ssh, telnet, tcp 접속을 위한 클라이언트 window환경의 호스트 운영체제에서 다른 운영체제의 CLI환경에 SSH 접속 가능 받아서 사용하면 끝 호스트네임 (사용자이름@IP주소) 포트번호 넣어주고 뿅 .

  • Secure Shell 기존에 Telnet 사용 → 암호화를 통해 안전한 제어 가능, 중간에 가로채도 쓸모 없음 클라이언트와 서버로 분리됨 공개키, 암호키 방식으로 서버에 접속하는 방식이 있음 보다 안전함 → 따로 구글링 할 것 .

stability

2건의 항목

stack

6건의 항목

  • 실버4 : 스택 문제이다. Code // // main.cpp // algorithm_prac // // Created by 최완식 on 2021/04/05.

  • 골드4 : stack 문제이다. 풀이 아, 정말 아쉬운 문제였다. 하지만 배운 것이 있었다. Stack을 기본적으로 사용하는 이유은 어떤 복잡도 문제를 해결하기 위함이다. 이 부분은 뒤에 다시 살펴보도록 하자.

  • 골드5 : 스택 문제이다. 풀이 비슷한 문제를 한 3번 봤다. 근데 그 때는 heap을 사용해서 뒤에서 가장 큰 문자를 계속해서 뽑는 것으로 문제를 해결했다. 풍선 터트리기 그런 방식으로 해당 문제를 다시 풀려했으나, 밑에 알고리즘 분류를 봤는데 stack…이더라.

  • 실버? : stack 문제이다. 풀이 처음에 op과 ()를 담는걸 별도로 생각했다가 낭패를 보았다. 생각하다보니 이 두개가 엮인다는 것을 알았고, 쉽게 규칙을 파악해서 풀 수 있었다.

  • 풀이1 이게 보면, 전화번호 개수가 백만개라 단순히 비교로 풀면 n^2이라 박살난다. 그렇기 떄문에 다른 방법을 고민해야한다. 이 문제의 핵심은 결국 특정 단어가 접두어로 있는지에 대한 문제이다. 그렇기 때문에 startswith를 생각하는 것이 편하다.

  • 풀이 prices의 길이가 100,000이라 n^2으로 짜면 터질 것 같아 stack으로 구현했다. 그런데 이때, 특정 원소가 조사해야 하는 부분은 i+1부터 끝까지의 요소이다. 그 과정에서 중복이 발생하기 때문에 반대로 정렬한뒤 값을 구해주었다.

stale

1건의 항목

  • 언제 사용할까? Conditional GET을 이용하여 트래픽은 줄일 수 있으나, Round Trip은 줄일 수 없다.

standard-deviation

2건의 항목

  • 데이터를 설명하는 또 다른 척도인 변동성에 대해 알아본다. 변동성 데이터의 분포를 나타냄에 있어 퍼진 정도를 측정한다. 범위 range = 최대 관측치 - 최소 관측치 해당 데이터의 값이 어디서 부터 어디까지인지 나타낸다.

  • 확률변수 X가 따르는 분포 P(X)에서 추출된 x 로 구성된 함수 f(x)에 대한 분산 \text{Var} \text{Var}_{X \sim P} [f(x)] = \mathbb{E}_{X \sim P} [(f(x) - \mathbb{E}_{X \sim P} [f(x)])^2] 만약 \text{Var}_{X \sim P} 에서 확률분포 P(X)를 확실히 알 수 있다면 생략한다.

standard-io

1건의 항목

  • 프로그래밍 사용자가 어떤 값을 컴퓨터에 넣고(입력) 처리한 결과를 사용자에게 다시 제공(출력)하는 것 graph LR; A[Input] --> B{Function} B --> C(Output) 입출력 함수 표준 입출력 함수: 키보드와 모니터를 통해 자료를 입출력 파일 입출력 함수: 특정한 파일을 통해 자료를 입출력 저급 입출력 함수: 운영체제 내, 시스템 호출을 통해 자료를 입출력 표준 입출력 함수 형식화된 입출력 printf() 함수 표준 출력 장치인 모니터로 자료를 출력 도스창에 실행결과를 표시할 때 사용 제어 문자열...

starvation

1건의 항목

state

3건의 항목

  • GoF의 디자인 패턴, 상태 패턴에 대해 알아본다. 해당 글은, 다음의 코드를 기반으로 이해하는 것이 편리합니다.

  • CodeInfomationRangeDescription1xxInformational100, 101100: Continue 101: Switching Protocols 2xxSuccessful200~206 201: Created 202: Accepted (대기열 긴 경우, 요청은 받았어! ^^ 이 용도..) 3xxRedirection300~307 301: Moved Permanently 302: Found (이전 Moved Temporarily) 307: Temporary Redirect (Recommaned) 308: Perman...

  • HTTP에서 상태가 필요한 이유 로그인이 되게 하고 싶다. 쇼핑몰 로그인이 아니어도 카트 목록을 기억하게 하고 싶다. 해결 방법 Fat URL - URL에 상태 정보를 모두 집어 넣기 - URL을 파싱해서, 사용자의 상태를 확인한다.

state-code

1건의 항목

  • CodeInfomationRangeDescription1xxInformational100, 101100: Continue 101: Switching Protocols 2xxSuccessful200~206 201: Created 202: Accepted (대기열 긴 경우, 요청은 받았어! ^^ 이 용도..) 3xxRedirection300~307 301: Moved Permanently 302: Found (이전 Moved Temporarily) 307: Temporary Redirect (Recommaned) 308: Perman...

static

4건의 항목

  • 모든 것을 OO로 해결할 수 있을까? 그것에 대항하는 static에 대해 알아보자. Static Method OO에서는 모든 것이 개체속에 있어왔다. 그렇기 때문에 불편함이 발생했다.

  • 팩토리 메서드는 무엇일까? 무엇이 좋을까? Factory Method 사용할 클래스를 정확히 몰라도 개체 생성을 가능하게 해주는 패턴 public final class Cup { private int sizeMl; private Cup(int sizeMl) { this.sizeMl = sizeMl; } public static Cup createOrNull(CupSize size) { switch (size) { case SMALL: return new Cup(355); case MEDIUM: return new Cup(473); ...

  • static Members 때때로는, 클래스의 객체들이 모두 공유하는 변수를 가지는 것이 용이하다. 전역변수와는 조금 다른 점이 있다 공통점 : 특정 함수나 클래스가 끝나고 나서 변수가 사라지지 않는다. 차이점 : 특정 클래스에 구속되어 있다.

  • enum에 static 변수를 사용해서 관리를 하다가 문득 이런 생각이 들었다. Type property에는 2가지 종류, static, class가 있는데 뭐가 다른거지? 이참에 헷갈렸던 용어까지 몽땅 정리해보려 한다.

static-array

1건의 항목

static-binding

1건의 항목

  • Static Binding (정적 바인딩) #include <iostream> #include <string> #include <vector> using namespace std; class Base{ public: void f(){cout << "Base::f()" << endl;} virtual void vf() {cout << "Base::vf()" << endl;} }; class Derived:public Base...

static-ip

1건의 항목

  • 인터넷 공간 상에서 해당 단말기의 고유 주소 Socket을 통해 통신한다는 것은 알았다. 근데 우리가 전화를 걸더라도, 어디에 전화를 걸것인지 알아야 한다. 그걸 대표하는 것이 전화번호이다. 마찬가지로 통신을 하려면, 어디에 통신할 것인지 알려주는 과정이 필요하다.

static-library

1건의 항목

  • 앞으로 진행할 긇에서는, Library와 Framework에 대해서 알아볼 것이다. 첫번째 순서로는 Library이다. Library & Framework 일단 간단하게 Library와 Framework에 대한 차이를 알아보고 가자.

static-method

1건의 항목

  • 팩토리 메서드는 무엇일까? 무엇이 좋을까? Factory Method 사용할 클래스를 정확히 몰라도 개체 생성을 가능하게 해주는 패턴 public final class Cup { private int sizeMl; private Cup(int sizeMl) { this.sizeMl = sizeMl; } public static Cup createOrNull(CupSize size) { switch (size) { case SMALL: return new Cup(355); case MEDIUM: return new Cup(473); ...

static-site-generator

2건의 항목

  • Go Lang Features를 기반으로 한 Static site generator 빠르다. 유연함을 강조하여 다양한 플랫폼에서 쉽게 사용가능하다. Reference Hugo .

  • Markdown과 같은 text input을 받아 정적 페이지, 즉 HTML로 변환해주는 엔진을 말한다. 백엔드 서버가 필요없다. Jekyll, Hugo, Next.js 등이 있다. Reference Static site generator .

statistics

28건의 항목 처음 10개의 태그

  • 통계 개념 정리에 앞서 통계학이라는 학문에 대해 알아본다. 통계는 왜 공부하는가 미래를 알기 위해서, 집단의 특징을 알기 위해서 우리는 군중의 특징에 대해 알 필요가 있다. 예를 들어 물건을 판다고 생각해보자.

  • 데이터의 중심을 나타내는 척도에 대해서 배워본다. 평균 (mean) 평균은 대표적으로 집단의 중심위치를 나타내는 척도로 사용된다. 이 평균에는 보통 3종류가 사용된다.

  • 데이터를 설명하는 또 다른 척도인 변동성에 대해 알아본다. 변동성 데이터의 분포를 나타냄에 있어 퍼진 정도를 측정한다. 범위 range = 최대 관측치 - 최소 관측치 해당 데이터의 값이 어디서 부터 어디까지인지 나타낸다.

  • 데이터를 설명하는 상대위치와 이를 나타내는 box plot에 대해 알아본다. 상대위치 중앙값이 50%에 위치하는 분위수라면, 이에 대응하는 다양한 분위수가 존재한다. 백분위수 분포를 100개로 쪼개어 생각하는 것이다.

  • 데이터의 두 변수간 선형관계를 나타내는 척도에 대해서 알아본다. 선형관계 두 변수의 관계를 알아보는 것은 매우 중요하다. 어떠한 연관성을 통하여 유의미한 정보를 이끌어 낼 수 있기 때문이다. 이러한 선형관계를 알아내는 척도는 3가지 정도가 알려져 있다.

  • 모집단을 추정하기 위한 표본을 추출하는 방법에 대해 알아본다. 표본 추출 단순 랜덤 추출 단순히 랜덤하게 모집단에서 추출하는 방법이다. 집단의 분포가 불균형할 경우 모집단의 특성을 대변하지 못한다는 단점이 있다.

  • 확률에 대해 이해한다. 사건에 확률을 부여하는 방법 동전의 앞면이 나오는 것을 사건 A라 정의했을 때, P(A)를 구하는 방법에 대해 알아보자. 고전적 방법 단순히 1/2라 생각한다. 이 생각의 배경에는 앞면과 뒷면이 나오는 가능성이 동일하다 생각하고 부여한다.

  • 확률분포에 대해 이해한다. 왜 배우는가? 실생활에서 결국 엔지니어가 수행하는 역할은, 다양한 문제에 대해 이를 다룰 수 있는 문제로 바꾸는 것에 있다. 확률과 같이 애매하게 보이는 개념을 어떻게 수치화하여, 다룰 수 있는 문제로 바꾸는지에 대한 내용이 대부분이다.

  • 대표적으로 사용하는 이산 확률 변수에 대한 분포를 알아본다. 의미적으로 이해하는 것을 우선으로 한다. 초기하 분포 n번의 시행에서 k번 성공할 확률, 그런데 독립시행이 아닐 경우의 분포 주머니에 10개의 공이 있다. 이 때 파란공이 3개, 빨간공이 7개 이다.

  • 대표적으로 사용하는 연속 확률 변수에 대한 분포를 알아본다. 의미적으로 이해하는 것을 우선으로 한다. 감마 분포 a번째 사건이 발생할 때까지 걸리는 시간에 대한 분포 음이항 분포와 매우 비슷하다.

status-bar

1건의 항목

  • WWDC 2019 키노트를 확인해보며 알짜 정보를 쏙쏙 뽑아보자. Dark Mode iOS 13부터 지원되는 기능이다. 말 그대로 dark mode이다. 해당 기능을 만들면서 고민했던 것은 역시 Mode에 따라 변화하는 색상이었다.

stl

1건의 항목

  • STereoLithography 혹은 Standard Triangulated Language 3차원 데이터를 표현하는 국제 표준 형식중 하나. 복잡한 3차원 폴리곤을 삼각형의 조합으로 만들어 곡면을 표현한다.

storyboard

3건의 항목

  • 아무 생각없이 코딩하다가(…) 의존성 주입을 그냥 property 주입으로 하고 있었다. 당연히 Storyboard면 안되지 않았었나? 하는 무지성 코드질을 하다 지적받고 떠올랐다.

  • code를 보다가 unwind segue라는 녀석을 보게 되었다. 처음 보는 친구라 정리해보려고 한다. Unwind Segue 일단 Unwind라는 뜻을 알아보자. 음. 무언가를 푼다는 개념같다.

  • 서로 다른 화면을 유기적으로 작업하고자, 충돌 문제가 다수 발생하는 스토리보드 사용을 하지 않았습니다. 프로젝트를 진행하기 전, 스토리보드 사용 여부에 대해 의사결정을 했습니다. 결과적으로 스토리보드 사용을 하지 않았는데, 그 이유는 다음과 같습니다.

storypoint

2건의 항목

strategy

2건의 항목

  • GoF의 디자인 패턴, 전략 패턴에 대해 알아본다. 해당 글은, 다음의 코드를 기반으로 이해하는 것이 편리합니다.

  • 테스트 전략에 대해 알아본다. 테스트 전략 단위 테스트로는 충분치 않다. 프로 개발 팀이라면 훌륭한 테스트 전략이 필요하다. QA는 오류를 찾지 못해야 한다. 개발팀의 목표는 이거다. 그렇다고 해서 QA와 개발자가 서로 적대적인 관계를 가져야 하는 것은 아니다.

stride

1건의 항목

string

7건의 항목

  • 자료형 프로그램에서 선언된 변수들이 기억 공간에서 어떻게 저장되고 처리되어야 할지, 컴파일러에게 알려줌 종류 정수형 실수형 문자형 사용자 정의 자료형 정수형 소수점이 없는 숫자 음의 정수, 0 , 양의 정수 오버플로우(overflow) 데이터 허용 범위를 넘는 값을 변수에 저장할 때, 의도한 값이 아닌 다른 값이 저장되는 것 #include <stdio.h> int main(void) { short a = 32767, b=2, c; unsigned short d; c = a+b; d = a+b; printf("c...

  • 문자배열 char 형 문자를 여러 개 모아놓은 문자 집합 문자 : 작은 따옴표 ’ ’ 문자열 : 큰 따옴표 ” ” ‘\0’ (NULL) : 문자열 끝에 항상 문자코드 ‘\0’을 덧붙여야 함 char str[5] = {'A', 'B', 'C', 'D', '\0'}; // 옳은 선언 char str[4] = {'A', 'B', 'C', 'D'} // 잘못된 선언 char str...

  • String library method #include <string> #include <iostream> using namespace std; int main(){ string word = "good"; word.length(); // 길이 리턴 word.empty(); // 빈 문자열인지 1, 0값 리턴 word.clear(); // 문자열 삭제 word += "-bye"; // 더하기 가능 word[0]; // h word[word.length() - 1]; // 마지막...

  • String 문자열 나누기 Pithon -> Python 으로 바꾸는 작업을 진행해보자. # 잘못된 예 a = "Pithon" a[1] = 'y' 불가능하다. 문자열의 요소값은 바꿀 수 있는 값이 아니다.

  • 개요 sub 메서드를 사용하면 정규식과 매치되는 부분을 다른 문자로 쉽게 바꿀 수 있다.

  • 이미지와 글자가 있는 Button을 만들다가, String안에 image를 넣을 수 있다는 것을 알았다! NSAttributedString 텍스트 일부에 대해 특성(시각적 스타일, 하이퍼 링크 등)이 있는 문자열 텍스트 일부에 대해 특성들을 적용할 수 있는 String이다.

  • 특정 문자열이나 공백을 제거하려면 어떻게 해야할까? 공백 싹다 지우기 let myString = "This \n is a st\tri\rng" let trimmedString = myString.components(separatedBy: .whitespacesAndNewlines).joined() 양쪽 지우기 var string = " AAAAAAAA " let trimedString = string.trimmingCharacters(in: [" "]) // 양끝단의 특정 문자도...

strip

1건의 항목

strong-reference

1건의 항목

struct

4건의 항목

  • Swift는 객체의 느낌으로 사용하는 3개의 개체가 있다. struct, class, enumeration이 그것이다. struct는 apple에서 권장하고, 실제로도 대체하는 것이 좋다고 생각되는 자료구조이고, enum의 경우 다른 언어보다 기능이 많이 추가되었다.

  • static 변수 및 함수는 인스턴스를 생성하지 않고 접근하기 위해 사용한다. swift에서는 어디서 관리하는 것이 좋을까? swift에서 사용하는 Method가 궁금하다면 해당글을 읽고 오자.

  • Swift에서 Struct, Class, Enum을 초기화할 수 있는 Initializer에 대해서 알아보자. 이 부분에서 class 초기화는 다른 언어의 초기화 과정과 약간 다른 부분이 있다. 해당 내용은 좀 길어질 수 있어 다음 포스팅으로 넘겼다.

  • Structure C언어 등의 구조체보다 다양한 기능 상속 불가능 인스턴스/타입 메서드 인스턴스/타입 프로퍼티 값타입 Swift의 대부분의 큰 뼈대는 모두 구조체 Struct가 선호되는 이유 mutability control에 유리 상태로 인한 부작용 없음 let 선언으로 완전한 immutable 자료형 생성 class의 경우 let 인스턴스여도 member 변수 변경 가능 성능 유리 referencing 소요 시간 감소 compiler가 강력한 최적화 수행 함수형 프로그래밍에서 효과정 immutable 요소를 바탕으로 code 가...

structural-patterns

7건의 항목

structure

1건의 항목

  • 네트워크 구조 네트워크 엣지(Network Edge) 말단 device, 우리가 사용하는 대부분의 기기에 해당한다. 네트워크 코어(Network Core) 엔드 시스템을 연결하기 위한 중간의 매개들을 말한다.

structured-concurrency

1건의 항목

stub

1건의 항목

  • Test라는 과정은 사실 공학 어디에서든 등장하는 개념이다. 작업에 의존도가 있고, 복잡한 과정으로 넘어갈 수록 이전 단계의 오류는 치명적이기 때문이다. 이를 관리하는 방법이 Test라 할 수 있다. 소프트웨어에서 역시 이러한 개념이 적용된다.

style-transfer

1건의 항목

  • 개요 style transfer에서는 input의 style을 target의 style과 맞게 만들어주는 방법이 필요한데, 이에 대한 방법론의 핵심을 담당하는 Gram Matrix에 대해 알아본다.

subject

1건의 항목

subnet

1건의 항목

  • 네트워크 주소와 브로드캐스트 주소 브로드캐스트는 앞에서 Switch(또는 지금은 Router)에 연결된 모든 호스트에 요청을 보내는 것을 의미했다. 이런 용도로 사용되는 특별한 주소를 말한다. 브로드 캐스트 주소 호스트 ID가 255인 주소이다.

subscriber

2건의 항목

  • Combine이 무엇일까? Apple이 설명하는 것을 들어보자. What is Combine 이벤트 처리 연산자를 결헙하여 비동기 이벤트를 처리하는 방법 일단 비동기 이벤트가 무엇이 있는지부터 알아보자.

  • Combine에 대해서 실제 사용하다 보니, 이게 도대체 어떤 방식으로 이루어지는 지 궁금했다. 실제 코드를 보지 않으면 명확해지지 않을 것 같아 정리한다.

summary

1건의 항목

  • 다시 핵심만 간결하게 복기하기 위한 목적으로 정리하기 때문에, 요약하는 방식으로 글을 작성한다. 역/식자의 말 절대적이라 믿으면 안된다 개선의 여지가 있을 것이라 생각해야 한다. 이 요소들을 소개하는 이유는 팀/공동체에서 서로 동의하는 합리적인 원칙을 세우기 위함이다.

swift

107건의 항목 처음 10개의 태그

switch

7건의 항목

  • 기본 요소 송신기 전달 매개체(매질) 수신기 신호 아날로그 연속적인 값이기 때문에, 노이즈에 의해 영향을 받을 수 있다. 즉, 값의 변화가 반영될 여지가 크다. 애초에 연속적인 값이기 때문.

  • 설명 현재 네트워크에서 다른 네트워크로 최적 경로를 통해 데이터를 전송 경로 정보는 라우팅 테이블에 등록 라우팅 테이블에 경로 정보를 등록하는 방법은 수동 등록과 자동 등록이 있다. 수동 등록은 소규모 네트워크에 적합하다.

  • Switch Data Link Layer에서 동작 Layer 2 스위치, 스위치 허브라 불림 허브와 비슷하지만, 데이터 충돌을 방지할 수 있다.

  • 냄새나면 당장 갈아라. 어떻게 하는지에 대해서 지금까지 배웠다. 하지만, “언제” 시작하고 그만할지를 판단하는 것은 또 다른 얘기다. 어떤 “냄새”를 맡았을 때 손을 대야할까? 기이한 이름 이름으로 이게 뭐하는 것인지 딱 볼 수 있게 작성해야 한다.

  • 제어문 프로그램의 실행을 인위적으로 조절할 수 있는 문장 제어문의 종류 If 조건 연산자 유일하게 피연산자가 3개인 삼항 연산자 선택문(if)문과 같이 행동함 #include <stdio.h> int main() { int min, max; int x = 10, y = 20; max = (x>y) ? x : y; min = (x>y) ? y : x; printf("두 수 %d과 %d 중에 큰 수는 %d이다.\n", x, y, max); printf("두 수 %d과 %d 중에 작은 수는...

  • Do ~ While 일단 Do 안에 있는 명령문을 실행하고 나중에 while문의 조건식 비교 적어도 한번은 명령문을 처리함 마지막에 세미콜론(;)을 반드시 추가해야 함 조건식을 검사하는 while(조건식)은 C 문장으로 여기기 때문 #include <stdio.h> int main() { int sum = 0; int number = 0; printf("1에서 10까지 합을 구합니다.\n"); do { number++; sum += number; } while(number<10); printf(&q...

  • 기존에 작업한 글이 있어 링크로 대체한다. 05. Control Flow 06. Loop Part. 01 07. Loop Part. 02 iomanip library 기본적으로 iostream 라이브러리로 출력을 하게되면, 왼쪽 정렬이다.

symbol

1건의 항목

  • 앱스토어에서 크래시가 나서 Reject을 당하면 Crash Report를 함께 준다. 해당 파일을 열어보면 이상한 숫자들만 가득하다. dSYM debug symbol file App을 Release한 뒤에 Crash를 진단할 수 있게 도와주는 파일이다.

symmetric-key-algorithm

1건의 항목

  • TLS 위에서 동작하는 HTTP 종단간 암호화 (E2E 암호화) HTTP 메시지를 암호화하여 주고 받음 보안이란? 서버 인증 클라이언트는 자신이 진짜 서버임을 알 수 있어야 함 클라이언트 인증 서버는 자신이 진짜 사용자임을 알 수 있어야 함 무결성 클라이언트와 서버는 그들의 데이터가 위조되는 것으로 부터 안전해야 함 암호화 클라이언트와 서버는 도청 걱정 없이 대화가 가능해야 함 동작 방식 서버가 클라이언트에게 인증서를 보내어 자신을 증명한다.

sync

1건의 항목

synchronization

4건의 항목

system

1건의 항목

  • 복잡성은 죽음이다. 개발자에게 생기를 앗아가며, 제품을 계획하고 제작하고 테스트하기 어렵게 만든다. - 레이 오지, 마이크로소프트 최고 기술 책임자(CTO) 도시를 세운다면? 도시가 돌아가는 이유는, 각 분야를 담당하는 팀이 있기 때문이다.

tag

1건의 항목

tail-call-optimization

2건의 항목

target

1건의 항목

  • Target Xcode의 빌드를 통해 생성된 최종 Product Framework Application 등등 일반적으로 하나의 모듈 또는 앱을 의미한다. 보통 프로젝트 생성시 하나만 생성되나, 목적에 따라 하나의 프로젝트에 여러개의 Target을 생성할 수 있다.

target-action

1건의 항목

  • Target / Action은 사용자 interaction을 처리하는 주요 방법으로 알려져있다. 문서를 읽으며 알아보자. Target/Action Target/Action은 대표적인 비동기 이벤트이다. Action이 왔을 때, 처리되는 방식이기 때문이다.

task

2건의 항목

  • Task와 TaskGroup은 무엇일까? 그리고 Apple이 말하는 Structured Concurrency는 무엇일까? Calling Asynchronous Functions in Parallel 앞의 글에서 보았듯이 await 키워드를 사용하면, 다음코드로 넘어가기 전에 호출자는 해당 작업을 마치는 것을 기다린다.(suspend) let firstPhoto = await downloadPhoto(named: photoNames[0]) let secondPhoto = await downloadPhoto(named: photoNam...

  • Task를 알아보면서 많은 삽질을 했으니, 이제 다시한번 WWDC 영상을 봐본다. Intro 예전의 프로그래밍 언어는 control flow가 상하로 왔다갔다했었다. 이런 코드는 흐름을 읽는 것을 방해했다.

task-group

2건의 항목

  • Task와 TaskGroup은 무엇일까? 그리고 Apple이 말하는 Structured Concurrency는 무엇일까? Calling Asynchronous Functions in Parallel 앞의 글에서 보았듯이 await 키워드를 사용하면, 다음코드로 넘어가기 전에 호출자는 해당 작업을 마치는 것을 기다린다.(suspend) let firstPhoto = await downloadPhoto(named: photoNames[0]) let secondPhoto = await downloadPhoto(named: photoNam...

  • Task를 알아보면서 많은 삽질을 했으니, 이제 다시한번 WWDC 영상을 봐본다. Intro 예전의 프로그래밍 언어는 control flow가 상하로 왔다갔다했었다. 이런 코드는 흐름을 읽는 것을 방해했다.

task-parallelism

1건의 항목

task-tree

1건의 항목

tcp

6건의 항목

  • www.example.org/index.html 을 GET 요청 한 상황을 가정해보자. 서버는 80번 포트를 열고 요청을 대기한다. 클라이언트는 웹 브라우저 주소창에 URL을 입력한다. 웹 브라우저는 DNS에 물어보고 해당 URL Host의 아이피를 알아낸다.

  • 네트워크 두 대 이상의 컴퓨터를 연결한 것 인터넷 수억개의 컴퓨팅 장치를 연결하는 TCP/IP 프로토콜로 구현된 네트워크 결론 인터넷은 네트워크의 일종 TCP/IP 프로톨을 준수하는 네트워크 이용하기 위해 웹브라우저 사용 .

  • Packet Delay 패킷스위칭을 시 라우터는 패킷단위의 데이터를 전달받고 목적지로 전달하는 역할을 수행한다. 이 과정에서 라우터가 보낼 수 있는 대역폭보다 더 많은 유저가 더 빠른 속도로 데이터를 보낸다면 딜레이가 생길 수 밖에 없다.

  • 가상 단말기 프로그램 ssh, telnet, tcp 접속을 위한 클라이언트 window환경의 호스트 운영체제에서 다른 운영체제의 CLI환경에 SSH 접속 가능 받아서 사용하면 끝 호스트네임 (사용자이름@IP주소) 포트번호 넣어주고 뿅 .

  • 이 계층에서도 TCP 헤더를 붙여 세그먼트(Segment)를 만드는 캡슐화를 진행한다. 연결형 통신에 사용 연결이라는 통신로를 확보해야 한다. 가상의 통신로 연결을 확립하기 위해서는 TCP 헤더의 코드 비트를 확인해야 한다.

  • 전송 계층 Physical Layer, Data Link Layer, Network Layer 이 세개의 계층만 있으면 목적지에 데이터를 보낼 수 있다. 하지만 데이터 유실, 손상되는 경우 알수도 없고 해줄게 없다. 이를 방지하기 위한 계층이 전송계층이다.

tdd

4건의 항목

team

2건의 항목

  • 한다, 하지 않는다 둘뿐이다. 중간은 없다. 아니라고 말하기 시간을 쪼는 관리자와 개발 팀장간의 대화를 소개하며 시작한다. 관리자는 이번주 안에 마치라 한다. 개발자인 나는 4주가 소요된다고 말한다.

  • 팀이 중요할까 프로젝트가 중요할까? 갈아서 만들었나요? 서로 다른 프로젝트에 속한 사람들이 뒤죽박죽이라면 어떨까? 1에는 A, B 2에는 B, C 거기에 프로그래머 말고 사업분석가, 테스터들도 섞인다면? 한 덩어리로 뭉친 팀 팀이 만들어지는데는 시간이 걸린다.

teminal-object

1건의 항목

template

1건의 항목

  • 변수, 클래스, 구조체 등을 선언할 때, 해당 객체 내부에서 사용하는 타입을 고정하지 않고 임의의 타입을 사용할 수 있도록 하는 것 실제 사용하는 시점에 사용하는 타입을 결정한다.

template-method

1건의 항목

tensor

1건의 항목

  • 1D Array & Slicing # www.tensorflow.org/api_guides/python/array_ops import tensorflow as tf import numpy as np import pprint tf.set_random_seed(777) # for reproducibility pp = pprint.PrettyPrinter(indent=4) sess = tf.InteractiveSession() t = np.array([0., 1., 2., 3., 4., 5., 6.]) pp.pprint(t) pr...

tensorboard

1건의 항목

  • Print..Print 맨날 확인하려면 프린트해야해. GUI로 멋지게 봐보자. 5 Steps of using TensorBoard 내가 Log화 하고 싶은 텐서들을 결정한다. 이것들은 함수로 구현할 수 있다.

tensorflow

23건의 항목 처음 10개의 태그

terminal

1건의 항목

  • iOS 개발자로서 제플린이나 피그마 창을 하나만 띄워서 보는건 너무 귀찮다. 여러개 띄울수는 없을까? 해결 방법 open -na /Applications/Zeplin.app open -na /Applications/Figma.app 모든 프로그램이 되는 것은 아니다.

tessellation

2건의 항목

  • STereoLithography 혹은 Standard Triangulated Language 3차원 데이터를 표현하는 국제 표준 형식중 하나. 복잡한 3차원 폴리곤을 삼각형의 조합으로 만들어 곡면을 표현한다.

  • 일정한 형태의 도형들로 평면을 빈틈 없이 채우는 것을 말함 타일링(Tiling), 평면작성, 쪽매맞춤, 쪽매붙임이라고도 불림 목욕탕 타일, 보도블록 까는 것에서 흔히 볼 수 있음 타일의 개수, 조건들에 따라 다양한 테셀레이션들이 있다.

test

6건의 항목

  • 소수설 주창중 하나인 eXtreme Programming에 대해 알아보자.

  • 리팩토링에 있어 테스트 코드는 왜 중요할까? 자가 테스트 코드의 가치 프로그래머들의 대부분의 시간은 코드치는 시간이 아니다. 현상황 파악 / 설계 고민 / 디버깅에 많은 시간을 쓴다. 디버깅의 경우 수정자체는 금방 끝난다. 다만 찾는데 고통스럽다.

  • 창발성 단순한 결합이 복잡한 결과를 나타내는 것을 뉴런 하나만으로 의미가 있을까? 뉴런이 모여 어떠한 인식을 하기 위해서는 수십억개의 뉴련이 상호작용해야 한다. 즉, 미시적인 부분의 각각의 특성만으로는 설명할 수 없는 전체로서 나타나는 복잡한 현상을 말한다.

  • 인수 테스트는 무엇일까? 시기 상조의 정밀도 불확실성의 원칙 서류와 실제 시스템의 동작은 다르다. 사업부는 요구했던 내용이 실제 시스템에서 돌아가는 모습과 다르다는 것을 깨닫는다. 요구사항이 정밀해질수록 최종 구현된 시스템과 초기 요구사항의 차이는 벌어진다.

  • 왜 필요할까? V-Diagram 왜 단계적인 테스트가 필요할까? 문제가 발생했을 때, 시간, 의사소통 등의 비용을 줄이기 위함 요구사항 만족함을 증명하는 것 어떤 종류가 있을까? 단위 테스트 테스트가 가능한 최소 단위로 나누어진 모듈, 프로그램, 객체, 클래스 내에서 결함을 찾고 기능을 검증 독립적으로 수행됨 프로그래머가 주도함 코드를 중심으로 수행 이러한 구분은, 어떤 Task냐에 따라 구분이 달라진다.

  • Test라는 과정은 사실 공학 어디에서든 등장하는 개념이다. 작업에 의존도가 있고, 복잡한 과정으로 넘어갈 수록 이전 단계의 오류는 치명적이기 때문이다. 이를 관리하는 방법이 Test라 할 수 있다. 소프트웨어에서 역시 이러한 개념이 적용된다.

test-double

1건의 항목

  • Test라는 과정은 사실 공학 어디에서든 등장하는 개념이다. 작업에 의존도가 있고, 복잡한 과정으로 넘어갈 수록 이전 단계의 오류는 치명적이기 때문이다. 이를 관리하는 방법이 Test라 할 수 있다. 소프트웨어에서 역시 이러한 개념이 적용된다.

test-driven-development

4건의 항목

testing

5건의 항목

  • 이제 리팩터링 전반에 적용되는 원칙 몇 가지를 살펴보자. 리팩터링 정의 리팩터링이라는 개발 용어는 굉장히 두루뭉실한 의미로 통용된다. (많은 개발 용어가 그렇다) 하지만 이를 엄격하게 정의해야 유용하다.

  • 리팩토링에 있어 테스트 코드는 왜 중요할까? 자가 테스트 코드의 가치 프로그래머들의 대부분의 시간은 코드치는 시간이 아니다. 현상황 파악 / 설계 고민 / 디버깅에 많은 시간을 쓴다. 디버깅의 경우 수정자체는 금방 끝난다. 다만 찾는데 고통스럽다.

  • 테스트 전략에 대해 알아본다. 테스트 전략 단위 테스트로는 충분치 않다. 프로 개발 팀이라면 훌륭한 테스트 전략이 필요하다. QA는 오류를 찾지 못해야 한다. 개발팀의 목표는 이거다. 그렇다고 해서 QA와 개발자가 서로 적대적인 관계를 가져야 하는 것은 아니다.

  • 왜 필요할까? V-Diagram 왜 단계적인 테스트가 필요할까? 문제가 발생했을 때, 시간, 의사소통 등의 비용을 줄이기 위함 요구사항 만족함을 증명하는 것 어떤 종류가 있을까? 단위 테스트 테스트가 가능한 최소 단위로 나누어진 모듈, 프로그램, 객체, 클래스 내에서 결함을 찾고 기능을 검증 독립적으로 수행됨 프로그래머가 주도함 코드를 중심으로 수행 이러한 구분은, 어떤 Task냐에 따라 구분이 달라진다.

  • Test라는 과정은 사실 공학 어디에서든 등장하는 개념이다. 작업에 의존도가 있고, 복잡한 과정으로 넘어갈 수록 이전 단계의 오류는 치명적이기 때문이다. 이를 관리하는 방법이 Test라 할 수 있다. 소프트웨어에서 역시 이러한 개념이 적용된다.

this

1건의 항목

thread

8건의 항목

  • Thread에 대해서 알아본다. 쓰레드(Thread) 쓰레드는 프로그램 **내부의 흐름(맥)**이다.

  • 동시성과 깔끔한 코드는 양립하기 아주 어렵다. 그럼에도 불구하고, 동시성은 왜 필요할까? 객체는 처리의 추상화다. 스레드는 일정의 추상화다. - 제임스 O. 코플리엔 동시성이 필요한 이유? 동시성은 “무엇”과 “언제”의 Coupling을 없애는 전략이다.

  • 무심코 사용하는 많은 비동기 함수들은 사실 변화의 과정을 겪은 결과들이다. 네트워크 I/O API가 어떻게 변화되어 왔는지 알아보자. 한눈에 보기 network API를 사용하다보면 자연스레 머리에 이런 그림이 떠오른다.

  • 여러 일을 여러 사람이 각자 동시에 하는 것 행위도 여러개, 주체도 여러개 가짜 병렬 (논리적 개념) 코어는 하나임에도 두개의 서로 다른 동작을 번갈아가며 처리하여 동시에 수행하는 것 “처럼” 보이는 것 소프트웨어 수준으로 처리 Thread, Actor 등 Reference Parallelism .

  • RunLoop이란 무엇일까? RunLoop Run loop은 일단 Thread와 관련된 녀석이다. 간단하게 말하면, Run loop은 event를 처리하기 위해 만들어진 loop이다. Timer 또한 함께 처리한다.

  • autoreleasepool. 어딘가에서 들어봤지만 언제쓰는지는 전혀 몰랐다.

  • 동시성은 이제 프로그래밍에서 빼놓을 수 없는 요소가 되었다.

  • 앞에서는 새롭게 나온 개념들을 어떻게 사용하는지에 대해서 알아보았다. 그렇다면 왜 이렇게 설계했는지, 실제로는 어떻게 동작하는지 알아보자. Threading Model New feed reader 앱을 만든다고 생각해보자. 고수준에서 어떠한 것들이 필요할지 생각해보자.

thread-safety

3건의 항목

tiling

1건의 항목

  • 일정한 형태의 도형들로 평면을 빈틈 없이 채우는 것을 말함 타일링(Tiling), 평면작성, 쪽매맞춤, 쪽매붙임이라고도 불림 목욕탕 타일, 보도블록 까는 것에서 흔히 볼 수 있음 타일의 개수, 조건들에 따라 다양한 테셀레이션들이 있다.

time

1건의 항목

  • 시간은 참 짧다. 어떻게 관리해야 할까 시간 관리 저자는 아침에 조용한 시간동안 할일을 정리했다고 한다. 회의 회의는 참석자마다 시간당 약 20만원 정도의 비용이 든다. 급여, 복지비 등등 모두 합치면 회의는 필요하다. 그럼에도 회의는 엄청난 시간 낭비다.

time-sharing

1건의 항목

  • 일괄처리부터 시분할시스템, 최근의 고급운영체제, 인터럽트에 기반한 현대 운영체제까지 변천 역사를 알아본다. 1. 초기 컴퓨터 노가다, 사람 손도 많이가, 장치도 엄청커, 비싸기도 비싸 운영체제는 컴퓨터가 발전하면서 같이 발전하게 되었다.

timer

2건의 항목

  • RunLoop이란 무엇일까? RunLoop Run loop은 일단 Thread와 관련된 녀석이다. 간단하게 말하면, Run loop은 event를 처리하기 위해 만들어진 loop이다. Timer 또한 함께 처리한다.

  • 이전 글에서 RunLoop에 대해 알아보았다. Timer도 같이 처리한다 했었는데, 이번에는 Timer에 대해서 알아보려한다. Timer 특정 시간 간격이 지난 후, Target 객체로 메시지를 전송한다.

tint-color

1건의 항목

tls

1건의 항목

  • TLS 위에서 동작하는 HTTP 종단간 암호화 (E2E 암호화) HTTP 메시지를 암호화하여 주고 받음 보안이란? 서버 인증 클라이언트는 자신이 진짜 서버임을 알 수 있어야 함 클라이언트 인증 서버는 자신이 진짜 사용자임을 알 수 있어야 함 무결성 클라이언트와 서버는 그들의 데이터가 위조되는 것으로 부터 안전해야 함 암호화 클라이언트와 서버는 도청 걱정 없이 대화가 가능해야 함 동작 방식 서버가 클라이언트에게 인증서를 보내어 자신을 증명한다.

toggle

1건의 항목

  • Expander control github의 issue나 pull request 올릴 때, 정보를 숨기고 싶은 경우가 있다. 그런 경우 toggle을 사용하면 유용하다. expander control이라고도 하는데, 접기/펼치기 를 가능케해서 그런 이름이 붙었다.

trace

4건의 항목

tracking

1건의 항목

traffic

1건의 항목

  • 어떤 통신장치나 시스템에 걸리는 부하(전송량) 요청에 대해 전송해주는 시간 대비 데이터의 총량을 말한다.

transaction

4건의 항목

  • www.example.org/index.html 을 GET 요청 한 상황을 가정해보자. 서버는 80번 포트를 열고 요청을 대기한다. 클라이언트는 웹 브라우저 주소창에 URL을 입력한다. 웹 브라우저는 DNS에 물어보고 해당 URL Host의 아이피를 알아낸다.

  • 비트코인의 트랜잭션에 대해 알아보자. Transaction 앞에서 네트워크 혹은 디바이스에 이동하기 위한 공개키와 비밀키의 직렬화 방법에 대해 알아보았다. 물론 그에 대한 파싱까지 같이 배웠다.

  • 이번엔 트랙잭션 입력에 대해 알아보자.

  • 트랜잭션에 대한 수수료는 어떻게 계산되는가? Transaction Fee 보상이 주어지지 않으면 누가 일을 할까? 채굴자는 거래 내역을 정리하고 블록을 만들어 추가함으로서 수수료를 받는다.

transaction-fee

1건의 항목

  • 트랜잭션에 대한 수수료는 어떻게 계산되는가? Transaction Fee 보상이 주어지지 않으면 누가 일을 할까? 채굴자는 거래 내역을 정리하고 블록을 만들어 추가함으로서 수수료를 받는다.

transaction-input

2건의 항목

transaction-output

2건의 항목

transition

1건의 항목

  • 이전 글에서 PresentationController가 무엇인지 배웠다. 그런데, Transition Animator를 제공하는 부분에서 UIViewControllerAnimatedTransitioning이라는 친구를 보았다. 오늘의 주제는 이녀석이다.

transport-layer

2건의 항목

transport-layer-security

1건의 항목

  • TLS 위에서 동작하는 HTTP 종단간 암호화 (E2E 암호화) HTTP 메시지를 암호화하여 주고 받음 보안이란? 서버 인증 클라이언트는 자신이 진짜 서버임을 알 수 있어야 함 클라이언트 인증 서버는 자신이 진짜 사용자임을 알 수 있어야 함 무결성 클라이언트와 서버는 그들의 데이터가 위조되는 것으로 부터 안전해야 함 암호화 클라이언트와 서버는 도청 걱정 없이 대화가 가능해야 함 동작 방식 서버가 클라이언트에게 인증서를 보내어 자신을 증명한다.

trapezoidal-rule

1건의 항목

traveling-salesman-problem

3건의 항목

tree

4건의 항목

  • 가지를 끊어버리는 백 트래킹에 대해 알아보자.

  • 골드2 : 트리, 유니온파인드 문제이다. Root 찾기 흠. 입력으로 들어오는 node들이 순차적이지 않다는 점을 알아야 한다.이거 때매 시간 엄청 날렸다 즉, 랜덤으로 들어오는 그래프 정보를 가지고, 어떤 녀석이 tree의 root가 될 것인지 알아내야 한다.

  • 풀이 트리 구현을 한번도 안해보다가 처음으로 했다. 첫 시도에서는 바로 구현을 못하고 다른 코드를 참고 했다. 반복적으로 연습하면서 체득을 해야 겠다.

  • 용어 정점(Vertex, Node): 그래프의 노드 간선(Edge): 그래프의 노드를 연결하는 선 방향 (화살표) 무방향 그래프(Undirected Graph): 간선에 방향이 없는 그래프 방향 그래프(Directed Graph): 간선에 방향이 있는 그래프 값 가중치(Weight): 간선에 부여된 값 정의 그래프(Graph) 그래프(graph) G는 정점(vertex)의 집합 V와 간선(edge)의 집합 E로 구성된다.

trim

1건의 항목

  • 특정 문자열이나 공백을 제거하려면 어떻게 해야할까? 공백 싹다 지우기 let myString = "This \n is a st\tri\rng" let trimmedString = myString.components(separatedBy: .whitespacesAndNewlines).joined() 양쪽 지우기 var string = " AAAAAAAA " let trimedString = string.trimmingCharacters(in: [" "]) // 양끝단의 특정 문자도...

try

1건의 항목

  • 에러 처리는 프로그래밍에서 빼놓을 수 없다. 에러 관리를 제대로 해두어야 추후 디버깅에 있어 이득을 볼 수 있다. 미래의 나를 위한 투자?의 개념이다. 에러를 관리하는 것도 중요하지만 에러를 내는 방법, 에러를 감지하여 처리하는 방법을 아는 것 역시 중요하다.

try-catch

3건의 항목

  • 개체 지향을 얘기하면 꼭 나오는 단어인 예외에 대해서 알아본다. Exception 사실 예외는 개체지향의 일부가 아니다.

  • 깨끗한 코드와 오류 처리는 화실히 연관성이 있다. 하지만 오류 처리로 인해 프로그램 논리를 이해하기 어려줘진다면 깨끗한 코드가 아니다. 오류보다 예외를 사용하라 에전 프로그래밍 언어는 예외를 지원하지 않았다.

  • 예외 처리 예외 처리를 사용하므로써 알고리즘이 마주할 수 있는 예외 상황에 대해 코드를 분리할 수 있다. 이 결과 알고리즘에 보다 집중할 수 있다. 에러를 만들어 보자.

tuple

1건의 항목

  • 튜플(tuple)은 몇 가지 점을 제외하곤 리스트와 거의 비슷하다. 리스트와 다른 점은 다음과 같다. 리스트는 []으로 둘러싸지만 튜플은 ()으로 둘러싼다. 리스트는 그 값의 생성, 삭제, 수정이 가능하지만 튜플은 그 값을 바꿀 수 없다.

turing-completeness

2건의 항목

  • 튜링 완전이란 무엇인가? Turing Machine 가상의 기계 무한히 긴 테이프 그 테이프를 읽고 쓰는 헤드 상태 머신 (현재 상태와 입력 문자를 기반으로 다음 상태와 출력 문자를 결정) “이론상으로 모든 계산을 수행할 수 있음” Turing Completeness system 튜링 기계가 할 수 있는 모든 계산을 수행할 수 있는 시스템를 말함 언어로는 C, Java, Python, Ruby, JavaScript 등이 있음 Turing Incompleteness system 튜링 완전하지 않은 언어를 말함 특정한 종류의 계산을 수...

  • 비트코인 스크립트는 무엇일까? Smart Contract 비트코인이 전송되는데 있어 어떠한 계약을 걸 수 있다. 그걸 스마트 컨트랙트이라고 한다. 그리고 그 계약을 서술하는 프로그래밍 언어가 스크립트이다. 스크립트는 스택 기반의 스크립트 언어이다.

turing-machine

2건의 항목

  • 튜링 완전이란 무엇인가? Turing Machine 가상의 기계 무한히 긴 테이프 그 테이프를 읽고 쓰는 헤드 상태 머신 (현재 상태와 입력 문자를 기반으로 다음 상태와 출력 문자를 결정) “이론상으로 모든 계산을 수행할 수 있음” Turing Completeness system 튜링 기계가 할 수 있는 모든 계산을 수행할 수 있는 시스템를 말함 언어로는 C, Java, Python, Ruby, JavaScript 등이 있음 Turing Incompleteness system 튜링 완전하지 않은 언어를 말함 특정한 종류의 계산을 수...

  • 튜링 머신 다비트 힐베르트 20세기 가장 위대한 수학자 힐베르트 문제가 이 아저씨 힐베르트의 꿈 정의(def)와 공리(axiom)를 입력하면 모든 수학적 명제를 도출해 줄 수 있는 기계를 만들자 쿠르트 괴델 힐베르트의 꿈을 박살냄 ㅎㅎ 불완전성 정리 기계적인 방식으로 모든 수학적 명제를 도출할 수 없다.

two-phase-initialization

2건의 항목

  • Swift에서 Struct, Class, Enum을 초기화할 수 있는 Initializer에 대해서 알아보자. 이 부분에서 class 초기화는 다른 언어의 초기화 과정과 약간 다른 부분이 있다. 해당 내용은 좀 길어질 수 있어 다음 포스팅으로 넘겼다.

  • 이전 글에서 초기화를 알아보았다. 그런데 그 과정에서 Two Phase Initialization이라는 생소한 단어를 보았다면 잘 왔다. Swift는 상속 과정에서 모든 instance의 property의 값이 보장되기 위한 방법으로 2단계 초기화 방법을 사용한다.

two-pointer

2건의 항목

typ

1건의 항목

  • 자료형 프로그램에서 선언된 변수들이 기억 공간에서 어떻게 저장되고 처리되어야 할지, 컴파일러에게 알려줌 종류 정수형 실수형 문자형 사용자 정의 자료형 정수형 소수점이 없는 숫자 음의 정수, 0 , 양의 정수 오버플로우(overflow) 데이터 허용 범위를 넘는 값을 변수에 저장할 때, 의도한 값이 아닌 다른 값이 저장되는 것 #include <stdio.h> int main(void) { short a = 32767, b=2, c; unsigned short d; c = a+b; d = a+b; printf("c...

type

1건의 항목

  • 자료형 프로그램에서 선언된 변수들이 기억 공간에서 어떻게 저장되고 처리되어야 할지, 컴파일러에게 알려줌 종류 정수형 실수형 문자형 사용자 정의 자료형 정수형 소수점이 없는 숫자 음의 정수, 0 , 양의 정수 오버플로우(overflow) 데이터 허용 범위를 넘는 값을 변수에 저장할 때, 의도한 값이 아닌 다른 값이 저장되는 것 #include <stdio.h> int main(void) { short a = 32767, b=2, c; unsigned short d; c = a+b; d = a+b; printf("c...

type-casting

1건의 항목

  • 자료형 프로그램에서 선언된 변수들이 기억 공간에서 어떻게 저장되고 처리되어야 할지, 컴파일러에게 알려줌 종류 정수형 실수형 문자형 사용자 정의 자료형 정수형 소수점이 없는 숫자 음의 정수, 0 , 양의 정수 오버플로우(overflow) 데이터 허용 범위를 넘는 값을 변수에 저장할 때, 의도한 값이 아닌 다른 값이 저장되는 것 #include <stdio.h> int main(void) { short a = 32767, b=2, c; unsigned short d; c = a+b; d = a+b; printf("c...

type-category

1건의 항목

type-constraint

2건의 항목

type-constructor

2건의 항목

typealias

1건의 항목

  • Semantics Type typealias Kilograms = Double struct Package { var weight: Kilograms } Combine Protocols protocol ReadAccess {} protocol WriteAccess {} typealias AdminAccess = ReadAccess & WriteAccess struct Teacher: AdminAccess {} Int, Double은 어디서든 사용되는 타입이다.

u-net

1건의 항목

udp

1건의 항목

  • 전송 계층 Physical Layer, Data Link Layer, Network Layer 이 세개의 계층만 있으면 목적지에 데이터를 보낼 수 있다. 하지만 데이터 유실, 손상되는 경우 알수도 없고 해줄게 없다. 이를 방지하기 위한 계층이 전송계층이다.

ui

4건의 항목

  • 실수가 2번이상 반복되면 실력이다. UI 개발시 한방에 끝나기 위한 Edge case를 정리하자. 수시로 업데이트 한다.

  • Border는 바깥으로 그려질까 안쪽으로 그려질까? 오해와 삽질에 대해 정리해본다. Answer innerborder를 그리기 위해서는 현재 표현되는 frame을 border width만큼 줄여버리면 된다.

  • iOS Layout을 적용하는 것에는 여러가지 방법이 있다. autolayout만이 정답이라 생각했는데, 오산이었다. 이 부분은 주기적인 업데이트를 하도록 하겠다. Storyboard 장점으로는 UI 구성을 눈으로 확인할 수 있다는 점이다.

  • 테이블 뷰의 reorder 버튼을 변경해야 하는데, API가 없어 고생했던 경험을 공유한다.

uiapplication

1건의 항목

uicollectionview

1건의 항목

uicontrol

2건의 항목

uievent

1건의 항목

uiimage

2건의 항목

uiimageview

1건의 항목

uikit

38건의 항목 처음 10개의 태그

  • Border는 바깥으로 그려질까 안쪽으로 그려질까? 오해와 삽질에 대해 정리해본다. Answer innerborder를 그리기 위해서는 현재 표현되는 frame을 border width만큼 줄여버리면 된다.

  • TableView dataSource에서 아이템을 가져오다 outOfIndex가 나서 crash가 났다. 이로부터 배운 점에 대해 적어본다. 어떤 상황인가? crash 로그를 확인해보니, tableView에서 indexPath를 벗어나 발생했음을 확인했다.

  • headerView가 있는 TableView에서 높이는 제대로 맞는데, 이상하게 셀수가 많아질 상황에서 끝까지 스크롤되지 않는 문제가 발생했다. headerView의 layout을 먼저 잡아주어야 한다.

  • 이전에 앱의 실행 과정에 대해서 공부했을 때 제대로 이해하지 못했었다. 이번 기회에 제대로 이해하는 자리를 가져보려 한다. 조금 성장했는지 약간 더 이해가 되었다! 그럼 시작하자.

  • iOS 앱개발에서 화면을 담당한다면 피할 수 없는 autolayout! 공식 문서를 읽어보며 정리해보자.

  • 이전 글에서 PresentationController가 무엇인지 배웠다. 그런데, Transition Animator를 제공하는 부분에서 UIViewControllerAnimatedTransitioning이라는 친구를 보았다. 오늘의 주제는 이녀석이다.

  • WWDC 2019 키노트를 확인해보며 알짜 정보를 쏙쏙 뽑아보자. Dark Mode iOS 13부터 지원되는 기능이다. 말 그대로 dark mode이다. 해당 기능을 만들면서 고민했던 것은 역시 Mode에 따라 변화하는 색상이었다.

  • 맨날 헷갈리는 이것. 오늘은 뽑아버리겠다. Frame Super view의 좌표계를 기준으로 했을 때 본인의 좌표계를 말한다. 우리가 위치를 표시하기 위해서는 기준 좌표계가 있어야 한다.

  • Hit Testing 그럼 터치가 어디서 발생했는지는 어떻게 알 수 있을까? 즉, 터치가 발생한 시점에, 어떻게 내가 누른 가장 상위 객체(상단은 view 계층에서 top을 말함)를 판단할 수 있을까? 여기서 이벤트에 반응한 가장 상위 객체를 first Responder라 한다.

  • 이미지 자체를 늘리고 싶은데. 특정 부분은 고정시키고 싶으면 어떻게 할까? Image Stretch a.k.a nine patch 이렇게 이미지의 특정 부분은 고정시키고 나머지만 늘릴 수 있도록 하게 만드는 것을 Image Stretch라 한다.

uilabel

1건의 항목

uinavigationcontroller

1건의 항목

uipresentationcontroller

1건의 항목

uiresponder

1건의 항목

uiscreen

1건의 항목

  • Shadow를 보다가 scale에 대해서 알게된 내용을 적어본다. 정리 retina display가 나오면서 화면의 기본단위를 논리적으로 정의된 것을 사용하게 되었다. Point가 그것이다.

uiscrollview

2건의 항목

uistackview

1건의 항목

uitabbarcontroller

1건의 항목

uitableview

8건의 항목

uitouch

1건의 항목

uitraitcollection

1건의 항목

  • 회전과 관련된 코드를 보다보니, compact, regular와 같은 용어들이 보였다. UITraitCollection은 무엇일까? Size Classes 먼저, Apple이 다양한 디바이스들의 스크린 모양을 어떻게 논리적으로 관리하는 지 부터 알아야 한다.

uiview

3건의 항목

  • 업무 하면서 Shadow에 대해 알게된 내용을 정리한다.

  • 디자인 가이드를 읽다보면, Asset이 없는 경우가 있다. 이럴 경우 그냥 View를 만들고 Image화 해서 사용하면 좋겠는데.

  • View 화면을 구성하는데 기본이 되는 class NSObject를 상속한 UIResponder를 상속해서 구성됨 CustomView는 UIView를 상속함 UIImageView, UILable, UIScrollView… 가능한 것들 Drawing Animation Layout subview 관리 Event Handling UIResponder 상속하기 때문에, touch와 같은 event에 반응 가능 gesture 추가 초기화 형태 // code init(frame:) init() // default parameter = CGRe...

uiviewcontroller

4건의 항목

uiwindow

1건의 항목

uml

3건의 항목

  • UML에서 아직 그래도 많이 쓰이는 Class Diagram에 대해 정리해보자.

  • 다음으로 또 많이 쓰이는 Sequence Diagram에 대해 알아보자. 해당 글의 사진 자료는 외부 블로그를 많이 참고했다.

  • UML은 무엇일까? 그리고 왜 쓰였을까? UML(Unified Modeling Language) 시스템의 디자인을 시각화하기 위해 만든 표준 시스템 설계에 대한 그림을 그릴 때, 해당 표준이 없다면 중구난방으로 그려 의사소통의 효율성이 저해되었을 것 구조에 관한 다이어그램 7개, 동작에 관한 다이어그램 7개가 있음 현재 UML은? 이전에 유행하던 시절이 있었음 그 당시에는 외주받아 시스템의 개략도를 보여주고, 계약이 체결되는 방식이었기 때문이었음 현재는 회사안에 개발팀이 있기 때문에 필요없는 문서화라 생각되어 지양되는 분위기 지금은...

unchecked-exception

1건의 항목

  • 예외 처리를 제대로 하지 못하는 이유는 무엇일까? 예외 처리를 제대로 하지 못하는 이유 과거에 주류이던 예외 처리 방식은 지속적으로 작동이 보장되어야 하는 프로그램에 대해 “하드웨어가 멈추는 크래시”가 무서워서 그랬을 수 있다.

underfitting

1건의 항목

underflow

1건의 항목

  • 자료형 프로그램에서 선언된 변수들이 기억 공간에서 어떻게 저장되고 처리되어야 할지, 컴파일러에게 알려줌 종류 정수형 실수형 문자형 사용자 정의 자료형 정수형 소수점이 없는 숫자 음의 정수, 0 , 양의 정수 오버플로우(overflow) 데이터 허용 범위를 넘는 값을 변수에 저장할 때, 의도한 값이 아닌 다른 값이 저장되는 것 #include <stdio.h> int main(void) { short a = 32767, b=2, c; unsigned short d; c = a+b; d = a+b; printf("c...

unicode

1건의 항목

union-find

8건의 항목

  • 그래프 용어 V : vertex E : Edge path 연결 그래프 : 어떤 두 정점 사이에도 경로가 존재하는 그래프 부분 그래프 가중치 포함 그래프 : Edge에 가중치가 달려있음 순환 경로 순환 그래프, 비순환 그래프 트리 - 비순환, 비방향그래프 신장 트리 : 연결된, 비방향성 그래프에서 순환경로를 제거하면서 연결된 부분 그래프가 되도록 하는 트리 신장 트리의 개수는 Cayley’s formula에 따른 개수를 가짐 최소비용신장트리 신장 트리가 되는 부분 그래프 중에서 가중치가 최소가되는 부분 그래프 무조건 트리로 나온다.

  • 골드2 : 유니언 파인드 문제이다. 생각 이런 문제는 정말 비행기가 온다고 생각하고 푸는 것이 가장 좋은 것 같다. 그러니까 모든 문제는 시뮬레이션을 제대로 하는 것이 중요. 총 5개의 게이트가 있다고 하자. 그 때, 4번으로 비행기가 들어온다.

  • 골드4 : union find 문제이다. 풀이 기본적인 union find 문제. 코드를 기억하자.

  • 골드4 : 유니온 파인드 문제이다. 생각 이 문제의 핵심은 갈 수 있는지 없는지를 판단하는 것이다. 처음에 그래프라고 생각하고 접근하니, dfs를 수행할 때 depth가 너무 깊어져 터질 것 같아 다른 방법으로 진행했다.

  • 골드4 : 유니온 파인드 문제이다. 생각 문제를 이해해보자. 먼저 처음에 아무일도 하지 않을 경우에 입력된 n에 대해서 0 ~ n까지의 바구니가 생긴다. 그 다음, m개의 명령이 들어온다.

  • 실버2 : 유니온파인드 문제이다. 풀이 유니온 파인드로 같은 집합인지 아닌지를 검증하고, 같은 집합이라면 촌수를 계산한다! 이 때 pypy로 하지말고 python3로 할 것.

  • 골드2 : union find 문제이다. 풀이 으으 너무 아쉽다. 잘해놓고 같은 친구가 들어올 경우에 계산이 중복된다는 것을 체크하지 못했다. 그리고 지나고 보니 코드가 더러워서 다시짰다.

  • 골드2 : 트리, 유니온파인드 문제이다. Root 찾기 흠. 입력으로 들어오는 node들이 순차적이지 않다는 점을 알아야 한다.이거 때매 시간 엄청 날렸다 즉, 랜덤으로 들어오는 그래프 정보를 가지고, 어떤 녀석이 tree의 root가 될 것인지 알아내야 한다.

unit

1건의 항목

  • Monad는 어떻게 정의할 수 있을까? Monad Monad: 다음의 연산들이 정의된 Functor unit: T -> M<T> (return in Haskell) flat: M<M<T>> -> M<T> (join in Haskell) Functor에 unit하고 flat추가한게 모나드다.

unit-test

4건의 항목

  • 리팩토링에 있어 테스트 코드는 왜 중요할까? 자가 테스트 코드의 가치 프로그래머들의 대부분의 시간은 코드치는 시간이 아니다. 현상황 파악 / 설계 고민 / 디버깅에 많은 시간을 쓴다. 디버깅의 경우 수정자체는 금방 끝난다. 다만 찾는데 고통스럽다.

  • 지난 10년 동안 우리 분야는 눈부신 성장을 이뤘다. 97년도만 해도 TDD라는 개념을 아무도 몰랐다. 그 당시 단위 테스트는 프로그램이 돌아가는지 확인하는 일회성 코드에 불과했다.

  • 왜 필요할까? V-Diagram 왜 단계적인 테스트가 필요할까? 문제가 발생했을 때, 시간, 의사소통 등의 비용을 줄이기 위함 요구사항 만족함을 증명하는 것 어떤 종류가 있을까? 단위 테스트 테스트가 가능한 최소 단위로 나누어진 모듈, 프로그램, 객체, 클래스 내에서 결함을 찾고 기능을 검증 독립적으로 수행됨 프로그래머가 주도함 코드를 중심으로 수행 이러한 구분은, 어떤 Task냐에 따라 구분이 달라진다.

  • Test라는 과정은 사실 공학 어디에서든 등장하는 개념이다. 작업에 의존도가 있고, 복잡한 과정으로 넘어갈 수록 이전 단계의 오류는 치명적이기 때문이다. 이를 관리하는 방법이 Test라 할 수 있다. 소프트웨어에서 역시 이러한 개념이 적용된다.

universal-binary

1건의 항목

  • 실제 컴파일, 링킹이 끝난 뒤의 결과물에 대해서는 잘 모르는 것 같다. 실행 파일은 어떻게 구성되어 있는 걸까? 우리가 사용하는 프로그램들은, 바이너리화되어 있는 파일의 형태로 존재한다. 그런데, 이 실행파일의 형태는 OS에 따라 다른 형태로 존재한다.

universal-link

1건의 항목

unowned

1건의 항목

unwind-segue

1건의 항목

  • code를 보다가 unwind segue라는 녀석을 보게 되었다. 처음 보는 친구라 정리해보려고 한다. Unwind Segue 일단 Unwind라는 뜻을 알아보자. 음. 무언가를 푼다는 개념같다.

up-convolution

1건의 항목

update

1건의 항목

upper-bound

2건의 항목

upscaling

1건의 항목

uri

2건의 항목

  • Uniform Resource Identifier 아무래도 URL, URN의 상위 개념이다보니, 추상적인 의미를 더 많이 가진다고 생각하면 된다. 즉, 특정 정보를 식별할 수 있는 문자열이라면 URI라 생각할 수 있다.

  • 문득 이 차이가 헷갈렸다. URI가 더 큰 집합이라는 것은 알고 있었으나 정확하게 모르는 듯하다. 정리해두자. 들어가기에 앞서 먼저 URI와 같은 친구들이 필요한 이유부터 생각해보자. 결국 웹 기술은 어렵게 생각할 필요없이, 원하는 문서를 가져다 주기만 하면 된다.

url

5건의 항목

  • 문득 이 차이가 헷갈렸다. URI가 더 큰 집합이라는 것은 알고 있었으나 정확하게 모르는 듯하다. 정리해두자. 들어가기에 앞서 먼저 URI와 같은 친구들이 필요한 이유부터 생각해보자. 결국 웹 기술은 어렵게 생각할 필요없이, 원하는 문서를 가져다 주기만 하면 된다.

  • Uniform Resource Locator 보통 http, https protocol을 많이 사용한다. URI와의 차이점은, 정확한 위치를 기술해야 한다는 것이다. 다음의 두 URI의 차이점을 생각해보자. 이해가 가는가? 별 것 없다!.

  • URLSession을 만들었다면, 그 안에 들어갈 URL과 Request를 정의해야 한다. 이번에도 문서를 보며 알아보자.

  • iOS App에서 서버와 통신하기 위해 Apple에서는 URLSession이라는 기본 API를 제공하고 있다.

  • 이전 글에서 URLSession, URL, URLRequest 를 생성하는 방법을 알아보았다. 이번에는 어떤 Task들이 있는지 알아보자. Task Apple에서 기본적으로 제안하는 task의 종류는 총 3가지이다.

url-encoding

1건의 항목

urlcomponent

1건의 항목

urlrequest

1건의 항목

urlsession

3건의 항목

urlsessiontask

1건의 항목

  • 이전 글에서 URLSession, URL, URLRequest 를 생성하는 방법을 알아보았다. 이번에는 어떤 Task들이 있는지 알아보자. Task Apple에서 기본적으로 제안하는 task의 종류는 총 3가지이다.

urn

2건의 항목

  • 문득 이 차이가 헷갈렸다. URI가 더 큰 집합이라는 것은 알고 있었으나 정확하게 모르는 듯하다. 정리해두자. 들어가기에 앞서 먼저 URI와 같은 친구들이 필요한 이유부터 생각해보자. 결국 웹 기술은 어렵게 생각할 필요없이, 원하는 문서를 가져다 주기만 하면 된다.

  • Uniform Resource Name 그럼 이녀석은 왜 나왔는가? URL의 단점때문에 등장했다. URL은 “정확한 위치”를 가리켜야 한다는 제약을 가지고 있다.

userdefaults

1건의 항목

userinteractionenabled

1건의 항목

utf

1건의 항목

utf-16

1건의 항목

utf-32

1건의 항목

utf-8

1건의 항목

utxo

1건의 항목

value-type

3건의 항목

  • Enumeration 연관된 Value들의 공통 Type을 정의할 경우 사용 Type-Safe한 방법으로 사용 가능 특정 값으로 Raw Value 지정 필수 아님 Raw Value 사용 가능 자료 구조 String Chracter Integer Floating-point 사용 가능 기능 Computed Property Instance method Initializer Extension Protocol Raw Value의 묵시적 할당 enum Planet: Int { case mercury = 1, venus, earth, mars,...

  • Structure C언어 등의 구조체보다 다양한 기능 상속 불가능 인스턴스/타입 메서드 인스턴스/타입 프로퍼티 값타입 Swift의 대부분의 큰 뼈대는 모두 구조체 Struct가 선호되는 이유 mutability control에 유리 상태로 인한 부작용 없음 let 선언으로 완전한 immutable 자료형 생성 class의 경우 let 인스턴스여도 member 변수 변경 가능 성능 유리 referencing 소요 시간 감소 compiler가 강력한 최적화 수행 함수형 프로그래밍에서 효과정 immutable 요소를 바탕으로 code 가...

  • 처음에 Swift 공부할 때는 정말 아무것도 몰라서, 힘들었던 경험이 있다. 좋은 기회로 한번더 정리할 시간이 생겼다. 다시한번 전체적으로 훑는 시리즈를 만들어본다. 먼저, Swift가 어떤 언어적 특징을 갖는지, 기본 문법은 어떤지 알아보는 시간을 가지려 한다.

var

1건의 항목

  • 분기에 따라 값이 결정되는 코드를 짤 때, 변수를 무엇으로 선언하는 것이 좋을까? 작은 부분이나 좋은 지적이라 생각하여 정리해본다. 핵심 요약 분기에 따라 값이 결정될 때 변수를 선언해야 한다면, var보다는 let을 우선적으로 검토해보자.

variable

7건의 항목

variance

2건의 항목

  • 데이터를 설명하는 또 다른 척도인 변동성에 대해 알아본다. 변동성 데이터의 분포를 나타냄에 있어 퍼진 정도를 측정한다. 범위 range = 최대 관측치 - 최소 관측치 해당 데이터의 값이 어디서 부터 어디까지인지 나타낸다.

  • 확률변수 X가 따르는 분포 P(X)에서 추출된 x 로 구성된 함수 f(x)에 대한 분산 \text{Var} \text{Var}_{X \sim P} [f(x)] = \mathbb{E}_{X \sim P} [(f(x) - \mathbb{E}_{X \sim P} [f(x)])^2] 만약 \text{Var}_{X \sim P} 에서 확률분포 P(X)를 확실히 알 수 있다면 생략한다.

variation

1건의 항목

  • 데이터를 설명하는 또 다른 척도인 변동성에 대해 알아본다. 변동성 데이터의 분포를 나타냄에 있어 퍼진 정도를 측정한다. 범위 range = 최대 관측치 - 최소 관측치 해당 데이터의 값이 어디서 부터 어디까지인지 나타낸다.

varints

1건의 항목

  • 가변적인 수를 Encoding하는 방법 중 하나인 Varints 형식을 알아보자. Varint 이전에 Input, output등의 개수를 나타낼 때 있어 varint 형식을 사용한다고 했었다. 여기서 간단하게 알아보자.

vector

4건의 항목

  • 수학식으로 이루어진 점, 직선, 곡선 등으로 표현 확대 및 축소에 자유로움 계산량이 많아 하지만 색상의 자연스러운 변화나 세밀한 표현이 어려움 AI, SVG 등 .

  • What is Array? 직접적으로 값을 순차적으로 매핑한다. C언어에서 오래된 기술이고, 객체가 아니다.

  • List 이제껏 vector container 에 대해서 집중적으로 사용했는데, list container 역시 vector와 마찬가지로 많이 사용된다. Vector 장점 : search가 빠르다. 단점 : pop/ push 가 느리다.

  • STereoLithography 혹은 Standard Triangulated Language 3차원 데이터를 표현하는 국제 표준 형식중 하나. 복잡한 3차원 폴리곤을 삼각형의 조합으로 만들어 곡면을 표현한다.

veritication

2건의 항목

version

2건의 항목

  • 비트코인의 트랜잭션에 대해 알아보자. Transaction 앞에서 네트워크 혹은 디바이스에 이동하기 위한 공개키와 비밀키의 직렬화 방법에 대해 알아보았다. 물론 그에 대한 파싱까지 같이 배웠다.

  • Module Stability는 무엇일까? 공식문서를 통해 알아보자. Module Swift에서 Module은 무엇을 말할까? Swift는 접근 제어의 기준으로 Module을 사용한다. 코드 배포의 단위로써 import 키워드를 통해 사용하는 것들이 모두 모듈이다.

vibrancy

1건의 항목

  • 불투명한 뷰는 어떻게 만드는거지? 그게 바로 이거였다. Materials iOS는 깊이감을 느낄 수 있도록 하는 반투명 효과를 제공한다. Blur Effect 혹은 Material으로 부르는 친구다.

viewdidload

1건의 항목

vim

1건의 항목

  • 개념 특정한 규칙을 가진 문자열의 집합을 표현하기 위해 쓰이는 형식언어 프로그래밍을 다루다 보면 가장 많이 만나게 되는 것이 문자열이다. 모든 것이 문자열로 나타나 있고, 이것을 기반으로 한 규칙으로 프로그램이 구동되기 때문이다.

virtual

1건의 항목

virtual-machine

1건의 항목

  • 개념 개발자와 시스템 관리자가 컨테이너 기술을 사용하여 어플리케이션을 개발, 배포, 실행하기 위한 플랫폼 컨테이너 기술을 리눅스에서 사용되던 기술이다. 이 때, 이 기술을 사용하여 응용프로그램을 배포하는 것을 컨테이화 시킨 것이다.

virtual-memory

1건의 항목

  • 운영 체제가 하는 일을 간단하게 알아보자. 최호성님의 유튜브 강의를 보며 기본적인 컴퓨터 구조를 이해하고 정리하자. 운영체제가 하는 일 접근 제어 + 동기화 + 관리 전산 자원을 관리한다. 대표적인 전산 자원은 CPU, RAM 등이 있다.

visitor

1건의 항목

visualization

1건의 항목

voiceover

1건의 항목

  • Accessibility 자체만 해도 상당히 방대한 개념이다. 이번에는 iOS 개발자가 실제로 많이 사용하는 Accessibility인 Voice Over를 UIKit에 적용하는 방법에 대해 알아보자.

volume

1건의 항목

  • Volume과 Mount Docker Conatiner에 쓰여진 데이터는 컨테이너가 삭제될 때 함께 사라진다. 하지만 이에 관계없이 우리는 데이터를 영속적으로 저장할 필요가 있다.

wallet-import-format

3건의 항목

wan

1건의 항목

  • LAN 근거리 통신망 같은 건물 안을 범위로 하는 네트워크 집, 사무실과 같은 공간에서 사용 컴퓨터, 프린터와 같은 장치를 연결 MAN 도시권 통신망 서울시, 대학 캠퍼스 정도의 범위 WAN 광역 통신망 넓은 범위에 구축된 네트워크 랜과 랜을 연결 범위가 넓어 속도가 느리고 오류가 많다.

weak

1건의 항목

weak-reference

1건의 항목

web

2건의 항목

web-browser

1건의 항목

  • 네트워크 두 대 이상의 컴퓨터를 연결한 것 인터넷 수억개의 컴퓨팅 장치를 연결하는 TCP/IP 프로토콜로 구현된 네트워크 결론 인터넷은 네트워크의 일종 TCP/IP 프로톨을 준수하는 네트워크 이용하기 위해 웹브라우저 사용 .

weight

1건의 항목

where

2건의 항목

  • Generic의 경우 코드 중복을 줄일 수 있는 좋은 기능이다. 잘 다뤄둔다면 중급(?) 이상의 개발자가 되는데 큰 도움을 줄 것이다.

  • generic을 보면서 몇몇 곳에서 where 키워드를 사용하는 것을 보았다. 한번 정리해야 할 것 같아 공식 문서을 읽어본다. Generic Where Clauses generic에도 where 조항을 넣어 받는 타입에 세부 제약을 추가할 수 있다.

while

3건의 항목

  • 반복문의 필요성 특정 명령을 반복적으로 사용해야 함 규칙적으로 반복하는 일 동일한 내용을 반복할 때 For 특정 문장을 일정한 횟수만큼 반복 시킬 때 사용 #include <stdio.h> int main() { int i, Sum = 0; for (i=1; i<=10; i++) Sum += i; printf("1부터 10까지의 합은 %d다.\n",Sum); return 0; } // 프로세스가 시작되었습니다.

  • 기존에 작업한 글이 있어 링크로 대체한다. 05. Control Flow 06. Loop Part. 01 07. Loop Part. 02 iomanip library 기본적으로 iostream 라이브러리로 출력을 하게되면, 왼쪽 정렬이다.

  • 컴퓨터를 통하여 문제를 해결하는 가장 중요한 이유 중에는 계속적으로 반복하는 작업을 컴퓨터가 대신 처리하여 주는 것이다. 이런 기능을 반복문이라고 하며, 대부분의 프로그래밍 언어는 다양한 반복문을 제공한다.

wif

3건의 항목

willset

1건의 항목

  • 간단하게 property는 member 변수이다. 그런데 Swift에는 다양한 종류의 property가 존재한다. 사실 어떻게 보면 활용방법? 테크닉에 가깝겠다. 어떻게 property를 관리하는 지 안다면, 실제 코드를 간결하고 읽기 좋게 유지할 수 있다.

window

1건의 항목

  • iOS 개발자로서 제플린이나 피그마 창을 하나만 띄워서 보는건 너무 귀찮다. 여러개 띄울수는 없을까? 해결 방법 open -na /Applications/Zeplin.app open -na /Applications/Figma.app 모든 프로그램이 되는 것은 아니다.

workflow

2건의 항목

  • 답답한 걸 싫어하는 내게 속도가 나지 않는다는 것은 정말 곤욕이다. 내가 자주 사용하는 Alfred Workflow를 공유해본다. Markdown Table 블로그글을 쓰거나, 기록을 해야 할 때, table만큼 좋은 게 없다.

  • 잘 사용하고 있던 Alfred workflow가 동작하지 않는다. Mac OS 12.3으로 업데이트하고나서 바로 이런 이슈가 터지다니. 속도가 안나 답답하다. Issue 원인 Apple에서 12.3부터 공식적으로 python 2을 지원하지 않는다고 한다.

workspace

1건의 항목

  • 간단하게 프로젝트 내부를 탐험해보았다면, 각각의 제대로된 정의를 알아야 한다. 앞의 글에서 이어지니, 이해가 안되면 보고 오는 것이 좋다.

wrapper

2건의 항목

xception

2건의 항목

xcframework

1건의 항목

  • Framework와 library에 대해서는 모두 알았다. 그럼 XCFramework는 무엇일까? XCFramework framework의 다양한 변형들을 Bundle하는 새로운 방법, Framework를 한번더 Bundling 한다.

xcode

26건의 항목 처음 10개의 태그

  • 예전에 네트워크 처리를 하면서 맞닥들였던 문제를 다시한번 적어본다. 그리고 그 개념까지 간단하게 정리해본다.

  • 앞으로 그림에서 나오는 Swift version은 가상이다. 이해를 위해서 가상으로 적었다.

  • 접근성 개발에 있어 쉽게 도와주는 녀석이 있다! Accessibility Inspector!! Introduction 접근성 관련해서 반영해주려니까 테스트 기기가 없더라.

  • 앱 배포에 있어 꼭 알아야 하는 App Thining중 App Slicing에 대해 알아본다. 해당글은 WWDC 2015를 기준으로 한다. App Distribution Today 이전의 App 배포 방법은 다음과 같은 방식으로 수행되었다.

  • iOS 내부 디바이스에 다양한 CPU 제품이 들어감에 따라 이를 대응할 수 있도록 Project setting을 해야한다. 내부 디바이스들이 어떤 특징을 가지고 있는지 알아보자. 이번 글은 CPU Architecture 글을 읽고 오면 좀 더 편하다.

  • 실제 컴파일, 링킹이 끝난 뒤의 결과물에 대해서는 잘 모르는 것 같다. 실행 파일은 어떻게 구성되어 있는 걸까? 우리가 사용하는 프로그램들은, 바이너리화되어 있는 파일의 형태로 존재한다. 그런데, 이 실행파일의 형태는 OS에 따라 다른 형태로 존재한다.

  • 앱 배포를 하다보면 bitcode enabled라는 flag가 있다. 이녀석을 체크하냐 마냐에 따라서 빌드 속도가 상당히 차이나는 것을 보았는데 도대체 왜 그런 건지 이해해보려 한다. bitcode 다음은 Distrubution Options에서 찾은 설명이다.

  • 이전 글에서 Scheme에 대해서 알아보았다. 하지만 실제로 어떻게 사용하는 건지 잘 모른다. 이번 글에서 알아보도록 하자. Scheme 알아보기 프로젝트를 하나 만들어주고, Product -> Scheme -> Edit Scheme 들어가자.

  • Bundle 실행 가능한 코드(executble code) + 리소스 (Resources)를 가진 계층 어떻게 보면 이 개념은 개발자를 위한 개념이다. 결국 Package내부는 Bundle과 같이 구성되어 있다.

  • 앱스토어에 실제 앱을 배포해본 사람은 알겠지만, 인증서, provisioning과 같은 개념은 생소하다. 정확하게 알아보자. 원칙 Apple 만이 자신들의 하드웨어(iOS, iPadOS, MacOS etc)에 특정 소프트웨어가 동작하도록 할 수 있다.

xor

2건의 항목

xp

1건의 항목

zip

1건의 항목

  • 1D Array & Slicing # www.tensorflow.org/api_guides/python/array_ops import tensorflow as tf import numpy as np import pprint tf.set_random_seed(777) # for reproducibility pp = pprint.PrettyPrinter(indent=4) sess = tf.InteractiveSession() t = np.array([0., 1., 2., 3., 4., 5., 6.]) pp.pprint(t) pr...

기호를

1건의 항목

  • 개요 지금까지는 간단한 정규식을 살펴 보았지만, 실제로 존재하는 다양한 문자열에서 정보를 뽑아내기 위해서는 추가적인 옵션이 필요하다. 예를 들어 쇼핑몰의 상품 리뷰를 사용자가 작성했다고 한다. 우리는 여기서 핵심적인 단어를 뽑아내야 한다.

1건의 항목

  • Extended String Delimiters # #""Hello World""# = Hello world 특수문자들을 그대로 표현 가능 String literal 선언을 로 감쌈 escape seqence\n은 아래와 같이 사용 #"Line1\#nLine2# Line1 Line2 Concatenating + 가능 String Interpolation "\(name) 는 \(food)을 먹습니다" Unicode String은 내부적으로 Unicode scalar val...