티스토리

어제 보다 나은 오늘
검색하기

블로그 홈

어제 보다 나은 오늘

kr-ddubbu.tistory.com/m

구독자
10
방명록 방문하기
공지 리브랜딩 홈페이지 개발기; 인터랙션웹 모두보기

주요 글 목록

  • Next.js 13.4+ App Router 도입 고민 (feat. styled-component) (25.01.10 기준) Next.js latest version 은 15.1.4 이다.마지막으로 사용한게 12 버전이었고, 현재 재직하고 있는 곳에서 13 버전을 사용하고 있어 그 사이 주요 변화를 알아보려한다.  주요하게 볼 점은 공식문서에서 13.4를 기준으로 App Router 방식을 Stable로 지정했듯이, app 단위로 컴포넌트와 page를 함께 관리할 수 있다는 것이다. (여전히 구 Pages Router 방식도 제공) 그리고 페이지 단위가 아닌 컴포넌트별로 렌더링 방식을 최적화할 수 있다. 하지만, 레포에 적용하려고 보니 다음과 같은 에러를 만났다.  스타일 라이브러리로 styled-component를 사용하고 있는데, 내부적으로 createContext 를 사용하고 있어 추가 작업이 필.. 공감수 1 댓글수 0 2025. 1. 10.
  • JWT 기반 클라이언트 인증 서버가 유저 A, B를 구분하는 방법에는 무엇이 있을까?서비스 진입 맨 처음 ID/PW 를 입력한다. 이는 유저를 식별할 수 있는 핵심 데이터이다. 하지만, 매번 페이지를 이동할 때마다 로그인을 유도할 수 없다. 이때 필요한 것은 로그인을 대체할 '인증 수단' 이다. 그 중 하나가 바로 JWT (Json Web Token) 이다.  JWT 인증 플로우 (심플)JWT 토큰 인증 플로우는 다음과 같다. 로그인에 성공하면 서버는 AccessToken 을 발급하고 앞으로 이를 토대로 유저를 식별한다. 클라는 Token 정보를 저장하고 있다가 인가가 필요한 요청 헤더 혹은 쿠키에 설정 후* 정상 플로우를 탈 수 있다. * 헤더 혹은 쿠키에 설정하는 기준은 추가 공부 필요 여기서 의문이 들 수 있다.- 어떻게 유저.. 공감수 3 댓글수 0 2025. 1. 8.
  • 브라우저 캐시 개발자 도구 네트워크탭을 애용하는 개발자는 리프레시 한 뒤 일부 리소스가 [디스크 캐시] 되는 것을 발견했을 것이다. 필자는 어렴풋이 캐싱되어서 컨텐츠 로드가 더 빨라지겠거니 추측했지만, 오늘은 궁금증을 갖고 면밀하게 조사해보려고 한다. 그래서 오늘 풀어볼 궁금증은?브라우저 캐시는 어디에 저장되는 것일까? 메모리 캐시와 디스크 캐시의 차이점은 무엇일까? (왜 메모리 캐시는 0ms, 디스크 캐시는 시간이 소요될까?)캐시 처리 단계는?React 에서는 Caching 정책을 어떻게 설정하고 최적화 할 수 있을까? 그 전에 각 리소스에 어떻게 캐시 정책을 적용하지?간혹 PHP 배포 후 이전 리소스를 불러와서 에러가 난 적이 있는데, 이를 어떻게 피할 수 있을까? [chrome for developers Ligh.. 공감수 0 댓글수 0 2025. 1. 7.
  • HTTP 완벽가이드 - 1부 HTTP: 웹의 기초 TODO: 빨간색은 추가로 넣을 예정인 컨텐츠 입니다.  1장 HTTP 개관페이지 레이아웃을 서술하는 HTML 뼈대를 한번의 트랜잭션으로 가져온 뒤, 이미지 등 추가 리소스를 가져오기 위해 추가 트랜잭션 수행 (트랜잭션이란, 요청 & 응답으로 구성됨)HTTP 메시지는 단순한 줄 단위의 문자열이다.TCP/IP 연결 통로가 만들어지고 나서는 단순히 read, write 하는 파일 시스템과 같다.그렇기 때문에 메시지 템플릿 (시작줄 / 헤더 / 본문) 구분이 중요함TODO: nodeJS listen API 가 내부적으로 숨기고 있는 기능 추가하기웹 브라우저 (곧 클라이언트)는 서버의 URL에서 호스트명을 추출해 IP로 변환한다. 그리고 포트번호도 있다면 추출한다. 이 두 정보를 토대로 TCP 커넥션을 맺는다... 공감수 1 댓글수 0 2025. 1. 6.
  • 이펙티브 개발자 책 리뷰에 들어가기 앞서,정글 수료하자마자 멘토링을 찾아나섰다. 정글에서는 개발자에게 요구되는 기본 지식을 학습했다면, 이제는 높은 곳으로 도약하기 위한 방법을 알아내야했다. 아직은 전 회사와 비슷하거나 그보다 작은 규모의 회사로 가게 될텐데, 그렇게 되면 과거의 학습법을 답습할 것 같아서 우선 인프런 멘토링을 리서치했다. 대기업 재직자, 미들급 이상인 분으로 찾았고 그렇게 3회 멘토링을 받고 얻게된 점.스타트업과 대기업 취준 전략은 다르다 너무 벙쪘다. 사실 멘토링 받기 전에는 정글에서 배운 지식 기반으로 3년 경력 살려서 이력서만 조금 손보면 되지 않을까 했다. 하지만 그와 배운 것들은 스타트업에서 단 한번도 고민해보지 못한 '성능', '기초', 그리고 '한가지를 파본 진득함' 이었다. 즉, 내가 어.. 공감수 3 댓글수 1 2025. 1. 1.
  • 브라우저 렌더링에서 메인 쓰레드 역할 들어가기 전해당 포스트는 브라우저 렌더링 과정 중 네트워크 리소스 로딩은 생략하고, 서술되었습니다. (궁금한 분은 MDN 참고)웹개발을 처음 배울 당시 html, css, js 3대장을 알게되고 '이렇게 마크업을하고 DOM API를 조작하는군' 하고 바로 프레임워크 학습으로 넘어간 기억이 난다. 이제는 React VirtualDom 목적, 웹 성능 최적화 방법이 궁금해졌고 그 전에 '브라우저 렌더링'을 점검할 필요성을 느껴 이 글을 작성했다. 자바스크립트는 싱글 스레드, 브라우저는?브라우저 렌더링하는데 필요한 스레드와 각 역할을 짚고갈 필요가 있다. 우선 자바스크립트가 싱글스레드라는 것은 자바스크립트 엔진이 단일 Call Stack을 가졌다는 의미이고, 비동기 처리가 가능한 이유는 런타임 환경에서 Web.. 공감수 2 댓글수 0 2024. 12. 23.
  • [WEEK15] 나만무 중간회고 정글 입소 이래 매주 썼던 회고글을 나만무 프로젝트 들어서는 쓰지 못하고 있었다. WEEK12는 초안으로 남아있었고, 일찍 퇴근한 날에도 오랜만에 찾아온 휴식에 집중하기 위해 미뤘었다. 하지만 오늘은 팀원들에게 그간의 고충을 위로받고, 그동안 갈망하던 챌린지적 요소를 발견한 것 같아 기쁜 마음으로 작성하려한다. 팀장 선발 과정은, 순조로웠다. 공지가 올라오자마자 처음으로 제출했고, 그게 좋은 모습으로 보인 것 같다. (3:3) 두 그룹으로 나뉘었는데 첫 조는 공지 당일에 지원했고 그 자체로 의지가 충만하게 전달되었다. 그에 반해 마지막 조는 거의 마감 직전에 낸 팀장도 있어서 '정말 자진해서 지원한게 맞냐?' 라는 질문을 받았다는 웃긴 에피소드가 있었다. 그리고 나와 사전 협의한 팀원을 납치할 계획까지 .. 공감수 2 댓글수 0 2024. 11. 29.
  • [EC2][nginx] port-forwarding, https 설정 필자는 다음 스펙으로 서버를 배포하고 싶었다.EC2 에서 run server서브 도메인에 배포하기 [예시] api.domain.comhttps 설정 (무료)port-forwarding: port 번호 없이 접속  FYI. 사전에 도메인을 구매하고 NS가 설정되어있다는 가정하에 가이드가 작성되어있습니다.  1. Route53 A 레코드 생성subdomain: (예시) api값: EC2 퍼블릭 IPv4 주소  2. EC2 생성 및 HTTPS 인바운드 규칙 추가 3. EC2 인스턴스 연결: (예시) ssh4. port-forwarding (with nginx)$ cd /etc/nginx/sites-availables$ sudo vi default default 파일 수정server { listen 80;.. 공감수 0 댓글수 0 2024. 11. 4.
  • [WEEK11] 내 방식으로 🤔회고알고리즘 기억하고 있어서 다행이다한달만에 푸는 알고리즘, 감을 잃은 것 있지만 남아있는 것도 있어서 다행이다. 문득 또 잘 하고 싶다는 욕심이 올라와서 다 난 안될거라는 생각이 스멀스멀 올라온다. 나는 여기 입성하기 전에 bfs도 queens 문제도 못 풀었다는 걸 기억하자. 너는 성장하고 있다! 선미 아가야! 내 방식으로핀토스가 끝나니, 미뤄둔 프로젝트 걱정이 스멀스멀 올라왔다. 언어 선택, 팀장/팀원, 프로젝트 주제 등 옵션이 많았다.  [언어] js사실 처음에는 java 채용 공고가 많아서 kotlin 스터디도 조인하며, 팀원으로서 spring 프로젝트를 꿈꿨다. 새로운 언어와 프레임워크 적응에 급급할 것 같아서 보다 경력자인 동료에게 팀장 자리를 제안하고 싶었기 때문이다. 하지만, 회사에서.. 공감수 6 댓글수 0 2024. 10. 29.
  • [python] 코테 유형별 템플릿 모음 #stackst = [] # 과거값 참조for item in items: if st[-1] vs item: st.pop() else: st.append(item)  #priority-queueimport heapqarr = []# Q = heapq.heapify(arr)for item in items: heapq.heappush(arr, item) # min-heap # heapq.heappush(arr, -item) # max-heap; 꺼낼 때 유의while Q: poped = heapq.heappop(arr) # action  #graph #위상정렬# n = vertex 개수# edges: List[Tuple[int, int]]from collections import defau.. 공감수 1 댓글수 0 2024. 10. 27.
  • [PintOS 3-5] Swap In/Out [사전 지식] HDD   [사전지식] 코드     swap-out swap-in 공감수 0 댓글수 0 2024. 10. 21.
  • [WEEK10] 핀토스 끝, 🤔(핀토스) 회고한달이라는 긴 호흡, 드디어 끝이 났다. (사실 아직 12H 남았는데, 빨리 끝내버리고 싶어서 회고글을 먼저 써버린다.. ㅎㅎ)핀토스라는 큰 산을 넘은게 기특해서 주차별이 아닌, 한달 회고를 해보려한다. 공부 텐션은 핑퐁을 오갔다. 어느 날은 재밌어서 날도 새가며 공부했지만, 다음날 졸려서 일찍 퇴근한 날도 있었다. 무엇을 공부했더라. (1주차) 시분할, 우선순위 Scheduling 구현 후 어떻게 여러 개의 프로그램이 동시에 실행될 수 있는지 공부했다.(2주차) 커맨드 파싱 후 User Program이 실행되고, Context Switching 시 어떻게 interrupt frame 저장 및 레지스터 복원을 하는지, Context 의미를 이해할 수 있었다.(3주차) 작은 RAM 사이즈.. 공감수 7 댓글수 7 2024. 10. 21.
  • [OS] File System 강의 정리 - 반효경 교수님 (v2017) 파일 시스템 1 파일시스템의 기초, 디렉토리 구조, 파일의 접근권한 보호   File, metadata, File systemOS는 다양한 저장장치를 file이라는 동일한 논리적 단위로 봄Directory : 파일의 메타데이터 중 일부를 보관하고 있는 일종의 특별한 파일Partition =  Logical DiskFile system 관련 management tableFile Descriptor Table : PCB (Process Control Block) 내에 존재Open File Table : 전역으로 관리 Memory vs File Protection(Virtual) Memory는 프로세스별로 각기 갖고 있어서 연산(R/W) 권한 체크만 해주었음그와 달리 File Protection은 "누구에게".. 공감수 2 댓글수 2 2024. 10. 19.
  • [WEEK9] 면역력이 떨어져도 🤔회고실습이 필요한 이유분명 하루종일 개념 공부를 했는데, 휘발되고 있다. 그리고 핀토스 구현 명세를 보고 있는데, 이러한 세팅과 로직이 필요하구나를 새롭게 깨닫고 있다. 실습은 메타 인지를(무엇을 알고 모르는지) 쉽게 가질 수 있게 해주는 것 같다. 정글을 수료하고 나서도 적절히 실습 과제를 찾아보면 좋을 것 같다. 팀원과 함께 가기어서 진도를 빼야한다는 생각에 폭주(?)하고 있다. 방대한 자료들을 읽고 이해가 안되는 부분들은 물음표로 남겨둔채 빠르게 지식을 주입하고 있다. 그 덕에 5시간짜리 OS 강의, OSTEP, Introdction, 한양대자료, KAIST 강의까지 봐야할 자료들을 사실 하루만에 다 섭렵했다. 그리고 오늘 점심 먹고부터 팀활동을 시작하고, 저녁에는 구현을 시작해볼 수 있었다. .. 공감수 13 댓글수 4 2024. 10. 15.
  • [PintOS 3-2] Anonymous Page KAIST PintOS gitbbok guide  you will implement the non-disk based image called anonymous page.   이번 과제는 사실 Demand Page (= Lazy Load) 구현이 핵심이라고 생각한다. 그때 페이지 타입 간의 차이 (UNINIT, ANON, (Project 3-3 예정)FILE) 을 구분하는건 덤이고. 가상 주소 단위인 Page는 다음과 같은 생애 주기를 갖고, 이번 과제에서는 Lazy Load, 그리고 VM_ANON 한해서 swap in을 잠깐 맛보았다.  Demand Page 사전 지식 (코드편) 기능 흐름도프로그램 실행 시, 이전 Project와 달리 프로그램 전체를 즉시 로드하지 않고, 지연한다.이때 Page 단위로 .. 공감수 1 댓글수 2 2024. 10. 14.
  • [PintOS 3-1] Memory Management KAIST PintOS gitbook guideIn order to support your virtual memory system, you need to effectively manage virtual pages and physical frames 이번 과제에서는 복잡한 페이지 처리에 필요한 정보를 담는 자료구조 supplemental page table, frame table를 정의 [궁금증]Q. 그럼, PTE present bit로는 부족해서 SPT swap 여부를 저장하는 이유가 뭐야?A. PTE는 페이지가 물리 메모리에 있는지, 없는지 정보만 제공. OS는 페이지가 스왑 영역에 있을 경우 위치 정보 등의 메타 데이터가 필요 [주의사항]PML4는 HW / SPT, Frame Page Table는 O.. 공감수 0 댓글수 0 2024. 10. 14.
  • [OS] PML4 이해하기 (w. PintOS) Page Table을 이용해 가상 주소로 물리 주소를 변환하는 과정을 학습했다는 전제하에 글이 작성되었습니다.Multi-Level Page Table 등장 배경단일 레벨 페이지 테이블의 경우 거대한 연속된 페이지 테이블이 필요. 미사용 PTE가 존재할텐데, 메모리 낭비 발생Multi-Level PT : 필요한 부분만 테이블 생성. Outer PT만 커널에 유지하고 나머지 하위단계 PT는 필요 시 생성 이때, 자료구조는? radix-tree page tablesparse한 physical memory 사용 시 적은 메모리 사용으로 표현 가능Challenge 💪 vs hashed page table [출처] PML4 구현 in PintOS 사전 지식; 매크로[비트 연산: right shift] 하위 몇 .. 공감수 2 댓글수 1 2024. 10. 14.
  • [OS] Virtual Memory 역할, 주소 변환 [참고자료] CS:APP 9장영상 : https://www.youtube.com/watch?v=Fg00LN30Ezg&t=1182s블로그 : https://charles098.tistory.com/101 VM 역할 및 장점 1. 캐싱CPU는 메인 메모리를 디스크에 저장된 주소공간에 대한 캐시로 취급해서 메인 메모리 내 활성화 영역만 유지 (CS:APP 772p) [궁금증] 캐싱 저장장치가 아닌데, 왜 그렇게 표현하는걸까?[해결]캐싱? 원본을 접근하는 시간이 오래 걸리는 경우, 가까운 임시 저장소에 저장 후 시간 절약하는 기법CPU ~ Disk 거리가 너무 멀어서 사이에 여러 개의 기억 장치(ex. DRAM(메인 메모리))가 존재함. CPU는 필요한 데이터를 메모리에 요청하고, 없으면 OS가 데이터를 디스크.. 공감수 0 댓글수 0 2024. 10. 14.
  • [OS] QnA로 알아보는 Virtual Memory 목표 : QnA를 통한 개념 부족한 곳 채우기 (질문 리스트는 OSTEP 발췌 및 개인적인 궁금증) 틀린 부분 피드백은 언제든 환영 🙌 Q. 해당 노트북 사양을 분석하시오. - 프로세스당 가상 주소 공간 최대 크기- 물리 주소 크기(유사 질문)Q. 가상주소를 맵핑하는 물리주소는 어떤 HW를 지칭하는 걸까? RAM? Disk? 더보기1-bit 는 0 / 1, 총 2개의 주소를 표현할 수 있다. n-bit 프로세서는 최대 (2^n) 개의 논리 주소 공간을 가질 수 있다. 즉, 64bit는 18.4EB (K  시스템이 물리적으로 사용할 수 있는 메모리 공간은 RAM의 크기로, 8GB하지만, OS의 메모리 사용 및 시스템 예약 메모리 등으로 가용 물리 주소 공간은 7.8G으로 감소했다. Q. 이론적으로는 가상.. 공감수 4 댓글수 1 2024. 10. 9.
  • [OS] Virtual Memory 강의 정리 - 반효경 교수님 (v2017) 강의 출처- A. Silberschatz et al., Operating System Concepts, 9th Edition, John Wiley & Sons, Inc. 2013.- A. Silberschatz et al., Operating System Principles, Wiley Asia Student Edition- 반효경, 운영체제와 " data-og-host="www.kocw.net" data-og-source-url="http://www.kocw.net/home/search/kemView.do?kemId=1226304" data-og-url="http://www.kocw.net/home/cview.do?cid=4b9cd4c7178db077" data-og-image=""> 운영체제- A. .. 공감수 4 댓글수 4 2024. 10. 9.
  • [WEEK8] 100점이 아니어도 괜찮아 🤔회고디깅한다는 건? 이슈를 맞딱드렸을 때 끝까지 파보는 연습? 그럼 저번에 용량 큰 동영상 이슈를 끝까지 파보았어야했나. 과제 끝내니는게 중요한게 아니라면, 이번주차는 어떻게 임해볼까. 문제를 계속 맞딱드려야한다라.. 100점이 아니어도 괜찮아 마의 system call - process fork, wait, exec 구현에 진입해서 멘붕이 왔다. 핀토스 답을 보는게 당연해지고, 포기하는 마음이 들려고 한다. 이러지 않으려고 여기 왔는데, 난이도가 나한테 안 맞다면 나는 어떤 배움의 과정을 가져야 했을까. 어떤 동기는 부족한 개념을 채우기 위해 OS 강의를 보는 선택을 하기도 했다. 후반부가 되자, 나도 남는게 없을 것 같아 해당 파트는 과감히 버리고, 핀토스 수행 과정에서 실제로 궁금했던걸 고민해보았.. 공감수 7 댓글수 3 2024. 10. 8.
  • [PintOS Project2] USER PROGRAMS 깃헙 링크 https://github.com/ddubbu-dev/pintos-1-9th-9team/tree/2-userprog-without-process-pass GitHub - ddubbu-dev/pintos-1-9th-9teamContribute to ddubbu-dev/pintos-1-9th-9team development by creating an account on GitHub.github.com FYI. Project 과제별로 브랜치를 save해두었습니다. 필요하신 분은 편히 참고하세요.틀린 부분 제보는 언제든 환영입니다.  테스트케이스 통과 현황 FAIL : system call process fork, wait, exec 파트는 이해가 덜 되어서 PR draft로만 남겨두었습니다. 발표 .. 공감수 4 댓글수 2 2024. 10. 8.
  • [PintOS Project1] THREADS 깃헙 링크 FYI. Project 과제별로 브랜치를 save해두었습니다. 필요하신 분은 편히 참고하세요. 틀린 부분 제보는 언제든 환영입니다. https://github.com/ddubbu-dev/pintos-1-9th-9team/tree/1-1-alarm-clock GitHub - ddubbu-dev/pintos-1-9th-9teamContribute to ddubbu-dev/pintos-1-9th-9team development by creating an account on GitHub.github.com https://github.com/ddubbu-dev/pintos-1-9th-9team/tree/1-2-priority-scheduling GitHub - ddubbu-dev/pintos-1-9th.. 공감수 1 댓글수 1 2024. 10. 8.
  • 어셈블리어 기초 [참고자료]x86 vs x64x86 : 32bit 시스템. Intel 8086 프로세서 이후 80286, 80386 같은 모델들이 등장하면서 유래x64 : 64bit 시스템 (32bit) 어셈블리어 명령어 헷갈리는 mov 명령어 먼저 이해하기// C Codelong exchange(long *xp, long y) { long x = *xp; *xp = y; return x;}// Assembly code// xp in %rdi, y in %rsiexchange: movq (%rdi), %rax # Get x at xp. Set as retrun value. movq %rsi, (%rdi) # Store y at xp. ret # Return. x86C언어설명x86-64mo.. 공감수 2 댓글수 1 2024. 10. 2.
  • [WEEK7] CS 꿈틀꿈틀 #핀토스_1주차 🤔회고절제와 실패의 반복이번주 KAIST 본캠에서 대학 축제가 열리고 있다고한다. 잠시 정도야 다녀올 수 있지 않을까 했는데, 쏟아지는 읽을 자료와 구현 복잡도에 결국 가기를 포기했다. 그리고 가더라도 편한 마음으로 축제를 즐길 수 없을 것 같았다. 뿐더러 간안클(간식 안먹기 클럽)을 통해 수시로 생각나는 간식을 한번이라도 더 꾹 참아볼 수 있었다. 절제와 실패를 반복하며 스스로와의 약속을 하루라도 지켜보려 노력하고 있다. 견제(?)해주는 동료들 덕분에 나은 삶을 살고 있는 것 같아 좋다. 그리고 Alarm clock 과제를 1차적으로 구현해서 오늘부터 러닝을 재개하려 한다. 핀토스 과제에서 살짝 숨통이 트여서 일상 패턴으로 돌아가서 건강도 챙겨보고 싶어졌다. CS 지식이 꿈틀꿈틀 🌱OS Review.. 공감수 8 댓글수 2 2024. 10. 1.
  • Proxy & Network 퀴즈 출처정글 사관학교 1. client-server model에 대해서 설명하시오[위키백과] 서비스 요청자인 client와 서비스 자원의 제공자인 server 간에 작업을 분리해주는 분산 애플리케이션 구조이자 네트워크 아키텍처를 나타낸다. 2. HTTP request와 response에 대해 아는대로 설명하시오 [mdn]HTTP 메시지는 서버와 클라이언트 간에 데이터가 교환되는 방식. 메시지 타입에는 요청과 응답이 있다. 요청은 클라가 서버로 전달해 서버의 액션이 일어나게끔 하는 메시지이고, 응답은 요청에 대한 서버의 답변이다. + 첨언) GET request도 body 가 있을 수 있다. 단, RFC-9110 에서는 GET request body를 만들지 않도록 권장하고 있다. 현재 QUERY emthod.. 공감수 4 댓글수 1 2024. 9. 27.
  • [WEEK6] RE-START 🤔회고저녁 러닝 루틴 추가D-97 (24.09.13 기준) 남은 정글 생활 일수이다. 누군가 100일이 깨졌다고 했는데, 진짜 세보니깐 얼마남지 않았다. 저번주에는 공부를 즐기면서했고, 동시에 충분히 휴식도 취했다. 갈수록 코치님의 답변에 더더욱 당차게 답하고 모름을 인지하고 있다. 따로 퀴즈를 준비하지 않았지만, 퀴즈도 dangling pointer 빼고 막힘없이 답변했다. 하지만 출퇴근 시간만 보면 근면 빵점이라고 생각한다. 운동은 차일피일하고 있고, 이틀 연속 야식으로 피부는 뒤집어지고 속은 더부룩하다. 그러던 와중에 결국 참지 못하고 여러 스터디에 조인하고 말았다. 알랜디(알고리즘 랜덤 디펜스, 매일 백준 문제 풀기), 코틀린이(코틀린+어린이, 코틀린 언어 학습) 등. 분명히 기존 루틴에 추가되.. 공감수 4 댓글수 1 2024. 9. 24.
  • [네트워크] echo 예제로 이해하는 소켓 인터페이스 소켓통신 파일 처리와 같다?Unix/Linux 시스템에서는, 모든 I/O 자원이 파일처럼 취급된다.소켓도 file descriptor(식별자)를 통해 접근할 수 있는 "열린 파일"소켓을 열면, 파일을 다루는 방식과 유사하게 소켓에 대해 읽기/쓰기/닫기 등의 작업이 가능 rio 구조체를 이용해 소켓 다루기void rio_readinitb(rio_t *rp, int fd) { rp->rio_fd = fd; rp->rio_cnt = 0; rp->rio_bufptr = rp->rio_buf;}// 사용 예시 : rio 구조체를 socketfd와 연결된 소켓으로 초기화rio_readinitb(rp, socketfd)  그림으로 이해하는 소켓 인터페이스 주의사항listenfd : (liste.. 공감수 2 댓글수 0 2024. 9. 16.
  • Allocator 퀴즈 출처정글 사관학교 1. 다음 코드가 일으키는 문제와 관련된 키워드A: m = malloc(5); m = NULL;B: free(n); n->val = 5;C: char *p; *p = 'a';A - memory leak : 필요하지 않은 메모리를 계속 점유하고 있는 현상B - dangling pointer (=Premature Free) : 유효한 객체를 가리키고 있지 않는 포인터[이슈1] 메모리 접근 시 예측 불가능한 동작[이슈2] 접근 불가 시 Segmentation Fault[해결] 메모리 해제 후 포인터를 NULL 혹은 nullptr로 처C - uninitialized pointer 2. 메모리를 할당하는데 블록단위로 할당하는 이유Fragmentation 방지관리 효율성할당 속도 향상 *오버헤드 .. 공감수 1 댓글수 2 2024. 9. 14.
  • [WEEK5] allocator 재밌다! 🤔회고우리 모두가 성장 중지식을 주입하고 있고 분명 성장하고 있다. 하지만 내가 오늘은 조금만 일찍 퇴근하던게 쌓여 격차가 될 수 있음을 느꼈다. 계속 자극받을 동료들이 있어서 좋다. 잠시 쉬고 싶을 때 늦게 퇴근하는 동료들을 보며 한 줄이라도 더 보게 되고 self-푸시하게된다. 주어진 환경이 고맙고 헛되이 보내지 않았으면 한다. 늦잠으로 에너지 풀인 이번주안다. 윗 문단과 상반되는 인트로에 띠용했음을, 하지만 오히려 줄어든 시간에 더 집중했던 것 같다. 이번주는 알람 없이 깨서 11시 출근이 일상이 되었다. 그리고 한 01시 즈음 퇴근하니깐 12시간 정도 공부하고 있다. 분명히 지난 한달보다 엉덩이 붙이고 앉은 시간은 줄었지만 학습 만족도는 높다. 똑똑하고 집요한 팀원들 덕분에 allocator 4.. 공감수 1 댓글수 1 2024. 9. 13.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.