전체 글171 [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. [백준]1202 보석도둑 1202번: 보석 도둑 (acmicpc.net) 1202번: 보석 도둑 첫째 줄에 N과 K가 주어진다. (1 ≤ N, K ≤ 300,000) 다음 N개 줄에는 각 보석의 정보 Mi와 Vi가 주어진다. (0 ≤ Mi, Vi ≤ 1,000,000) 다음 K개 줄에는 가방에 담을 수 있는 최대 무게 Ci가 주어진다. (1 ≤ Ci www.acmicpc.net 문제 세계적인 도둑 상덕이는 보석점을 털기로 결심했다. 상덕이가 털 보석점에는 보석이 총 N개 있다. 각 보석은 무게 Mi와 가격 Vi를 가지고 있다. 상덕이는 가방을 K개 가지고 있고, 각 가방에 담을 수 있는 최대 무게는 Ci이다. 가방에는 최대 한 개의 보석만 넣을 수 있다. 상덕이가 훔칠 수 있는 보석의 최대 가격을 구하는 프로그램을 작성하시오. .. TIL/SW&백준 문제 리뷰 2022. 8. 21. [백준]1007 벡터 매칭 1007번: 벡터 매칭 (acmicpc.net) 1007번: 벡터 매칭 평면 상에 N개의 점이 찍혀있고, 그 점을 집합 P라고 하자. 집합 P의 벡터 매칭은 벡터의 집합인데, 모든 벡터는 집합 P의 한 점에서 시작해서, 또 다른 점에서 끝나는 벡터의 집합이다. 또, P에 속 www.acmicpc.net 문제 평면 상에 N개의 점이 찍혀있고, 그 점을 집합 P라고 하자. 집합 P의 벡터 매칭은 벡터의 집합인데, 모든 벡터는 집합 P의 한 점에서 시작해서, 또 다른 점에서 끝나는 벡터의 집합이다. 또, P에 속하는 모든 점은 한 번씩 쓰여야 한다. 벡터 매칭에 있는 벡터의 개수는 P에 있는 점의 절반이다. 평면 상의 점이 주어졌을 때, 집합 P의 벡터 매칭에 있는 벡터의 합의 길이의 최솟값을 출력하는 프로그.. TIL/SW&백준 문제 리뷰 2022. 8. 21. [Git] rebase conflict 해결기 (feat. rebase vs merge) 처음 git을 사용할 때 add, commit, push, merge (사실 혼자 할때는 merge도 거의 사용하지 않았다) 밖에 사용하지 않았는데, 갑자기 프로젝트를 진행하다가 merge 말고 rebase으로 해달라는 팀원의 요청을 듣고 rebase가 merge??... 싶었다 ㅎㅎ;; 아마 나와 같은 사람들이 많은 것인지 매우 기초적인 내용이여서인지는 몰라도 구글링하면 잘 설명한 자료가 정말 많았다. 그래서 rebase가 뭐냐? 말그대로 re base, 즉 base를 옮긴다는 말이다. merge는 합체라면 rebase는 합치고하자는 하는 브랜치의 내용을 이어 붙이는 것이다. merge와 rebase의 차이로 인해 발생하는 점은 merge의 경우 여러 개발자들이 협업하다보면 여러 브랜치들이 동시 진행될.. TIL/삽질 기록소 2022. 8. 18. [TypeScript] 이펙티브 타입스크립트 item 58 ~ 62 타입스크립트로 마이그레이션하기 대규모 프로젝트에선 점진적으로 진행 item 58 모던 자바스크립트로 작성하기 타입스크립트로 마이그레이션이 막막하면 예전 버전 자바스크립트에서 최신버전의 자바스크립트로 바꾸는 작업부터 진행 ECMAScript 모듈 사용하기 프로토타입 대신 클래스 사용하기 var 대신 let/const 사용하기 for 대신 for-of 또는 배열 메서드 사용하기 함수 표현식 보다 화살표 함수 사용하기 단축 객체 표현 보다 구조 분해 할당 사용하기 함수 매개변수 기본값 사용하기 저수준 프로미스나 콜백 대신 async/await 사용하기 연관 배열에 객체 대신 Map과 Set 사용하기 타입스크립트에 user strict 넣지 않기 (컴파일러 수준에서 사용됨) item 59 타입스크립트 도입 전에.. TIL/TypeScript 2022. 8. 18. 이전 1 ··· 3 4 5 6 7 8 9 ··· 15 다음 반응형