본문 바로가기

분류 전체보기166

클린코드 15장 15장 JUnit 들여다보기 이 장에서는 JUnit 프레임워크에서 가져온 코드를 평가한다. JUnit 프레임워크 우리가 살펴볼 모듈은 문자열 비교 오류를 파악할 때 유용한 ComparisionCompactor라는 모듈로, 두 문자열을 받아 차이를 반환한다. 예를 들어, ABCDE와 ABXDE를 받아 를 반환한다. package junit.framework; public class ComparisonCompactor { private static final String ELLIPSIS = "..."; private static final String DELTA_END = "]"; private static final String DELTA_START = "["; private int fContextLeng.. 2022. 9. 16.
[cs 정리] 데이터베이스 이 포스트는 2021.12~2022.09 기간동안 벨로그에 작성한 글을 티스토리에 옮겨 적은 것입니다. 1. 정규화 과정에 대해 설명해주세요 관계형 데이터베이스의 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스를 정규화라고 합니다. 보통 제 3정규형 과정까지 완료되었으면 정규화 되었다고 말합니다. 제 1 정규형은 도메인이 원자값만을 포함하게 만듭니다. 제 2 정규형은 부분적 함수 종속을 제거합니다. 제 3 정규형은 기본키에 대해 이행적 종속을 제거합니다. 제 1 정규형(1NF; First Normal Form) 1NF를 만족하려면 도메인이 원자값이어야 한다. 위 테이블은 수강자 속성이 원자값이 아니어서 1NF가 아니다. 제 2 정규형(2NF; Second Normal Form) 2NF를 만족하려면.. 2022. 9. 16.
클린코드 14장 14장 점진적인 개선 책 초반에, 좋은 코드를 짜기 위해서는 일단 막 짜고 나서 다듬어야 한다고 했다.. 초안 코드를 단계적으로 개선해 좋은 코드를 만들어야 한다. public static void main(String[] args) { try { Args arg = new Args("l,p#,d*", args); boolean logging = arg.getBoolean('l'); int port = arg.getInt('p'); String directory = arg.getString('d'); executeAppliocation(logging, port, directory); } catch (ArgsException e) { System.out.printf("Argument error: %s\n".. 2022. 9. 16.
인적성 수리 공식 모음 인적성이랑 ai 면접이 뭔지도 모르는데 당장 낼 모레 시험을 쳐야한다.... 내 가장 큰 고민은 수리부분이다. 문제 유형을 보니 옛저녁에 다 까먹은 공식들을 좀 써야 할 것 같아서 정리해본다. 1 거속시 거리, 속도, 시간과 관련한 문제 거리 = 속력 X 시간 속도 = 거리 / 시간 시간 = 거리 / 속도 6km의 거리를 자동차로 가는데 45분이 걸렸다. 이 자동차의 평균 시속은 몇 km/h 인가? 정답: 8km/h 2 소금물 농도 액체 농도 관련 문제 소금물의 농도 = 소금의 양 / 소금물의 양 X 100(%) 소금의 양 = 소금물의 농도(0.xx) X 소금의 양 물을 추가하는 경우 (소금물 + 물) 물을 증발시키는 경우 (소금물 - 물) 15%의 소금물 450g에 물 50g을 섞어 넣으면 몇 %의 소.. 2022. 9. 16.
유니온 파인드 최근에 졸업 시험과 기업 코테를 포함하여 여러번 코테를 쳤다. 그중에서 n의 크기가 300,000으로, 아무리 봐도 최소 nlogn 안쪽으로 풀어야 할 것 같은데 완탐 풀이법밖에 생각나지 않는 문제들이 2개 있었다. 그들의 공통점은 union find로 풀어야 하는 문제였다는 것이었다. 첫번째 문제를 만났을 때 유니온 파인드를 공부했다면 다른 문제는 풀 수 있었을지도 모르는데... 역시 모르는게 생기면 공부를 바로바로 해야 한다. 유니온 파인드에 대하여 유니온 파인드의 다른 이름은 서로소 집합이다. 두 집합이 서로소 관계인지를 확인할 수 있다는 말은 각 집합이 어떤 원소를 공통으로 가지고 있는지 확인할 수 있다는 말과 같다. 그렇기 때문에 union-find라고 부른다. 기본 유형은 위 그래프의 연결 관.. 2022. 9. 16.
클린코드 13장 13장 동시성 동시성이 필요한 이유? 구조적 개선 응답시간과 작업 처리량 개선 미신과 오해 다음은 동시성과 관련한 일반적인 미신과 오해이다. 동시성은 항상 성능을 높여준다. 동시성을 구현해도 설계는 변하지 않는다. 반대로 다음은 동시성과 관련된 타당한 생각 몇 가지다. 동시성은 다소 부하를 유발한다. 동시성은 복잡하다. 일반적으로 동시성 버그는 재현하기 어려워, 일회성 문제로 여기고 무시하기 쉽다. 동시성을 구현하려면 흔히 근본적인 설계 전략을 재고해야 한다. 난관 두 스레드가 같은 변수를 동시에 참조하면 이상한 결과가 발생할 수 있다..재수없게 동시에 참조하지 않는다면 올바른 결과를 내놓겠지만, 문제는 잘못된 결과를 내놓는 일부 경우이다. 하지만 동시성 코드가 일으키는 문제로부터 시스템을 방어하는 원칙.. 2022. 9. 16.
반응형