전체 글144 [CS] 데이터베이스 관련 데이터베이스에서 인덱스를 사용하는 이유 및 장단점 검색 성능을 향상시키기 위해 사용 => 별도의 메모리 공간에 인덱스가 된 컬럼들을 기준으로 정렬하여 저장함 => 이미 정렬되어 있기 때문에 특정 조건 검색시 풀 스캔이 아닌 방법으로 더 빠르게 찾을 수 있음, 정렬 필요 없음 인덱스를 사용하는 단점으로는 인덱스를 구성하는 비용 발생 정렬 상태를 유지하기 위한 비용 발생 즉, CRUD시 인덱스를 형성하기 위한 추가적인 연산이 수행됨 인덱스를 사용하는 것이 효율적이기 위해서는 쿼리가 index를 사용하는지, Cardinality, Selectivity 같은 요소들이 고려된 인덱스가 생성되어야 함 트랜잭션(Transaction) 데이터베이스의 상태를 변화시키는 하나의 논리적인 작업 단위 1개의 트랜잭션에서 여러.. TIL/TIL 2022. 9. 25. [CS] OS 관련 프로세스 생성과정 PCB가 생성되며 OS가 실행한 프로그램의 코드를 읽어들여 프로세스에 할당된 메모리의 Text Segment에 저장한다 초기화된 전역 변수 및 static 변수를 data segment에 할당 HEAP과 Stack은 초기 메모리 주소만 초기화됨 PCB에 여러 정보가 기록되면 Ready Queue에서 CPU를 할당받기까지 대기 프로세스와 쓰레드의 차이 프로세스는 운영체제로부터 자원을 할당 받은 작업의 단위 쓰레드는 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위, CPU 입장에서 최소 작업 단위 프로세스는 운영체제의 안정성을 위해 자신에게 할당된 메모리 내의 정보에만 접근할 수 있음 => 한 프로그램 처리할 때 프로세스를 여러개 사용 불가, 프로세스 말고 여러 작업을 처리하기 위해 .. TIL/TIL 2022. 9. 25. [디자인패턴] 헤드퍼스트 디자인패턴 Chap.2 (Feat.옵저버 패턴) public class WeatherData{ // 현재 기상 상황 갱신하는 메서드 public void measurementsChanged(){ // 최신값 불러옴 float temp = getTemperature(); float humidity = getHumidity(); float pressure = getPressure(); // 변화한 값 각 디스플레이에 갱신 display1.update(temp,humidity, pressure); display2.update(temp,humidity, pressure); display3.update(temp,humidity, pressure); } } 위의 코드에는 아래 같은 문제가 발생 인터페이스가 아닌 구체적인 구현을 바탕으로 함 새로운 디스플레이 생기.. 독서 기록/디자인패턴 2022. 9. 23. [디자인패턴] 헤드퍼스트 디자인패턴 Chap.1 상속만 사용한 경우 생길 수 있는 문제 서브 클래스에서 코드 중복 실행 시에 특징 바꾸기 어려움 모든 클래스의 동작 알기 어려움 슈퍼 클래스에서 코드 변경시 원치 않은 서브 클래스에도 영향 준다. => 인터페이스의 등장 다만 인터페이스를 사용하면 인터페이스를 상속하는 모든 서브 클래스들에서 코드를 구현해야함. ex) A,B,C,D,E,F 6개의 서브 클래스가 있을 때 x 라는 인터페이스를 만들어 동작을 구현했는데 이를 동일하게 수정하고 싶으면, A~F까지 모든 서브 클래스의 내용을 수정해야함. 즉 코드 재사용이 되지 않는 문제점이 있다는 것, 한가지 동작을 바꿀 때 마다 그 동작이 정의되어 있는 서브 클래스들을 전부 찾아서 코드를 고쳐야 하고, 그 과정에서 버그가 생길 수 있음 소프트웨어 개발 불변의 진.. 독서 기록/디자인패턴 2022. 9. 23. [JAVA] TIL final 키워드 필드에서 사용하면 수정 불가능 메소드에 사용하면 오버라이딩 불가능 클래스에서 사용하면 상속 불가능 상속 관련 public class InheritTest { public static class Parent{} public static class Child extends Parent{} public static void main(String[] args) { Parent parent = new Child(); // 가능 Child child = new Parent(); // 컴파일 에러 } } Marker interface / tag interface 상수도 메소드도 없는 완전히 비어있는 인터페이스 = Marker interface / tag interface 특별한 행동을 컴파일이나 J.. TIL/TIL 2022. 9. 6. [JAVA] 오버로딩(overloading) vs 오버라이딩(overriding) 맨날 헷갈리는 오버로딩과 오버라이딩... 오버로딩(Overloading)은 한 클래스 내에서 각각 다른 파라미터를 가진 동명의 메소드를 정의 컴파일타임에 결정 오버라이딩(Overriding)은 상속된 클래스에서 부모 클래스에 존재하는 메소드를 재정의 런타임에 결정 오버로딩 //overloading public class Overload { public static void get(List list) { System.out.println("List"); } public static void get(ArrayList list) { System.out.println("ArrayList"); } public static void get(LinkedList list) { System.out.println("Lin.. TIL/TIL 2022. 9. 6. [DB] soft delete vs hard delete (feat. isDeleted) 의문이 생긴 배경과 의문 유저간의 가족구성을 할 때 한명이 가족을 만든 후, 만료 기한은 있지만 초대 인수는 제한이 없는 가족 초대 코드를 발급하고 나머지 가족 구성원들이 이 초대 코드를 입력하여 가족에 join하는 방식으로 구현하려고 할 때 생긴 의문이다 위의 가족 구성의 경우에는 최초의 한번 혹은 흔하지 않게 사용할 기능이기에 초대 코드에 대한 부분을 DB에 저장해도 크게 문제가 되지 않을 거란 생각이 드는데, 만약 이러한 특정 임시 코드를 발급해주어야하는 일이 수시로 많은 유저가 사용하는 기능이라면 임시코드를 발급한 것을 매번 DB에 저장하고 만료되면 삭제를 하던 isDeleted 컬럼을 업데이트하던 비효율적인 느낌인데 이러한 경우에 어떻게 효율적으로 만들 수 있을까?? 사실 이러한 의문은 이상한 .. TIL/DB 2022. 9. 5. 22년도 여름 방학 (feat. 취준, 소마) 저번 겨울 방학때 살짝 아쉽게 보낸 대신 올해는 정말 알차게 보내고 있다. 3월에 개강을 하고 학교수업 + 소마 준비하다가 4월쯤에 시험보고 합격하고 5~6월에 소마 예비과정에 정신없는 4학년 1학기를 순식간에 지나간 후 종강을 하면서 7월~8월 동안의 이야기다. 한줄 요약하면 졸업하기위해 학부연구생하면서 취준하면서 소마 팀 프로젝트를 진행했다. 취준 과정 종강하고 금방 7월 2일에 네이버 공채 코딩테스트가 있었는데 앞서 말한 소마 예비과정과 4학년 1학기의 수많은 수업들이 나를 몰아붙여서 코딩테스트 준비를 못했고 그 결과 아주 깔쌈하게 말아먹었다ㅎㅎ...;; 마지막으로 좀 날을 갈아놓은게 소마 코테를 준비하던 3월이였고 날카롭게 갈려있어도 될까말까였던 판에 녹이 잔득 낀채로 갔으니 결과가 좋을 수가 없.. 주저리주저리 2022. 9. 1. 가치 있는 사람? (《승우아빠》의 진솔한 이야기 | 골방토크 - YouTube 쉬면서 유튜브를 보다가 승우 아빠 라는 요리 유튜버의 삶이 나오는 4시간짜리 토크 영상을 봤다. (정확히는 앞 1시간 15분을 본 상태이다) 내용을 요약하자면 어릴 때 동네에서 공부를 좀 함 => 과학고를 노림 => 아슬아슬하게 실패 => 실의에 빠져 공부에 흥미를 잃고 손을 놓음 => 성적 곤두박질, 부모님의 캐나다 이민 전에 미리 유학가는게 어떻냐의 설득 => 캐나다 유학가서 한국의 선행학습으로 이과 과목들에서 좋은 성적 거두고 흥미 되찾음 => 캐나다에서 좋은 공대 진학 => 입학은 어렵고 졸업이 쉬운 한국에 비해 입학은 널널하지만 졸업이 빡센 서양의 대학의 벽 느낌 => 자신의 진로에 대한 고민 => 가정 교사셨던 어머니의 영향 + 에드.. 주저리주저리 2022. 8. 31. [백준] 외판원 순회 문제 (10971, 2098, 16991) 10971번: 외판원 순회 2 (acmicpc.net) 2098번: 외판원 순회 (acmicpc.net) 16991번: 외판원 순회 3 (acmicpc.net) 16991번: 외판원 순회 3 첫째 줄에 도시의 수 N이 주어진다. (2 ≤ N ≤ 16) 다음 N개의 줄에는 도시의 좌표 x, y가 주어진다. 모든 좌표는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. 두 도시의 위치가 같은 경우 www.acmicpc.net 세 문제 다 같은 문제라고 해도 괜찮을 정도로 유사하다 그중 3번을 기준으로 풀이를 적도록 하겠다. 문제 외판원 순회 문제는 영어로 Traveling Salesman problem (TSP) 라고 불리는 문제로 computer science 분야에서 가장 중요하게 취급.. TIL/SW&백준 문제 리뷰 2022. 8. 30. [ML] Face Recognition details HOG(Histogram of Gradient) 알고리즘 사람의 형태에 대한 검출에 많이 사용되는 feature 중 하나 이미지의 지역적인 Gradient를 활용하는 방법 Edge의 양과 방향을 구분하는 특성 Overlap을 이용하여 계산 => 어느정도의 Shift에는 적응 가능 이미지를 받으면 => gamma, colour 정규화 (이미지 밝기 조절, 흑백화 => 분석에 색상 필요없으니깐) => 각 픽셀의 gradient의 크기와 방향 계산 => 각각의 cell( = 8x8 픽셀로 묶은 단위)로부터 Gradient의 방향에 대한 Gradient 크기 히스토그램을 구한다 이렇게 구해진 히스토그램은 edge의 양과 방향, 즉 gradient의 크기와 방향을 구분하는 feature rkwla => cell .. TIL/TIL 2022. 8. 24. [백준]1208 부분수열의 합2 1208번: 부분수열의 합 2 (acmicpc.net) 1208번: 부분수열의 합 2 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 40, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net 문제 N개의 정수로 이루어진 수열이 있을 때, 크기가 양수인 부분수열 중에서 그 수열의 원소를 다 더한 값이 S가 되는 경우의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 40, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100.. TIL/SW&백준 문제 리뷰 2022. 8. 22. 이전 1 ··· 3 4 5 6 7 8 9 ··· 12 다음 반응형