본문 바로가기
728x90
반응형

분류 전체보기647

UDP Server & Client UDP 추가기능이 없는 전송프로토콜. 세그먼트가 로스될 수도 있고, 세그먼트 순서가 뒤바뀔수도 있는 서비스이다. TCP는 일대일이라서 여러 호스트가 연결하면 각 클라이언트와의 소켓이 필요하다. UDP는 여러 클라이언트와 통신하기 위해 하나의 소켓만 있으면 된다. UDP는 "Connectionless" 방식으로, 서버,클라이언트 모두 하나의 소켓만 이용하면 된다. sendto() #include ssize_t sendto(int sock, void *buff, size_t nbytes, int flags, struct sockaddr *to,socklen_t addrlen); TCP에서는 socket을 열면서 IP,PORT가 설정되어 write시 따로 이를 설정할 필요가 없었는데, UDP는 accept를 .. 2023. 6. 11.
Transport Layer Basic 줄글로 읽고싶다면 더보기를 클릭. 더보기 Transport layer는 네트워크에서 데이터 패킷을 '세그먼트'라고 부르며, 이는 어플리케이션 레이어로부터 받은 메시지를 세그먼트로 분할하여 네트워크 레이어로 전달합니다. 이 과정은 주로 메시지의 크기 때문에 필요합니다. 트랜스포트 레이어에서 주로 사용되는 두 가지 프로토콜은 TCP와 UDP입니다. TCP는 혼잡 제어, 흐름 제어, 그리고 연결 설정을 담당합니다. 또한, TCP는 신뢰성을 확보하기 위해 라우터에서 발생하는 큐잉 딜레이로 인한 패킷 손실을 감지하고 재전송을 담당하며, 세그먼트가 순서대로 도착하도록 관리합니다. 반면에 UDP는 이러한 TCP의 기능을 제공하지 않습니다. 또한, TCP와 UDP 모두 지연 시간과 대역폭을 보장하지 않습니다. 이는 패.. 2023. 6. 11.
File system and storage management File file은 byte단위로 이루어져 있는 데이터들의 집합. file의 타입은 다음과 같다. Data Program Data file은 텍스트 타입. 아스키 파일이라고도 함.(text type) Program은 바이너리 코드로 이루어짐(binary type) File Structure File Attributes file에 대한 meta data name, identifier, type,location, size, protection, .. location: 파일의 위치 포인터 File Types- Name, Extension 이름과 확장자. 확장자는 OS마다 사용되는것이 다름. 유닉스는 확장자가 없음 UNIX File System 디스크 드라이브가 여러 파티션으로 나뉘어있고, 2023. 6. 10.
인어공주(2023)을 보다 그 영화 인어공주를 봤다. 왜 봤냐면~ 그냥 보고싶어서 봤다... 언더더씨, part of your world 같은 익숙한 노래들 영화관에서 소리 빵빵하게 듣고싶었고, 화려한 CG도 보고싶어서 봤다. 영화 보면서 느낀점 1. 초반 상어한테 쫓길 때 무서웠다. 2. 인어공주가 창문이나 바위틈에 불쑥 얼굴 내미는 장면이 나올때마다 깜짝깜짝 놀랐다. 3. 언더더씨 중간에 자그마한 버섯같은 생물들이 춤을 추는데, 거기서 인어공주가 불쑥 나와서 흐뭇하게 지켜보는 장면이 있다. 이 장면이 핑구 악몽편- 바다사자가 이글루 들추는 장면을 보는 듯 해서 소름끼쳤다. 4. 언더더씨 노래가 심심하다는 평을 어디서 봤는데, 난 기대보다 더 만족스러웠다. 중간에 삼바같은 신나는비트로 바뀌기도하고, 바다생물들이 폭죽터지듯 화려하.. 2023. 6. 9.
MySQL 설치 및 Spring 연동 방법 https://downloads.mysql.com/archives/installer/ MySQL :: Download MySQL Installer (Archived Versions) Please note that these are old versions. New releases will have recent bug fixes and features! To download the latest release of MySQL Installer, please visit MySQL Downloads. MySQL open source software is provided under the GPL License. downloads.mysql.com 위 링크에서 mySQL 8.0.32버전을 다운받습니다. 설치과정에서 .. 2023. 6. 9.
Virtual Memory - Page Replacement Virtual Memory : 물리메모리와 논리메모리를 분리. 이들 주소가 1:1로 매치되지 않는다. 가상 메모리는 현재 필요한 메모리 페이지만을 물리 메모리에 유지하고, 나머지는 디스크에 저장함으로써 메모리의 효율적인 사용을 가능하게 한다. 각 프로세스는 자신만의 가상 메모리 공간을 갖게 되어 다른 프로세스의 메모리 영역에 접근하지 못하게 된다. 가상 메모리는 요구 페이징(Demand Paging), 요구 세그멘테이션(Demand segmentation)이라는 두 가지 방식으로 구현될 수 있다. 가상 메모리의 3가지 주요 특징 프로그램 사이즈와 메모리 사이즈는 연관 없다. (프로그램 사이즈가 메모리보다 커도 됨). (디스크를 메모리의 일부처럼 사용하게하는 스왑핑 기능을 적용했기 때문) 한 프로세스는 전.. 2023. 6. 3.
대구에 비가 오다 이날은 비 오기 전. 5월 28일이었던 것 같음. 뭐 했냐면 그냥 혼자 산책했다. 산책하고 있는데 누가 미니 리코더를 떨어뜨리고 갔다. ..... 오리들이 작은 바위 위에 옹기종기 모여서 쉬고 있는 걸 발견. . . . 그리고 갑자기 탕후루를 만들어보고 싶어서 집 오는 길에 냉동딸기를 2kg 사 왔다. 냉동딸기 상태 보고 탕후루가 될까 걱정이었는데 생각보다 잘 만들어졌다. 근데 잠깐 냉동실 넣어놨는데 즙이 쫙 빠지더니 이렇게 됨.. . . . 이러다가 밤에 스터디카페 감. 공부 다하고 이제 집에 가려는데 비가 왔다. 노트북이랑 태블릿 젖을까 봐 가방 꽉 안고 집까지 뛰어갔다. 홀딱 젖어서 집에 도착했는데..... 갑자기 떠올랐다. 내가 스터디카페 갈 때 우산을 들고 갔었다는 게 우산을 스카 앞 우산꽂이에.. 2023. 5. 30.
로그인 여부에 따라 바뀌는 로그인/로그아웃 버튼 만들기 로그인 상태에서는 로그아웃 버튼이 나오고(우측상단) 로그아웃 상태에서는 로그인 버튼이 나오도록 만들어보자. 식물친구들 Home My Plant Forum SignUp logout login 네비게이션 바는 부트스트랩에서 마음에 드는걸 하나 골라왔다. 나는 제일 우측에 로그인 버튼과 로그아웃 버튼을 만들었다. 이제, 로그인상황과 로그아웃 상황을 판단해서 두 버튼이 적절하게 나오도록 해야한다. 1. 서버측에서 로그인 여부를 판단해서 정보를 보내주는 api가 필요하다. 2. 그 api에 데이터를 요청해서 받아온 후 3. 로그인여부에 따라 다르게 나오도록 자바스크립트를 작성하면 된다. 1. 사용자 인증상태를 확인하는 API 작성 @GetMapping("/currentUser") @ResponseBody publ.. 2023. 5. 27.
인텔리제이 얼티밋 에디션을 받다 인텔리제이 학생 라이선스를 받으면 얼티밋 버전을 무료로 사용할 수 있다? 맞다. 구질구질했던 커뮤니티버전아. 이제 안녕 . . . 새로받은 얼티밋버전은 아이콘도 휘황찬란해졌다. . . . 끝. 2023. 5. 27.
HTML 무료폰트 적용하기 여기 구글폰트 사이트가 있다. https://fonts.google.com/ Google Fonts Making the web more beautiful, fast, and open through great typography fonts.google.com 원하는 폰트를 찾은다음, 필요한 폰트를 선택한다. 그리고 우측상단에 있는 저 테트리스같은 아이콘을 클릭하면... 이렇게 코드가 나옴. 이 태그들을 복사해서 html파일 헤드에 넣어주면 된다. 그리고 css에는 이걸 붙여넣으면 된다. (나는 폰트 뭐 두개선택해서 저렇게 두개가 나왔다) 만약, 모든 body태그에 적용시키고싶다면.. body{ font-family: 'Gowun Batang', serif; } css파일에서 이런식으로 작성해주면 된다. 적.. 2023. 5. 26.
로투스 휘낭시에, 뽀또 휘낭시에 맛있는 휘낭시에를 만들어보자. 계란3개 흰자만(약 100~110g) 분리해서 아몬드가루40g, 박력분 20g, 강력분 20g, 설탕 90g, 꿀 15g 넣고 잘 섞어준다. 버터 115g은 팬에서 잘 태워줬다. (사진은 아직 타기 전인데... 갈색 될때까지 태우면 된다. 처음엔 지글지글 보글보글 하다가 좀 타기 시작하면 고운거품들이 많이 생기면서 에스프레소처럼 됨. 그럼 그때 내리면 된다.) 태운 버터를 좀 식힌다음에(그릇에 손 댔을 때 너무 뜨겁지않고 좀 뜨끈한정도) 원래 반죽에 투하하고 잘 섞어주면 반죽 끝.(태운버터 팬에서 옮길때 체에 한번 거르고 쓰자) 진짜 간단하게 반죽 끝. 휘낭시에 팬에 50~70프로 정도 채운다음에 위에 토핑을 올려줬다. 원래는 기본휘낭시에로 많이 만들었었는데 감성까페 따라한.. 2023. 5. 23.
이거 왜이런거임 data-id="{{article.id}}" data-isAnonymous="{{article.isAnonymous}}" data-as="111" HTML 태그에다가 이렇게 데이터를 심어놨는데 (article.id는 Long, isAnonymous는 Boolean임) 이걸 출력해보면 isAnonymous만 undefined가 됨 따옴표도 빼보고 별짓을 다했는데도 저것만 안됨 {{article.isAnonymous}}만 따로 출력해보면 true로 잘 나옴. 왜그런거임 짜증나네 별시덥잖은거에서막혀서개같이시간낭비했네 const anonymous = {{article.isAnonymous}} if (anonymous == true) { const passwordInput = document.querySelect.. 2023. 5. 23.
구글에서 만든 AI언어모델 Bard(chatGPT같은거) 구글 검색창 하단에 Bard를 사용해보라는 문구가 보였다. Bard가 뭐지? chatGPT같은 대화형 AI이다. 한번 써보자. ....................... 대충 써본 결과 이런저런 질문을 해봤는데 뭔가 최신 정보를 알고있는것 같아서 놀라웠는데 알고보니 몇몇 대답은 그냥 구라였다 그리고 아직 챗지피티에 비해서는 말귀도 잘 못알아듣기도 하고... 그런듯 귀찮아서 글쓰는건 이만. 알아서 써보시길. 공짜니까. 2023. 5. 18.
@RequestBody를 적어야 됐던 일 회원가입할 때 중복유저가 있는 경우에는 에러메세지를 띄워 사용자가 봤으면 좋겠다는 생각을 했다. 우선 chatGPT한테 html과 JS 코드를 작성해달라고 했다. {{>layouts/header}} 회원가입 userId userPassword nickName save {{>layouts/footer}} 스크립트태그 안에서 fetch를 이용하여 post요청을 하도록 되어있다. 그럼 이제 컨트롤러에서 PostMapping해주면 되겠네. 하고 만들었는데? @PostMapping("/signUp") public String signUp(UserDto userDto){ userService.addUser(userDto); return "redirect:/"; } (대략 이렇게 작성함) 뭐가..데이터가 비어있어서 .. 2023. 5. 18.
Paging Paging 운영체제에서 메모리 관리를 위해 사용하는 기술 "페이징" 물리 메모리를 동일한 크기의 '페이지'로 분할하고, 각각의 프로세스를 이러한 페이지로 분할하여 메모리를 관리하는 방식이다. (프로그램 한 조각은 page, 메모리의 한 칸은 frame이다) 페이징 시스템은 각 페이지가 메모리의 특정 위치에 연속적으로 위치하지 않는다. 대신 페이지 테이블이라는 데이터 구조를 사용하여 각 페이지의 현재 위치를 추적한다. 페이징시스템은... -외부 단편화가 없다. -내부 단편화는 발생할 수 있으나 단편화의 양이 적다. (마지막 페이지에 한해 생기므로) Temporal Locality Spatial Locality Temporal Locality(시간적 지역성) : 특정 데이터 항목이 한 번 접근된 후, 가까.. 2023. 5. 15.
[JPA] 엔티티 수정시 Dirty checking(변경 감지), Merge(병합) JPA에서 엔티티 수정 시 사용되는 방식은 두 가지가 있다. Dirty checking(변경 감지) Merge(병합) Dirty checking : 영속성 컨텍스트에서 관리되는 엔티티의 변경 사항을 추적하고, 트랜잭션 커밋 시점에 변경 사항이 있는 엔티티를 데이터베이스에 반영하는 방식이다. Merge 방식 :준영속 상태인 엔티티를 다시 영속 상태로 변경하면서 모든 속성을 변경하고 데이터베이스에 반영한다. 우선, 물품의 정보를 수정하는 과정을 보자. 1. 수정 버튼을 누르면, 상품 수정 폼을 보여주는 페이지로 이동 더보기 상품 목록 페이지에 수정 버튼이 있고, 수정 버튼을 누르면 "/items/{id}/edit"으로 이동한다고 하자. 그럼 해당 url로의 get요청을 처리하는 코드가 필요하겠다. @GetM.. 2023. 5. 7.
Memory Management and Virtual Memory 운영체제의 메모리 관리와 가상 메모리는 컴퓨터 시스템의 메모리 자원을 효율적으로 사용하기 위한 핵심 기능이다. Memory Management: 프로세스가 실행되기 위한 메모리를 할당하고 회수하는 것을 담당한다. Virtual Memory: 물리적인 메모리 용량을 초과하는 프로세스의 실행을 가능하게 하는 기술 베이스 레지스터와 리미트 레지스터 쌍으로, 프로세스의 논리적 주소 공간이 정의된다. Binding of Instructions and Data to Memory 바인딩: 프로세스가 메모리에서 실행되기 위해, 명령어와 데이터가 메모리 주소와 연결되는 과정 이러한 바인딩은 크게 세 가지 단계에서 발생할 수 있다. 컴파일 타임 바인딩(Compile time Binding) 로드 타임 바인딩(Load ti.. 2023. 5. 6.
Viewing 3D world on 2D displays 3D viewing은 2D viewing 처리보다 복잡성이 높다. 2D 이미지를 생성하기 위한 과정 1. Specification of Projection Type: 투영 유형을 정한다. : 3D객체를 2D 디스플레이에 출력하기 위해 projection 기법을 사용해야 한다. projection(투영)으로 3D 객체를 2D로 변환할 수 있다. perspective(원근 투영) parallel orthographic(평행 정사영) 2. Specification of Viewing Parameters: 시점 매개변수 지정: 카메라 또는 관찰자의 위치와 방향, 시야 등을 설정한다. 3. Clipping in three Dimension: 3차원 클리핑 시점 매개변수에 따라 3D 공간에서 보이지 않는 객체나 부.. 2023. 5. 6.
CrossDevEnv, Kernel, BootLoader 교차개발 환경 Cross Development Environment 호스트에서 타겟을 위한 소프트웨어 개발을 수행하는 것. Tool Chain 컴파일, 빌드 과정에 필요한 도구, 라이브러리의 모음이다. TFTP 단순한 파일 전송 프로토콜 최소한의 메모리와 자원을 사용한다. 오류 복구 기능이 없다 보안 기능이 없다 NFS(network file system) 원격 시스템의 파일을 로컬 시스템처럼 접근할 수 있게 해주는 네트워크 파일 공유 프로토콜 클라이언트-서버 모델을 사용 Bootp 네트워크 환경에서 원격으로 시스템을 부팅하기 위한 프로토콜 라즈베리파이 부팅 First stage bootloader (부트롬): Raspberry Pi에 전원이 공급되면, SoC(System on Chip)의 내장 부트롬(.. 2023. 4. 25.
Embedded Linux Operating System -자원관리 -어플리케이션과 유저에게 서비스 제공(편리한 컴퓨팅 환경) 자원은 물리적 자원, 가상 자원으로 나눌 수 있음 물리자원: Processor, Memory, Disk,.. 가상자원: tasks, segments/pages, files, drivers, ... 임베디드 시스템과 OS OS없이 개발 가능 (아두이노 등) 장점: 개발이 쉽고 간단하다. 작고 최적화된 코드 단점: 복잡한 시스템을 개발하기 힘들다. 메모리,파일 관리가 힘들다. 배우기 힘들다.(HW에 관한 이해가 필요) OS OS의 종류 Android, IOS, Windows, RTOS(Real-Time OS): VxWorks, pSOS ... , UNIX, LINUX 임베디드 시스템에서 OS는 시스템이 커지면.. 2023. 4. 25.
728x90
반응형