본문 바로가기

개발 관련 부가 지식

(31)
디자인패턴이란? 디자인패턴 ✔ -> 개발 과정에서 비슷한 유형을 패턴으로 정리한 것 -> 디자인 패턴 사용 이유는 코드 형태가 비슷하면 유지보수나, 협업에도 도움이 되고, 검증된 구조임 -> 목적에 따라 생성패턴, 구조패턴, 행동패턴으로 나뉘어짐 생성 패턴 -> 객체의 생성에 관련된 패턴으로 객체의 생성절차를 추상화하는 패턴 -> 종류 : 추상팩토리, 빌더, 팩토리 메소드, 프로토타입, 싱글톤 패턴 등이 있다. 싱글톤 패턴 이란? 인스턴스를 오직 1개만 생성하는 패턴이다. ex) 스프링에선 스프링 Core가 빈 컨테이너에서 싱글톤 객체를 관리 해준다. ex) 스레드 풀에선 DB 연결에 필요한 커넥션을 미리 만들어놓고 재사용하는데 이 또한 싱글톤 패턴이다. 팩토리 메소드 패턴 이란? 객체를 직접 생성하지 않고, 객체를 생..
웹 url 동작 과정, 쿠키와 세션, Rest api 브라우저에 URL을 치면 일어나는 일 👀 ex) 브라우저 도메인(www.naver.com) 입력 -> DNS(도메인 네임서버)에서 해당 도메인 IP주소를 받아옴 -> 브라우저가 Http Request message를 만듬 -> OS의 프로토콜 스택에 따라 패킷을 LAN 어댑터로 전달 -> LAN 어댑터는 전기신호를 만들어 LAN 케이블로 송출 -> 허브,스위치, 라우터 등을 경유하여 ISP(통신사)에 전송 -> POP를 거쳐 인터넷 핵심부에 들어가고 고속 라우터를 통해 상대방 서버에 도달 -> 상대 서버 LAN 방화벽에서 패킷 검사 후 이상이 없으면 캐시 서버로 패킷 전달 -> 캐시 서버에 응답데이터가 있을 경우 응답하고 없으면 웹서버로 전달 -> 웹서버에 패킷이 도달하면 패킷의 알맹이를 추출하여 Htt..
자바란, JVM 구조에 대해서 정리 자바가 나온 이유 -> 이전에는 Mac, Window 등 다른 운영체제마다 개발자가 코드를 다르게 짜줘야 했지만, 자바는 운영체제 위에 띄우는 JVM이라는 가상머신이 개발자의 코드를 운영체제에 맞게 변환시켜주기 때문에 운영체제를 가리지 않고 동일한 소스코드를 사용할 수 있게 되었다. 객체지향 프로그래밍 -> 자바는 객체지향 프로그래밍 언어임 -> 객체지향 프로그래밍 특징은 아래와 같음 추상화 : 어떤 실체로부터 공통적인 부분이나 관심 있는 특성들을 뽑아 한 곳에 모으는 것을 의미 캡슐화 : 외부와의 낮은 결합도, 내부에서의 낮은 응집도를 추구하기에 캡슐 내부의 로직이나 변수들을 감추고 외부에는 기능(api)만을 제공하는 것을 의미 상속 : 클래스를 재사용하는 것이다, 클래스를 상속하면 멤버변수나 메소드를..
자료구조 기초 정리 자료구조란 1. 선형 자료구조 (앞과 뒤가 있고, 순서가 있다) 배열(array) -> 논리적인 순서와 물리적인 순서가 같음, 배열이 중간에 빌 수가 없음 배열의 장점: index 연산을 할 수 있어 검색이 빠름 O(1) 배열의 단점: insert , delete를 할 때 O(n)의 시간이 걸림 연결리스트(LinkedList) -> 노드를 사용, 값이 추가할 때 마다 메모리를 할당 받고, 값은 서로 링크로 연결, 데이터의 물리적 위치와 논리적 위치가 다를 수 있음 장점 : 배열에 비해 insert, delete 가 빠름 단점 : index 연산이 불가능, 검색이 느림 스택 -> 후입선출(LIFO, Last-In-First-Out) 구조로 마지막 데이터가 먼저 나오게 된다. 큐 -> 선입선출(FIFO, F..
데이터베이스 기초 용어 정리 DBMS란? 🤷‍♂️ (Database management System) -> 데이터베이스 내 데이터에 접근하도록 도와주는 시스템 -> 크게 질의처리기와 저장시스템으로 이루어져 있다. -> 사용자가 입력한 SQL을 해석해주고 데이터를 접근하게 해준다 ex) mysql ,oracle, mongoDB 👍 트랜잭션의 특징 ACID 👀 A: 원자성, 한 트랜잭션 내 실행한 작업은 모두 성공하거나, 실패해야 한다. C: 일관성, 트랜잭션의 작업 처리 결과는 항상 일관성이 있어야 한다. I : 격리성 , 동시에 실행된 트랜잭션을 서로에게 영향을 미치면 안된다. D : 지속성, 트랜잭션이 한번 성공해서 반영되면 영구적으로 유지되야 한다. NOSQL -> Not Only SQL의 약자이다. -> SQL 과는 다르게 스..
addEventListener 위임에 대해서 box1 box2 box3 위와 같은 html 구조가 있다고 할 때 box1, box2 box3 에 addEventListener를 붙일려고 하면 아래와 같이 붙일 수 있는데 이렇게 각 box에 일일히 addEventListener붙이면 객체가 늘어날 수록 성능상으로 안좋기 때문에😫, addEventListener 위임을 적용하여 개선 시킬 수 있는데 addEventListener 위임을 적용하면 아래와 같다. addEventListener에 실행파라미터에 함수를 넣을 때 함수 파라미터에는 자동으로 event 객체가 들어가게 된다 (난 줄여서 e로 씀) 이 event 객체에는 e.currentTarget 과 e.target이 있는데 e.currentTarget 은 this와 같고, addEventList..
인코딩, Charset, base64, 아스키 용어 정리 필수 지식 ✔ 컴퓨터는 문자를 읽을 수 없다 -> 01010110 등과 같은 이진법 숫자를 읽을 수 있다 ( 0과 1 데이터는 이진데이터, binary data 라 불림, 모든 data는 바이너리 데이터) -> 따라서 우리가 컴퓨터를 가운데 두고 문자를 주고 받을 때에는 문자를 이진법 숫자에 매칭시켜서 컴퓨터한테 줘야한다. 1. 인코딩 (encoding) 아주 넓게 얘기하면 데이터를 변환하는 것이다. 좁게 얘기하면사람이 읽을 수 있는 데이터를 컴퓨터가 읽을 수 있는 부호로 전환해주는 것이다. (각 분야마다 정확한 뜻은 다르고 변환한다는 뜻은 같다.)🤷‍♀️ 2. 디코딩 (decoding) 디코딩은 인코딩의 반대 개념이다. 3. Charset charset은 인코딩 규칙(프로토콜)이다, 어떤 이진수 숫자가..
멀티쓰레드 Test code 작성 및 동기화 방법 동시성 공부 중, 테스트코드를 작성하면서 새로 사용한 java 라이브러리 정리✨ !! 1. 멀티쓰레드를 구현해주는 ExecutorService code -> ExecutorService executorService = Executors.newFixedThreadPool(int Threads); (FixedThreadPool은 고정된 개수를 가진 쓰레드풀이다) 2. 다른 스래드에서 수행중인 작업을 완료될때까지 대기하도록 도와주는 CountDownLatch CountDownLatch latch = new CountDownLatch(threadCount); 사용 예제 @Test public void 동시_80개의_요청() throws InterruptedException { int threadCount = 8..

728x90
반응형