본문 바로가기

분류 전체보기204

[서평 23년-20] 자바와 JUnit을 활용한 실용주의 단위 테스트 독서기간_2023년 2월 중순? 저자_제프 랭어, 엔디 헌트, 데이브 토마스 출간일_2019년 7월 3일 Java, JUnit만으로 테스팅을 공부할 수 있는 아주 좋은 책이다. 작년 10월쯤 우아한테크코스를 준비하면서 단위 테스트에 제대로 입문했었다. 우테코 이전에는 Spring Boot 공부하면서 테스트 코드를 작성하는데, Mock과 Inject의 개념이 잡혀있지 않은 채로 작성하려니 머리가 깨질 것 같았었다. (그때 Mock이란 개념을 처음 알긴 했지만...) 구글링해가면서 이렇게 로직을 테스트하는구나... 어림짐작하면서 코딩했었다. 남들이 when, then, mock 쓰니까 이렇게 하나보다...하고 이 책은 공채도 끝나고, 할 일도 없어서 읽기 시작했다. 그런데 굉장히 양질의 정보를 얻을 수 있었.. 2023. 5. 6.
홈택스로 현장실습 소득세 환급받기 | 5월은 종합소득세 신고의 달 안녕하세요! 대학생/고등학생 현장실습생의 떼갔던 세금을 돌려 받을 5월이 왔습니다. 5월만 기다렸다구~ 「대학생 현장실습 운영규정」제5조제4항에 따라 수업으로서의 요건을 갖춘 현장실습수업에 참여하는 학생이 같은 규정 제7조에 따라 지급받는 현장실습지원비는 근로소득 및 기타소득에 해당하지 아니함 세무는 잘 모르지만 현장실습 월급은 소득이 아니기 때문에 세금을 떼지 않는다고 합니다!!!!!!!!!!! 저는 2022년도에 대학생 현장실습을 했었습니다. 그때 사수께서 흘러가는 말로 "~~... 5월에 신청하면 돌려 받을 수 있어...~~ "말해주셨는데 진짜넹?! 바로 신청해 봅시다! 저는 모바일 홈택스로 접수했고 PC는 여기서 신청 가능합니다. 앞으로 따봉무지만 잘 따라오시면 됩니다! 따봉무지야 고마워! 홈택스.. 2023. 5. 4.
[알고리즘] 해시 충돌 해결 방법 | Hash Collision Seperate Chaining 추가적인 공간을 활용해 충돌을 해결한다. seperate 뜻에 맞게 Linked-List를 사용한다. 보통 헤드에 삽입한다. (테일에 삽입하면 테일까지 가는 시간이 걸리기 때문) 최악의 경우 하나의 해시에 데이터가 몰리면, 조회할 때 Linked-list를 탐색하는 시간이 걸리게 된다. Open Addressing Linear Probing 해시 충돌 발생 시 충돌이 발생하지 않을 때까지 해시를 linear 하게 탐색한다. 단, clustering 군집현상이 발생할 수 있다. Quadratic Probing 충돌 발생 시 해싱 함수에 특정 연산을 더해 새로운 해시를 제작한다. 보통 제곱연산을 쓰는데 추가적인 상수곱이나 제곱연산이 가능하다. 사진을 예시로 3번째 값 hf_q.. 2023. 5. 3.
[운영체제] 페이징과 외부 단편화, 내부 단편화 스와핑 메모리에 적재된 프로세스가 잠시 저장공간(SSD, HDD)에 물러났다가 다시 메모리로 적재되는 작업 가상 메모리를 이해하기 위한 약간의 지식 초기 메모리 관리법 MMU(Memory Management Unit)라는 논리 주소를 물리 주소로 변환하는 CPU 안의 장치를 이용해 메모리에 접근했다. (논리주소/물리주소에 자세히 알고 싶으면 아래 링크 참조) [운영체제 OS]Address Binding 주소 할당, 주소 바인딩, 논리적 주소(logical) vs 물리적 주소(physical), 컴 [운영체제 목차] 안녕하세요~!! ㅎㅎㅎ 메모리 관련 문의글이 많아, 가장 기초적인 주소 할당부터, 그 종류, 페이징, 캐시메모리...쪽을 한번 먼저 쭉 다뤄볼까해요 ㅎㅎ 요새 기다려주시는 사람 jhnyang... 2023. 5. 2.
[운영체제] 교착상태와 은행원 알고리즘 교착상태 Dead Lock 프로세스들이 서로의 자원을 기다리며 무한히 기다리는 현상이다. 아래 4개 조건이 성립할 때 교착상태가 발생한다. 비선점 Non-Preemption : 자원을 선점하지 않음 환형대기 Circular Wait : 원형으로 꼬리물기처럼 대기 중 상호배제 Mutual Exclusion : 자원은 하나의 프로세스만 점유 가능 점유 대기 Hold and Wait : 자원을 점유하고 있으면서 추가로 다른 자원을 기다리고 있는 상태 교착상태 처리하기 예방 Prevention 상호배제 부정 : 여러 프로세스가 공유 자원 사용 점유대기 부정 : 프로세스 실행전 모든 자원을 할당 비선점 부정 : 자원 점유 중인 프로세스가 다른 자원을 요구할 때 가진 자원 반납 순환대기 부정 : 자원에 고유번호 할.. 2023. 5. 1.
[C++] pow함수 double 형의 정확성 문제 https://www.acmicpc.net/problem/1740 1740번: 거듭제곱 3의 제곱수를 생각하자. 3의 0제곱, 3의 1제곱, 3의 2제곱, ... 은 순서대로 1, 3, 9, 27, ... 이 된다. 이를 바탕으로, 한 개 이상의 서로 다른 3의 제곱수의 합으로 표현되는 수를 생각할 수 있다. 예를 www.acmicpc.net 해당 문제를 풀다가 발견한 문제.. 분명 로직은 맞는데 어디서 틀린건지? 으잉? 분명 (맨앞) 1비트씩 차이나는데 왜 pow로 곱한 값은 같은 거지????? 문제를 발견하고 뒤적이기 시작했다. 아..하.. 실수 연산의 차이... 부동소수점.... 2023. 4. 30.
[알고리즘] 배낭 알고리즘 (fractional 배낭, 0-1 배낭) 분할 가능한(fractional) 배낭 알고리즘 문제 도둑은 W만큼 들 수 있는 가방을 가지고 있다. W를 초과하는 보석을 담을 경우 가방이 찢어져 버리고 만다. 무게가 w고 가치가 v인 N개의 보석이 존재할 때 도둑이 훔칠 수 있는 보석의 최대 가치를 구하라. (보석은 분할 가능하다.) 그리디 알고리즘을 다룰 때 가장 자주 나오는 문제이다. 브루트포스를 사용해 훔칠 수 있는 보석의 모든 조합을 구할 수 있겠지만 N개의 보석의 모든 조합을 구하려면 O(2^N)의 시간이 걸릴 것이다. (보석을 훔친다 || 안 훔친다.) * N개 따라서 그리디하게 접근하면 효율적으로 해결할 수 있다. 무게 대비 가치가 높은 것부터 가방을 채우면 되지 않을까? N개의 보석을 v/w가 높은 순으로 정렬 후 W만큼까지만 훔쳤을 .. 2023. 4. 29.
[자료구조] AVL 트리, Red-Black 트리 AVL 트리 AVL트리는 발명가 Adelson-Velsky, Landis 이름 앞글자에서 따온 균형이진탐색트리이다. 스스로 균형을 잡는 트리로 처음 고안됐으며 말단 노드의 레벨 차이가 항상 1이하로 나는 트리이다. 노드 삽입, 삭제 시 균형이 깨진다면 스스로 조절하기 때문에 높이는 항상 logN이 보장된다. Red-Black 트리 아래 다섯 조건을 만족하는 트리를 레드블랙트리라고 한다. 마찬가지로 균형이진탐색트리이므로 높이는 logN이다. 모든 노드는 Red / Black 의 색을 가져야 한다. 루트 노드는 항상 블랙이다. NIL 노드는 항상 블랙이다. (value가 없는 말단 노드를 항상 가진다. NIL == Null Leaf) 레드 노드의 자식 노드는 항상 블랙이다. (블랙 노드는 상관 없다) 각 노.. 2023. 4. 28.