728x90
반응형

Computer Science 21

TCP 3way, 4way handshake

TCP의 송수신 방법 참고) 세션 계층에서의 파일을 추상화한 것이 소켓 소켓에서 패킷을(사실은 세그먼트)를 받아 프로세스 식별자인 port를 통해 stream이 된 데이터를 분배한 즉, user mode application에서 process가 어떤 파일에 Stream 데이터를 write하는 과정을 생각해보자 Stream 형태의 데이터를 kernel인 TCP 즉 transport 계층을 만나 세그먼트로 분해가 되고, segment를 IP 계층 즉, Network 계층으로 내려보내면 packet으로 묶인다 이 packet을 하드웨어로 내려보낼 때는 Frame이라는 이름으로 보낸다. 클라이언트 , 서버가 있을 때 그림은 이렇다 소켓 = TCP,IP의 추상화 Step 1 (SYN): 처음으로, sender는 ..

프로그래머스 멀쩡한 사각형 풀이과정

https://school.programmers.co.kr/learn/courses/30/lessons/62048 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 인터넷에 정답 코드는 많으니 이 글에서는 풀이를 끝까지 밀고나갈 수 있는 아이디어에 대해 얘기해보고 싶다. 가로 세로 주고는 잘린 사각형 개수 규칙을 찾으라고 하면 눈물이 앞을 가릴 수도 있다 특히 w+h-1을 간단명료하게 내는 게 이해가 안 될 수도 있다 그렇지만 자 아 아 알 생각해보면 논리적이다 대각선으로 가로지르려면 무조건 가로 폭만큼 세로 길이 만큼은 어찌됐든 이동해야 한다 그런데 터벅터..

데이터베이스 정규화의 필요성: Anomalies &Normalization

데이터베이스 정규화는 말로는 많이 들어봤지만, 구체적인 필요성에 대해서는 모호하게 알고 있었던 것 같다. 데이터 중복의 문제점에는 - 유지 보수, 수정 등에 불리 - 메모리와 자원 낭비 - 에러나 데이터 불일치 발생확률 높임 등이 있다고 하는데 구체적으로 어떤 문제가 있게 될까? Insert, Update, Delete를 기준으로 살펴보자 Insertion Anomalies 부서와 직원을 저장하는 테이블이 있을 때, 만약 정규화를 고려하지 않고 데이터베이스를 설계했다고 하면 이렇게 될 것이다. 직원 id를 식별자로 한 테이블에 부서 정보가 함께 들어가 있다. ✅에러, 데이터 불일치 확률 매번 부서코드와 부서 이름이 새로 작성되어 들어오기 때문에 이용자의 오타나 서버 내부적인 오류를 그대로 데이터베이스에 ..

Computer Science 2023.01.19

맨날 헷갈리는 Origin Site Host 개념 구분하기 CORS와 CSRF 이해하기

⚓들어가며 도커 컴포즈를 쓰기 위해 책을 보다가 '같은 호스트일 때는 괜찮지만 다른 호스트에서 요청이 들어온다면'이라는 표현이 자꾸 나와서 도대체 호스트는 무엇인지 알아보게 됐다. 한편, Origin과 Site의 개념도 구분 방법이 불분명한 것 같아서 전체적으로 용어를 정리해보았다. Host 네트워크에 연결이 된 컴퓨터(노드) 네트워크를 이용하기 위해 네트워크 주소가 할당된 노드 *노드: 네트워크 공간 상에 있는 모든 장치 종류 네트워크를 이루는 호스트(스위치, 모뎀, 허브 등) 네트워크 상에서 호스트끼리 데이터를 주고받을 수 있도록 중간자 역할을 하는 노드 네트워크를 이용하는 호스트=엔드포인트(단말기) FQDN :www.naver.com DNS상 노드(호스트)의 정확한 위치를 표현하는 Fully Qua..

[OS] Stallings 저 Operating System Ch2. 운영체제의 목적 및 기능

🚀조선시대 똥컴과 시작한 운영체제 공부.... 고작 2년 전에 산 것 같은데 어느새 죽어가는 나의 그램 17인치... 원래 CS과목 중 하나이기도 하지만 노트북이 아주 느리지 않았다면 굳이 궁금해하지 않았을 것 같다. 이왕 공부하게 된 것, 잘 정리해보자 싶어 시작한 Stallings 저 운영체제 내용 정리! 동일한 내용은 깃허브에 먼저 업데이트하고 있으니 가장 빨리 받아보고 싶다면 레파지토리 별⭐을 눌러주시길 https://github.com/Tldkt/-Stallings-Operating-System-summary GitHub - Tldkt/-Stallings-Operating-System-summary: Stalling 저 운영체제 학습내용을 정리합니다. Stalling 저 운영체제 학습내용을 정리..

Computer Science/OS 2022.09.14

JPA 연관관계 매핑, 상속관계 매핑

