프로그래밍31 [자료구조] # 3. HashMap vs HashTable 일단 이 차이는 다른 언어는 모르겠는데 Java에서는 두 자료구조가 다르다. 그래서 위 제목이 질문으로 들어온다면 Java 기반으로 질문하신거다. 일단 Hash가 무엇인가.키 → 값을 변환시키는 것을 해싱(Hashing) 이라 한다.구체적으로 가변길이를 가지는 Input 데이터 → 고정된 길이를 가지는 해시값(Output 데이터) 변환이다. 이렇게 고정된 길이 값을 가지는 해시값은 이제 또 다시 "인덱스화" 되어, 그 해시값과 매칭되는 실제값을 찾아준다.이런 개념이랄까. ok. 그러면 해시맵이랑 해시테이블 차이가 뭔가 둘의 가장 큰 차이는 Thread-Safe 유무이다. 해시테이블 같은 경우는 각 데이터 변경 메서드가 동기화 선언이 되어있다.그래서 메서드 호출을 하면 스레드간 동기화 락이 걸려져 있는 상.. 2024. 7. 18. [JS] # 1. 호이스팅 (Hoisting) & TDZ (실행컨텍스트와 var,let,const) 호이스팅은 JS를 다뤄본 적이 없으면 처음 듣는 개념일 수도 있다.이름 그대로 해석하자면 "끌어올리다" 라는 뜻인데, JS만의 특별한 기능이다. print(a)a = 5; 이 코드를 vscode에서 돌려보면 a가 정의되지 않았다며 NameError가 뜬다.당연하다. 코드라인을 탑다운 식으로 읽어가고 있으니까! console.log(a);var a = 5; 근데 얘는 심상치가않다. vscode에서 파이썬 코드를 작성하면 벌써부터 에러 표시 밑줄이 뜨는데, 얘는 아니다.설마? 하고 돌려보면 "undefined" 라는 문구가 출력될뿐, 에러라고 표현되지는 않는다. 왜 그럴까? 이게 바로 호이스팅이다.호이스팅은 일단 변수가 어디서 선언, 초기화, 할당되었든 최상단으로 "끌어올려진 것" 처럼 동작된다. 그럼 여.. 2024. 7. 18. [JS] # 0. 서버 사이드 렌더링 vs 클라이언트 사이드 렌더링 먼저 위 2가지 특징을 쓰기 전에, 렌더링에 대한 설명이 필요할 것 같다.렌더링 : HTML/CSS 를 각각 Parser를 통해 개발자가 작성한 문서를 읽고 화면에 결과물을 그려내는 작업 일단 이것만 봐도 이해가 확 와닿진 않을 것이다.지금 우리가 보고 있는 이 화면도 HTML문서로 작성이 되었고, 폰트나 색깔, 레이아웃 배치 등등은 CSS로 작성이 된 것이다. 당장 네이버를 키고 F12를 누르면 바로 현재 보고 있는 화면이 어떤 코드들로 이루어졌는지 알 수 있다. 이게 지금 현재 네이버 메인화면의 개발자도구(F12) 화면이다. 한눈에 다 보긴 어렵지만, 오른쪽 사이드바에 "DOM Breakpoints"라는게 보일 것이다. DOM. 오늘은 이거에 집중해보자. DOM은 HTML의 구조를 보여주는 것인데.. 2024. 7. 18. [자료구조] # 2. Set vs Map 꽤 자주 등장하는 자료구조 질문이다.Set이 뭐고 Map이 무엇인가? 일단 파이썬에서의 Map과 Java 또는 JS에서의 Map은 다르다.파이썬에서의 Map은 보통 아래처럼 사용하는데arr = list(map(int,input().split()))입력을 받을 때, 모두 int형태로 통일받겠다는 뜻이다. 단순히 각 요소에 타입이나 함수를 적용하는 식! JS에서는// 생성let map = new Map();// 세팅map.set('key1', 'value1');map.set('key2', 'value2');map.set(3, 'value3'); // 숫자 키map.set({a: 1}, 'value4'); // 객체 키// 접근console.log(map.get('key1')); // 'value1'conso.. 2024. 7. 17. [DB] # 0. DB 트랜잭션 DB 쪽에서 꽤 자주 등장하는 질문으로는 트랜잭션의 4가지 특징일 것이다.그전에 트랜잭션이 무엇이냐? 트랜잭션은 SQL(질의)를 통해 데이터베이스에 변화가 일어나는 작업, 또는 그런 작업의 연속적인 단위를 말한다.너무 교과서적인 말을 한거 같은데, 이 블로그를 예시로 들어보겠다. 나는 지금 이 글을 쓰기 위해, 1) Database 카테고리를 선택2) 글 작성 중3) 포스팅 이렇게 3단계의 작업을 걸쳤는데, 이 3단계를 통해 "글이 하나 등록" 되었으면 이게 트랜잭션 하나가 수행된 것이라고 보면 된다. 꼭, 저 3단계 작업을 진행했으니 트랜잭션이 3번 일어났구나! 라고 말하진 않는다. 가끔 트랜잭션의 정의에 "최소" 라는 말이 들어가있어서 그런가 잘게잘게 쪼개서 생각하곤 하는데 아니다. 다시 말하자면 트.. 2024. 7. 15. [자료구조] # 1. 배열(Array)과 리스트(List)의 차이 은근 많이 나오는 질문인데, 그냥 무지성 파이썬 입문하다보면 이 두 개념의 차이에 대해 잘 모를 수도 있다. 일단... 질문은 저렇게 러프하게 나오지만 정확히는 정적배열과 연결리스트의 차이를 염두한 질문 같다.배열도 넓은 범위에서는 "선형 리스트" 에 속하기 때문이다. 아마 Java를 쓰시는 분들이라면 ArrayList vs LinkedList에 대한 질문임을 캐치하셨을 것이다. 일단 정적배열이라 함은.. 배열을 선언할 때, 그 크기를 미리 정해두는 것을 시작으로 한다.int arr[5] = {0,}; 그럼 이런 배열의 특징이 무엇일까.연속된 메모리 주소에 값이 할당된다.인덱스로 접근하는 탐색 방법이라 조회 속도는 빠른데, 삽입/삭제가 느리다. 삽입/삭제가 느린 이유는 맨 끝이 아닌 다른 부분의 경우다... 2024. 7. 14. 이전 1 2 3 4 ··· 6 다음