전체 글

전체 글

    [타입스크립트] Call Signatures

    TS의 다양한 함수 표현 중 Call signiture에 대해 찾아보던 중, TS핸드북의 예제 코드가 이해되지 않았다. 스택오버플로우의 친절한 설명덕에 이해할 수 있어 정리해본다. Call Signitures 타입스크립트에서, interface로 function을 정의하는 것은 콜 시그니쳐를 추가해주면 가능해진다. type Add = (a:number, b:number) => number; const add:Add = (a,b) => a+b 프로퍼티로 호출 가능한 것을 설명하려면 객체 타입에 Call Signature을 작성할 수 있습니다. Call Signatures는 다음과 같이 함수의 매개 변수(parameter)와 반환 타입을 지정합니다. // JS에서는 fucntion도 object이기 때문에 ..

    [네트워크] IP 주소와 서브네팅

    IP 주소란? 인터넷 주소로 전 세계 주소를 IANA에서 대륙별로 할당, 관리한다. 네트워크 장비 식별을 위해 고유한 IP 주소 사용 32bit로 이루어진 주소 (약 43억개) bit는 2진수 한자리(0 or 1) 2진수 8자리를 묶어서 1Byte 혹은 1옥텟이라 부름 1옥텟은 8비트로 2^8이 되니 32bit인 IP주소 개수는 2^32으로 약 43억개 따라서 0.0.0.0 ~ 255.255.255.255(호스트ID) 까지 사용! 실제 네트워크 장비는 IP주소로 2진수를 사용하지만 사람이 볼때는 10진수로 변환해 표기(Dotted Decimal Notation) IP 주소 Class A 클래스 처음 한 비트는 항상 0 -> 따라서 십진수로 1~127 그러나 첫 옥텟이 0과 127로 시작하는 주소는 예약이..

    [북TIL] 파이썬알고리즘인터뷰 6. 문자열 조작

    오늘 TIL 3줄 요약 깔끔하고 빠른 코드를 위해선 리스트 컴프리헨션, 람다 표현식, 정규식을 잘 다룰줄 알아야 함. python의 유용한 메서드는 반드시 기억 같은 기능을 필요로 할때, 처리시간이 빠른 방법을 택하려면 결국 메서드 실행 시간을 알아야함. ex- 문자열 슬라이싱 > reverse() > reversed()+join() > for 반복 > while반복 > 재귀(슬라이싱의54배) TIL (Today I Learned) 날짜 2022.07.21. THU ~ 07.27 WED 오늘 읽은 범위 파이썬알고리즘인터뷰 - 6장 문자열조작 책에서 기억하고 싶은 내용을 써보세요. isalnum() isdigit():숫자 여부인지 판별해준다. 실수나 음수는 판단불가해서 False 반환 a = "1" b =..

    파이썬 알고리즘 인터뷰 5장 리스트, 딕셔너리

    오늘 TIL 3줄 요약 파이썬의 자료형은 모두 객체 다양한 모듈들, 특히 딕셔너리와 관련된 특수 형태의 컨테이너 자료형들을 활용하자 defaultdict, Counter, OrderedDict TIL (Today I Learned) 날짜 2022.07.20. WED 오늘 읽은 범위 파이썬 알고리즘 인터뷰 5장 리스트, 딕셔너리 책에서 기억하고 싶은 내용을 써보세요. 파이썬은 모든 것이 객체다.리스트 또한 객체에 대한 포인터목록을 관리하는 형태로 구현되어 있다. // CPython 에서 리스트는 요소에 대한 포인터목록을 갖고 있는 구조체로 선언되어 있다. typeof struct { PyObject_VAR_HEAD PyObject **ob_item; // 포인트 목록으로 사이즈를 조절하는 형태로 리스트요소..

    [파이썬] 백준 2798번 블랙잭

    백준 2987번 블랙잭 브루트포스 문제 처음 내 접근 방법은 리스트 내 요소를 3개씩 뽑고 새로운 리스트에 담기. 그 과정에서 목표숫자가 나오면 즉시 return하며 종료 나오지 않을 경우 새롭게 만들어진 리스트에서 이진탐색으로 값 출력하는 방법으로 풀었었다. 코드로하면 아래와 같다. import sys # 이진탐색을 위한 bisect from bisect import bisect_left, bisect_right cards, goal = map(int, sys.stdin.readline().split()) numbers = list(map(int, sys.stdin.readline().split())) # 더해진 값들을 담아줄 리스트 sum_list = [] def blackjack(goal, numb..

    데이터베이스의 병행제어기법

    데이터베이스의 병행제어 병행제어란 ? 여러개의 트랜잭션이 동시에 수행될 때 DB의 일관성을 파괴하지 않도록 트랜잭션간의 상호작용을 제어하는 것 병행(concurrency)는 매우 빠르게 여러 트랜잭션 사이를 이동하면서 조금씩 처리를 수행하는 방식 병행 제어의 목적은 일관성 외에도, DB 공유도 최대화, 시스템 활용도 최대화, 사용자 응답 시간 최소화 등이 있다. 병행 제어를 하지 않을 경우 트랜재션들이 동시에 DB에 접근하며 문제가 생긴다. 병행제어에 실패한다면 갱신 분실 (Lost Update) 같은 데이터에 둘 이상의 트랜잭션이 동시에 갱신할 때, 갱신 결과의 일부가 없어지는 것. 동일한 데이터 X에 값을 더하는 두 트랜잭션이 있을 때, 후행하는 트랜잭션은 선행 트랜잭션 값이 더해지기 전의 값을 받아..

    인터페이스 모듈 연계 방식 EAI와 ESB

    시스템 통합의 문제 메인 프레임에서 유닉스 시스템으로 내려오면서 시스템들은 업무 단위로 분리되기 시작했다. 이렇게 나눠진 시스템 사이에는 통신이 필요했고, 시스템이 커지면서 시스템간 P2P로 직접 통신하는 구조는 한계에 이르렀다. 이 문제를 해결하기 위해 등장한 솔루션이 EAI, ESB다. 내,외부 모듈 연계 방법에 따라 나뉜다. 모듈 연계란 내/외부 모듈 간 데이터 교환을 위해 관계를 설정하는 것 시스템에서 인터페이스를 위해 외부 및 내부 모듈을 연계하는 대표적 방법에는 EAI, ESB방식이 있다. 두 방식의 큰 차이는 구성 방식이 중앙집중형 vs 버스형태 EAI 방식 중앙의 EAI가 허브역할을 하면서, 모든 통신이 EAI를 거친다. 이 EAI에는 어댑터들이 붙어있다. 어댑터를 통해 표준화 되지 않은 ..

    [북TIL] 파이썬 알고리즘 인터뷰 1~3장

    오늘 TIL 3줄 요약 파이썬이 왜 코테에 유리한가(코드잼, 카카오 공채 응시 언어별 통계로 확인) 파이썬과 다른 언어들의 반복문, 구조체, 클래스 구현 구조체, 동적 타이핑 언어, 제네릭 프로그래밍이란? 파이썬의 인덴트는 공백 4칸(PEP 8) 좋은 코드는 얼핏 쳐다 보기만해도 향기가 난다. TIL (Today I Learned) 날짜 2022.07.14 THU 오늘 읽은 범위 파이썬알고리즘인터뷰(상길북)1~3장 책에서 기억하고 싶은 내용을 써보세요. 파이썬은 동적 타이핑 언어로 사용하기엔 매우 편하지만, 타입을 명시하지 않으면 가독성을 낮추고 버그 발생 확률이 높아진다. # 타입을 명시하는 예 from typing import TypeVar # 파이썬의 typing 내장 패키지가 파이썬을 정적 타입으..

    자바스크립트의 비동기 처리

    > 비동기처리란 특정 코드 연산이 끝날 때까지 기다리는 것이 아니라, 멈추지 않고 다음 코드를 실행하는 특성 서버에서 응답을 언제 줄 지 모르기 때문에 다양한 요청을 비동기로 처리 > 문제점 비동기 처리 방식은 효율적이지만 때로 문제를 일으킴 API에서 응답을 받고 처리해준다던지 페이지가 완전히 로드되기 전에 응답을 받아와 빈 값을 리턴하는 경우가 있었음 > 해결방법 콜백함수 사용 그러나 콜백함수는 중첩될 경우 가독성이 떨어지고 로직 변경도 어려움 /// 예시 $.get('url', function(response)) { parseValue(response, function(id) { auth(id, function(result) { display(result, function(text) ..

    절치부심

    I'd started work out at 22. Back then, I couldn't realize the importance of STEADINESS. I worked out 3 or 4 times a week, but I wasn't consistent. I didn't make my body great with these effort. As time passed, my body gradually improved as I exercised steadily and managed my diet, whether I liked it or not. This experience taught me a lesson about the importance of persistence. Focusing on dista..