🚩들어가며 연관관계 매핑이 좀 헷갈려서 심화내용과 함께 정리하면 좋을 것 같다. 특히 양방향 단방향이 너무 헷갈린다 문법적인 암기사항만 정리해봤다 🌱연관관계 매핑 N : 1 단방향 N쪽 테이블과 매칭할 클래스에 @ManyToOne @JoinColumn(name ="매핑하려는 컬럼명") N : 1 양방향 단방향 + 1쪽 테이블과 매칭할 클래스에 @OneToMany(mappedBy = "N쪽의 FK 가진 필드명") mappedBy 를 쓰는 이유는 읽기전용으로만 활용하기 위함이다 실제로 mappedBy 쪽에 데이터를 넣어도 저장되지 않는다 그러나 객체지향적 설계에서 1쪽에 객체를 넣는 것이 자연스러우므로 연관관계 편의 메서드를 생성해 1)Setter보다는 직접 작성으로 2) N, 1객체 모두에 입력할 수 있도..

객체지향 설계의 3가지 관점과 코드예제

객체 지향 설계 속의 상호 연관된 관점 3가지개념관점도메인 내의 개념, 개념 사이의 관계 표현명세관점소프트웨어의 관점→객체의 인터페이스 관점객체가 협력을 위해 무엇을 할 수 있는가?ex:인터페이스와 구현 분리 구현 관점객체들이 책임을 수행하기 위해 필요한 동작하는 코드 작성객체의 책임을 어떻게 수행할 것인가? 클래스는 세 가지 관점을 모두 수용하며, 이 관점을 식별할 수 있도록 깔끔하게 분리해야 한다 역할, 책임, 협력을 이용한 인터페이스 식별협력 참여를 위해 객체가 수신해야 하는 메시지메시지가 모여 인터페이스 구성→인터페이스 관점(명세 관점) 커피 전문점 도메인커피 전문점에서 커피 주문하기를 객체 협력 관계로 해석해보자💡동네의 작은 커피 전문점, 세 가지 메뉴가 적힌 메뉴판을 보고 손님이 커피를 주문하..

SQL Join 정리:: Left JOIN 코드예제

🚩들어가며 SQL을 처음 배웠는데 다른 건 다 그럭저럭 할 만 했지만 JOIN문이 유독 어려웠다. LEFT RIGHT의 기준은 무엇이고, JOIN 자체는 어떤 개념인지 확실하지 않았다. 그래서 구체적인 예시와 함께 LEFT JOIN을 정리해봤다. 👀사전 지식 JOIN에 대한 기본 개념을 읽어보고 오시는 걸 추천합니다! https://www.w3schools.com/sql/sql_join_left.asp https://www.geeksforgeeks.org/sql-join-set-1-inner-left-right-and-full-joins/ 🌱JOIN의 특성 FROM 뒤 테이블이 기준이다 SELECT 필드이름 FROM 기준 테이블 LEFT JOIN 붙일 테이블 INNER JOIN 외에는 전부 OUTER J..

Computer Science 2022.08.05

캡슐화는 정보 은닉이 아니다(번역) encapsulation, cohesion, coupling

원문 링크 클릭 🚩들어가며 캡슐화에 대해 학습하면서 접근제어자를 배우고, 정보 보호와 은닉이 주 목적이라고 학습하면서, 동시에 getter, setter 메서드를 배우니 의아함을 지울 수 없었다. 어차피 수정하게 할 거면...이게 어떻게 보호죠?( 이 부분에 대한 답변은 참고자료 1번에 있다) 아무튼, 시작해보자! 🌱데이터 은닉이라는 설명이 부족한 이유 객체지향의 목적에 반한다? 값을 private으로 숨기게 되면, 임의로 값을 저장하는 걸 막을 수 있고, DI 자동화를 위한 필드를 선언할 수 있는 등 여러 장점이 생기지만, 현실적으로는 이러한 은닉이 코드 전반의 결합성을 올려 불필요하다는 의견도 있다.(링크 참고) 또한 객체지향 방법론의 기둥으로 캡슐화를 설명하면서, 캡슐화를 단순히 데이터 은닉과 보호..

For문 중괄호 생략 이유, For - while 문 구조 정리

🚩들어가며 For문은 혼자 쓰이면 간단하지만, if나 while과 함께 쓰일 때 구조가 처음에는 많이 헷갈리는 듯하다. 눈으로만 봐서는 어디까지가 루프의 시작과 끝인지 알기 어려워 순서도(flowchart)를 그려보는 게 좋은데, 이때 중괄호가 생략되면 더 큰 혼란에 빠지게 된다. Do it! 알고리즘 자바 편을 공부하다 교재 오타인지 내가 모르는 문법인지 헷갈렸는데 다른 사람들은 나처럼 혼란스럽지 않길 바라는 마음으로 글을 시작한다! 👀사전 지식 For문의 기본 문법 While 기본문법 If문 기본문법 위 링크들을 먼저 읽어보고 오면 좋다! 🌱오늘의 소스코드: 빠르게 이해되나요? 1. for-if문 public class SeqSearch { static int seqSearch(int[] a, int..

728x90
반응형