Today I Learned
TIL 객체를 비교할 때, equals 메서드를 재정의(Overriding)해주지 않으면 false를 반환한다. > Overriding을 해주지 않으면 Object Class의 equals()를 사용하게되고, Object Class의 equals()는 == 연산자를
Map은 Collection Interface를 상속받지 않기 때문에 Stream API를 다른 방법으로 사용해야한다.map.entrySet() : map을 set으로 변경 => Set<Map.Entry<>> 와 같은 독특한 타입의 Set이 생성된다.stre
객체지향 SOLID 원칙 정리상속이 적절하지 않은 경우다른 클래스의 메서드를 사용하기 위한 경우, Composite 패턴을 사용하는 것이 좋다.필드를 확장하기 위한 상속은 올바른 상속이 될 가능성이 높다.리스코프 치환원칙을 만족하는 경우모델링과 추상화에 대한 구분모델링
디자인패턴이 주는 이점디자인 패턴은 실무에서 사용되는 검증된 해결방법디자인 패턴을 미리 공부해놓으면 "바퀴를 재발명하는" 상황을 없앨 수 있다. (내가 자주 하는것...)다만, 디자인 패턴을 남발해서는 안되고 필요한 상황에만 적용하는 것이 좋다.어댑터 패턴먼저, DIP
프로덕션 DBOLTP(OnLine Transaction Processing)실제 서비스에서 사용하는 데이터베이스이며, 빠른 속도에 집중된 데이터베이스데이터 웨어하우스OLAP(OnLine Analytical Processing)처리 데이터 크기에 집중하는 데이터베이스일반
SQL AutocommitSHOW VARIABLES LIKE 'AUTOCOMMIT' 명령을 실행해서 On/Off를 확인할 수 있다.True 인 경우: 매 쿼리의 결과가 DB에 반영된다. BEGIN(START TRANSACTION)과 END(COMMIT), ROLLBAC
소프트웨어에 결함이 있는지 찾는 과정Unit testingIntegration testingSystem testingAcceptance testing가장 중요하고, 가장 많이 작성하게 되는 테스트이다.특정 부분을 고립해서 테스트하며, 클래스나 메서드 하나를 단위로 테스
저수준 방식: JDBC Driver에서 제공하는 API를 통해 DB와의 연결을 얻는다.DataSource를 이용한 방식: JDBC API에 있는 인터페이스인 DataSource의 구현체를 이용해 연결을 관리하는 방법. HikariCP가 대표적인 구현체이며, 연결관리가
프로그램의 횡단 관심사를 분리하는 프로그래밍 기법. 프로그램의 공통 관심사항(cross-cutting-concern)을 비즈니스 로직에서 분리시켜 한 번에 처리할 수 있도록 하는 방법이다.1\. 컴파일 시점 1\. AspectJ 2\. 소스코드를 컴파일 하기 전에 공통
데이터의 변경이 끝나지 않은 상황에서 다른 트랜잭션이 데이터를 읽어 잘못된 데이터를 읽는 경우한 트랜잭션 내에서 같은 데이터를 2번 이상 읽었을 때, 다른 값을 읽게되는 경우한 트랜잭션 내에서 같은 쿼리를 2번 실행했을 때, 없던 데이터가 추가된 경우Commit 되지