본문 바로가기

728x90

개발공부

(52)
05. 08 JS 이벤트 버블링 : return false 이벤트 버블링되지 않기 때문에 동일 이벤트가 발생하지 않는 것이다. 태그에서 발생한 이벤트가 태그까지 전파되는 경우에 해당되며, 이 경우에 태그에 return false;를 추가하면 태그에서 발생한 이벤트는 태그에서만 일어나고 이벤트 버블링은 일어나지 않는다*이벤트 버블링이란?HTML 요소에서 이벤트가 발생할 때 DOM을 따라 상위 요소로 이벤트가 전파되는 메커니즘. 일반적으로 요소가 중첩된 경우 발생한다반대의 의미로 "이벤트 캡쳐링"이 있다
9월 백엔드 챌린지 정리 : 클린 코드 (4) ISP : Interface Segregation Principle 인터페이스도 작게 쪼개자 객체는 자신이 사용하는 기능(메서드)에만 의존해야 한다는 원칙에 따라 분리하는 것과 마찬가지로, 인터페이스는 그 인터페이스를 사용하는 클라이언트(객체)를 기준으로 분리해야 한다. 클래스(인터페이스)가 가진 책임의 크기를 줄일 수 있고, 관심사의 분리를 해낼 수 있으며 확장성을 가져갈 수 있기 때문에 필요하다 A 인터페이스를 상속하는 B와 C 클래스가 있다. B는 A의 모든 메서드를 사용하기 때문에 상속에 문제가 없지만, C의 경우 A의 모든 메서드를 사용할 필요가 없을 때, C는 사용하지도 않는 메서드와 의존성을 맺는 것이다. 이러한 경우, ISP를 위반하면서, A의 a-1 메서드(C가 사용하지 않는 메서드)에 ..
9월 백엔드 챌린지 정리 : 클린 코드 (3) SOLID - 1 1. SRP : Single Responsibility Principle - 객체를 변경시키는 요인은 무조건 하나여야 한다 책임이란, 객체에 의해 정의되는 응집도(행동과 관련된 상태를 한 클래스에 모이는 정도) 있는 행위의 집합으로, 객체가 유지해야 하는 정보(상태)와 수행할 수 있는 행동(메서드)에 대해 추상적으로 서술한 문장이다. 책임과 기능은 구분이 가능하고 그 크기가 다르다. 책임은 객체가 수행할 수 있는 행동을 종합적이고 간략하게 서술하기 때문에 기능보다 추상적이고 개념적으로 더 크다 커피 주문 서비스를 설계하면서, 필요한 기능으로 1) 주문받기 -> 2) 커피 제조 -> 3) 준비된 커피 전달의 3가지 기능에 대한 책임을 "Cashier" 객체에 할당하도록 구현했다 publi..
9월 백엔드 챌린지 정리 : 클린 코드 (2) 소프트웨어 모듈이 가져야 할 3가지 기능1. 필요한 기능이 오류 없이 제대로 동작 2. 변경이 용이한 코드 3. 누가 읽어도 이해할 수 있는 코드, 예상 가능한 동작을 수행하는 코드절차지향과 객체지향1) 절차지향 : 메서드와 프로세스의 역할을 분리해 프로그래밍하는 방식 ~ 프로세스는 데이터의 변경에 따라 영향을 받기 때문에 프로세스도 변경을 해야한다. 따라서 이는 변경하기 쉬운 설계가 아니다 ~ 변경하기 쉬운 설계는 한 번에 하나의 클래스만 변경할 수 있는 설계를 말한다. 1. 하나의 클래스에서는 하나의 처리만 실행될 수 있도록 설계한다(적절하게 나눈다) 2. 나눠진 프로세스를 해당 프로세스와 연관이 있는 데이터가 있는 클래스로 옮긴다 ~ 데이터와 프로세스를 한 곳에 둔다. 데이터와 프로세스가 동일 모듈..
CS 강의 12. 시간 자원과 시간복잡도 출처 : 내일배움캠프 0. 시간 자원 0 - 1. CPU 시간 자원 컴퓨터는 한정된 CPU를 여러 프로세스가 나누어 사용하므로, 효율적으로 사용하기 위해 CPU 스케줄러를 통해 시간 자원을 관리한다. 대부분 OS가 주관하지만, 사용자로서 잘 알고 있어야 한다 0 - 2. 메모리 시간 자원 CPU와 주 메모리의 시간 자원은 컴퓨터의 주 메모리 공간에 로드되어 CPU를 통해 연산하기 때문에, 연산하는 동안 사용하는 메모리를 점유 가능한 시간이 프로그램의 시간 자원이 된다. 알고리즘 테스트도 이 시간 자원을 최대한 효율적으로 줄이기 위한 목적이다 - 프로그램의 시간 자원은 기본적으로 메모리 상에 데이터를 조회/연산을 수행하는 동작 당 1개의 연산 단위로 두고 있다 => 수행 시간이 실행 환경에 따라 달라질 수..
CS 강의 11. 공간 자원과 공간 복잡도 출처 : 내일배움캠프 1. 공간 복잡도 1 - 1. 공간 복잡도 개요 - 프로그램을 실행 및 완료하는데 필요한 저장공간의 양을 뜻한다 = > 프로그램 복잡도는 시간 복잡도와 공간 복잡도로 나눌 수 있다 시간 복잡도 : 얼마나 빠르게 실행되는지 공간 복잡도 : 얼마나 많은 저장 공간이 필요한지 ~ 통상 둘 다를 모두 만족하기는 어렵다 - 시간과 공간 복잡도는 반비례하는 경향이 있다 - 최근 대용량 시스템이 보편화되며, 공간 복잡도보다 시간 복잡도가 낮은 것이 우선되는 추세 - 알고리즘 풀이시, 시간 복잡도를 우선하자 - 다만, 그렇다고 공간 복잡도를 소홀히 하면 안된다 총 필요한 저장공간 - 고정 공간(알고리즘과 무관한 공간) : 코드 저장 공간, 단순 변수 및 상수 - 가변 공간(알고리즘 실행과 관련있는..
CS 강의 10. HTTP/HTTPS 출처 : 내일배움캠프 1. HTTP 1 - 1. HTTP 개요 Hypertext Transfer Protocol - 서로 다른 시스템들 사이에서 통신을 주고받게 하는 가장 기본적인 프로토콜 - 서버에서 브라우저로 데이터를 전송하는 용도로 가장 많이 사용 - 전송되는 요청/ 응답 정보가 기본적을 암호화되지 않아 보안정보 도난의 위험이 있다 IP가 네트워크 계층, TCP가 전송 계층 프로토콜이라면 HTTP은 어플리케이션 계층 프로토콜이다 ~ 클라이언트와 서버 간 자원을 교환하기 위한 TCP/IP 기반 통신 프로토콜 1) 요청 정보 2) 응답 정보 특징 1) 단방향성 : 서버가 먼저 응답을 보낼 수 없고 클라이언트가 요청을 보내야만 응답할 수 있다(HTTP 2 이전) 2) 비연결성 : 클라이언트의 요청으로 서..
CS 강의 9. OSI 7계층 출처 : 내일배움캠프 1. 네트워크의 기본구조 1 - 1. 네트워크 - 네트워크 : 정보가 전송되는 경로 => 이러한 네트워크로 전세계 모든 컴퓨터를 연결하기 위해 1. 통신 장비 :어떻게 연결할지 2. 통신 역할 : 각 장비가 어떤 역할을 할지 3. 통신 규칙 : 각 장비는 서로 어떤 규칙을 가지고 정보를 주고 받을지 이 필요하다 LAN vs WAN 1) LAN : 사무실이나 빌딩 등 비교적 좁은 범위의 네트워크 2) WAN : 서로 떨어진 LAN 사이를 전용선 등으로 연결한 광역 네트워크 ~ 와이파이 공유기의 인터넷 선이 WAN 포트 ~ WAN으로 건물과 통신사 중계기(ISP), 나아가 네트워크 시스템(SDN)을 연결한다 1 - 2. 클라이언트와 서버 클라이언트 vs 서버 - 클라이언트 : 네트워크 ..

728x90