목록

2019년 3월 1일 금요일

프로그래밍 공부하기 좋은 사이트 모음






프로그래밍 공부하기 좋은 사이트 모음!










1. 부스트코스



가장 최근에 알게 된 사이트.

안드로이드 앱을 만드는 강좌를 하나 봤는데
한 강좌 안에,
단계마다 세부 단계가 있고,
세부 단계마다 강의 영상이 또 여러개로 나누어져있다.
스크롤을 안내렸으면 강의가 여러개인지 모르고 넘어갔을 듯.






수학, 영어, 비즈니스 등
부가적으로 학습할 수 있는 강좌도 있다.










2. 오픈튜토리얼스 - 생활코딩



아마 가장 많이 알고있는 사이트 중 하나일 듯.
한 때, 
생활코딩의 운영자 egoing 님을 어떻게 모를 수 있냐는 소리를 들었다...






지옥에서 온 Git ㅎㅎ










3. 인프런



서비스하는 강의가 총 450개가 넘는다.
무료도 많고, 유료도 많다.

희한한건, 내가 못 찾는건지
카테고리 별로 강좌를 탐색하기 위한 '분야별 강좌' 메뉴를 만나기가 힘들다.
로그인을 안하면 '분야별 강좌' 메뉴가 없다가
로그인을 하면 메뉴가 '분야별 강좌' 메뉴가 똥! 생긴다거나,
(그것도 어떤 강의를 클릭해서 페이지로 갔을 경우)

홈에서 분야별로 강좌를 찾아보려면,
검색창을 통해 검색을 하면 카테고리를 볼 수 있다.






과정마다 강의 수, 총 소요 시간 등
한눈에 볼 수 있어서 학습을 계획하기 편하다.










4. 프로그래머스



예전에 헬로월드라는 이름으로 접속했던걸로 기억하는데
언젠가부터 프로그래머스로 바뀌었다.
동영상 강의와 간단한 테스트 문제로 구성된 강좌들을 서비스한다.
프로그래밍 대회, 개발자 채용, 프로필 등록 후 입사제안 받기 등
예전에는 없던 메뉴가 많이 생긴걸 보면 운영을 확장시키는 중인가?






코딩 문제가 레벨별로 마련되어 있다.
예전에 알고리즘 문제 풀겠다고 돈 내고 단기 학원을 다니고
월 정액을 내고 코딩 문제 사이트를 이용하거나 했는데...










5. w3schools



프론트엔드 공부 시 참고하기 좋은 사이트.
Try it Yourself 로
바로 코드를 테스트해 볼 수 있다.






웹 페이지를 만들다가
모르는게 생기면 검색하러 자주 들어갔었다.










6. 프리 코드 캠프



예전에 웹 디자인을 하던 친구가 알려준 사이트다.
과정마다 미션으로 구성되어,
간단한 문제를 하나씩 풀어가면서 학습할 수 있다.
여기도 프론트엔드 공부하기에 좋다.






문제가 주어지고, 코드를 바꾸거나 추가해서
미션을 해결하면 다음 문제로 넘어갈 수 있다.






[데이터베이스] 21. 해싱(Hashing), 해싱 함수(Hash Function), 해시 테이블(Hash Table)






1. 해싱(Hashing) 

  • 해시 테이블을 이용한 탐색을 말한다.
  • Hash Table 이라는 기억공간을 할당하고, 해시 함수를 이용하여 레코드 키에 대한 Hash Table 내의 Home Address를 계산한 후 주어진 레코드를 해당 기억장소에 저장하거나 검색 작업을 수행하는 방식이다.
  • DAM(직접접근방식, ) 파일을 구성할 때 해싱이 사용되며 접근 속도는 빠르지만 기억 공간이 많이 요구된다.
  • 여러가지 검색 방식 중 속도가 가장 빠르다.
  • 삽입, 삭제 작업의 빈도가 많을 때 유리한 방식이다.
  • 키-주소 변환 방법이라고도 한다.




2. 해시 함수(Hash Function)

  • 데이터의 효율적인 관리를 위해 길고 복잡한 문자열을 간단한 문자열로 맵핑하는 알고리즘으로 키 값을 해시 값(인덱스)로 변환한다.




3. 해시 테이블(Hash Table)

  • 해시 함수를 통해 얻은 해시 값을 인덱스, 주소로 삼아 데이터의 값을 키와 함께 저장하는 자료구조를 해시 테이블이라고 한다.
  • 키 값의 연산에 의해 직접 접근이 가능한 구조이다.
  • 레코드를 1개 이상 보관할 수 있는 Home Bucket 들로 구성한 기억 공간이다.
  • 보조기억장치에 구성할 수도 있고 주기억장치에 구성할 수도 있다.




  • 버킷(Bucket) : 하나의 주소를 갖는 파일의 한 구역을 의미하며, 버킷의 크기는 같은 주소에 포함될 수 있는 레코드 수를 의미한다.
  • 슬롯(Slot) : 1개의 레코드를 저장할 수 있는 공간으로 n개의 슬롯이 모여 하나의 버킷을 형성한다.
  • 충돌 현상(Collision) : 서로 다른 2개 이상의 레코드가 같은 주소를 가지는 현상.
  • Synonym : 같은 Home Address를 갖는 레코드들의 집합이다.
  • Overflow : 계산된 Home Address의 버킷 내에 저장할 기억 공간이 없는 상태로, 버킷을 구성하는 슬롯이 여러 개일 때는 Collision은 발생해도 Overflow는 발생하지 않을 수 있다.