목록IT (209)
잡동사니
안녕하세요. yeTi입니다. 오늘은 카이스트 김대식 교수 | (1부) “인공지능 시대에 애플의 움직임이 없는 이유” 처음 듣는 챗GPT 이야기를 보고 ChatGPT의 공개에 따른 인류의 변화라는 측면에서 얘기를 해보고자 합니다. 검색의 시대는 끝났다. ChatGPT의 활용법 (feat. 정보수집 방식의 전환)에서 인식의 전환 이라는 주제로 다음과 같이 언급한 내용이 있습니다. 만일 ChatGPT를 검색 엔진이라고 생각하지 않고 맥락을 이해하는 비서라고 가정한다면? 덧붙여서 정보를 찾는 과정에 대한 변화에 대해 공유했습니다. 신기하게도 그날 저녁 검색의 시대는 끝났다.는 썸네일이 영상을 보게 만들었습니다. ChatGPT의 공개와 그에 따른 컴퓨터가 사람의 언어를 이해하고 대화할 수 있는 환경이 갖춰짐에 따..
안녕하세요. yeTi입니다. 오늘은 ChatGPT를 활용하는 방법을 나름대로 이해한 부분에 대해 말해보고자 합니다. 기존 정보수집 방식 링크드인 팔로워인 김진중님을 통해 ChatGPT의 의미 와 중요성에 대해 알고 있었습니다. 하지만 스스로 선뜻 사용하지 못했던 이유는 정보의 신뢰성을 판별할 수 있는 방법을 알지 못했기 때문입니다. 왜냐하면, 기존에 정보를 수집하는 방식은 웹을 통해서 정보를 탐색합니다. 그러면 먼저 검색하고자 하는 대상과 관련있는 단어나 문장을 정의하고 검색 결과를 기준으로 정보의 신뢰성을 파악하기 위해 출처에 대한 신뢰성을 확보한 후 정보를 습득하는 과정을 거쳤다. 결국 출처의 신뢰성을 기반으로 정보의 신뢰성을 연결하는 방식이었습니다. 그러다보니 ChatGPT가 알고 있는 정보가 신뢰..
안녕하세요. yeTi입니다. 오늘은 Eventual Consistency 에 대해 다뤄보고자 합니다. 유영모님의 가이드를 따라가다가 거대한 자료의 수집채로 해당글을 씁니다. 정의 Eventual consistency에 따르면 결과적 일관성은 분산 환경에서 고가용성을 보장하기 위한 일관성 모델이라고 설명하고 있습니다. Eventual consistency is a consistency model used in distributed computing to achieve high availability that informally guarantees that, if no new updates are made to a given data item, eventually all accesses to that ite..
안녕하세요. yeTi입니다. 오늘은 유영모님이 기고하신 GraphQL 그리고 MSA를 읽고 RestAPI를 설계하면서 옳바른 방향이 무엇인가에 대한 자의적인 해석에 대해 공유하고자 합니다. 현실 RestAPI의 specification 을 정의할때면 항상 드는 고민이 있었습니다. 서버 개발자의 편의 위주로 설계할 것인가? (공급자 위주) 프론트 개발자의 편의 위주로 설계할 것인가? (소비자 위주) 서버 개발자의 편의 위주로 설계를 하게 되면 사용성에 대한 고민이 없어지니 서버 개발자의 편의내에서 서비스 도메인을 구분하고 간결한 정보의 제공으로 정의하여 공표하면 되니 설계를 간결하고 빠르게 진행할 수 있게 됩니다. 반면에 프론트 개발자의 편의 위주로 설계를 하게 되면 도메인의 경계보다는 다양한 화면에 맞춰..
안녕하세요. yeTi입니다. 오늘은 알고리즘 공부 중 동적계획법 (Dynamic Programming)에 대해 학습한 내용을 공유하려고 합니다. 강의 : 권오흠 교수님의 2015 봄학기 알고리즘 개요 동적계획법 (Dynamic Programming)은 순환식을 기반으로 문제를 해결하는 기법입니다. Memoization(캐싱)도 동적계획법 (Dynamic Programming)의 일부로 볼 수 있는데요. 두 방식의 차이점은 Memoization(캐싱)은 top-down 방식을 취하며 캐싱되지 않은 subproblem만 풀어나가는 반면, 동적계획법 (Dynamic Programming)은 bottom-up방식으로 필요한 계산을 사전에 해나가는 방식으로 볼 수 있습니다. 동적계획법 (Dynamic Progra..
안녕하세요. yeTi입니다. 오늘은 알고리즘 공부 중 압축(compression)에 대해 학습한 내용을 공유하려고 합니다. 강의 : 권오흠 교수님의 2015 봄학기 알고리즘 개요 압축을 하는 방식에는 무손실(lossless) 압축과 손실(lossy) 압축이 있습니다. 무손실 압축을 사용하는 경우는 text나 수치 데이터와 같이 디코딩시 원본 데이터가 온전히 보전되는 압축 방식을 말하며, 손실 압축을 사용하는 경우는 이미지나 영상 데이터와 같이 사람이 인지하지 못하는 수준내에서 디코딩시 원본 데이터가 손실되는 압축 방식을 말합니다. Huffman coding Huffman coding은 무손실 압축을 위한 방식 중 하나로 동일한 데이터에 대한 빈도를 기반으로 가변길이 데이터로 치환하는 방식을 사용합니다. ..
안녕하세요. yeTi입니다. 최근에 설계적 관점에 대해서 트리거를 받은 계기가 있어 스스로 가지고 있는 개념에 대해 공유해보고자 합니다. (feat. 소프트웨어 설계 20년 해보고 깨달은 '좋은 설계'의 조건) 좋은 설계 사실 좋다라는 단어는 상대적인 용어입니다. 저에게 있어서 좋은 설계란 실용적으로 활용할 수 있는의 의미가 큰 거 같습니다. 좋은 설계하기 (feat. 의사소통) 편에서도 공유했듯이 저에게 있어서 설계란, 표현에 그치는 수단이었고 문서작업이었으며 신뢰할 수 없는 정보였습니다. 그래서 어떻게하면 유의미하고 쓰임새있는 설계를 할 수 있을지가 항상 숙제였고, 우연치 않은 계기로 나름대로의 개념을 잡아나갈 수 있었다고 생각합니다. 설계의 의미 IT서비스를 만들어나감에 있어서 궁극적..
안녕하세요. yeTi입니다. 오늘은 Building web applications with Spring Boot and Kotlin을 참고하여 spring기반에서 코틀린을 사용하기 위한 기본 정보를 얻고자 합니다. 학습 목표는 Html 페이지 구성 부터 RestAPI, JPA, Properties에 이르기까지 웹 어플리케이션을 만들기 위한 기본 환경 및 통합 테스트, API 테스트, JPA 테스트에 이르기까지 개발함에 있어서 필수적인 테스트 환경에 대해서 익히는 것입니다. 샘플 코드 Spring guide 깃헙에서 확인할 수 있습니다. 계기 Kotlin에 대해 관심을 가지게 된 계기는 백엔드 개발자들 사이에서 코프링(Kotlin + Spring)이라는 용어가 생길정도로 코틀린에 대한 관심도가 증가하고 있..
안녕하세요. yeTi입니다. 오늘은 알고리즘 공부 중 최단경로(Shortest Path)에 대해 학습한 내용을 공유하려고 합니다. 강의 : 권오흠 교수님의 2015 봄학기 알고리즘 개요 가중치 그래프에서 경로상의 모든 엣지의 가중치의 합이 가장 작은 경로 (u, v)를 찾는 방법입니다. 이전 그래프 탐색 - BFS에서 그래프에서 BFS를 활용하면 최단 경로의 길이를 구할 수 있다는 내용이 있습니다. 현재 다루는 최단경로(Shortest Path)와 차이점은 그래프에서 BFS 탐색시 찾을 수 있는 최단 경로의 길이는 엣지의 갯수이고 최단경로(Shortest Path)는 가중치의 합이라는 것입니다. 최단경로문제는 다음과 같은 유형이 있습니다. Single-source: 하나의 출발노드에서 다른 모든 노드까지..
안녕하세요. yeTi입니다. 오늘은 알고리즘 공부 중 최소비용신장트리(Minimum Spanning Tree)에 대해 학습한 내용을 공유하려고 합니다. 강의 : 권오흠 교수님의 2015 봄학기 알고리즘 개요 최소비용신장트리는 무방향 가중치 그래프에서 모든 노드를 이었을 때 가중치가 가장 적은 엣지들의 부분집합을 찾는 방식입니다. 이 때, MST(Minimum Spanning Tree) 는 유일하지 않기 때문에 선별한 엣지들을 많은 MST들 중 일부인 부분집합 이라는 표현을 한다. 공학적으로는 계층적 구조의 연결을 트리(rooted tree)라고 인식하지만 수학적으로는 싸이클이 없는 연결된(connected) 무방향 그래프를 트리라고 합니다. 게다가 MST 문제에서 싸이클이라는 것은 중복 경로라는 의미로 ..