Category 59

equals와 hashCode는 왜 함께 정의해야 하는가?

equals와 hashcode 메서드는 객체의 동등성 비교와 해시값 생성을 위해서 사용할 수 있다.하지만, 함께 재정의하지 않는다면 예상치 못한 결과를 만들 수 있다.예들 들면, 해시 값을 사용하는 자료구조(HashSet, HashMap)을 사용할 때 문제가 발생할 수 있다.class EqualsHashCodeTest { @Test @DisplayName("equals만 정의하면 HashSet이 제대로 동작하지 않는다.") void test() { // 아래 2개는 같은 구독자 Subscribe subscribe1 = new Subscribe("team.maeilmail@gmail.com", "backend"); Subscribe subscribe2 ..

CS/ETC 2024.12.17

트랜잭션 격리수준

트랜잭션 격리 수준은 4가지가 있다.SERIALIZABLEREPEATABLE_READREAD_COMMITTEDREAD_UNCOMMITTED SERIALIZABLE트랜잭션을 순차적으로 진행하는 것을 말한다.여러 트랜잭션이 동시에 같은 행에 접근 불가교착 상태가 일어날 확률도 많고 가장 성능이 떨어진다.REPEATABLE_READ하나의 트랜잭션이 수정한 행을 다른 트랜잭션이 수정할 수 없도록 막아주지만 새로운 행을 추가하는 것은 막지 않는다.따라서 이후에 추가한 행이 발견될 수도 있다.READ_COMMITTED가장 많이 사용되는 격리 수준이다.READ_UNCOMMITTED와 달리 다른 트랜잭션이 커밋하지 않은 정보는 읽을 수 없다.즉, 커밋 완료된 데이터에 대해서만 조회를 허용한다.하지만, 어떤 트랜잭션이 ..

CS/ETC 2024.12.11

일급 컬렉션이 무엇인가요?

일급 컬렉션💡 하나의 컬렉션을 감싸는 클래스를 만들고, 해당 클래스에서 컬렉션과 관련된 비지니스 로직을 관리하는 패턴을 말한다.// 예시// 일급 컬렉션public class Orders { private final List orders; public Orders(List orders) { validate(orders); // 검증 수행 ... } public void add(Order order) { if (order == null) { throw new IllegalArgumentException("Order cannot be null"); } orders.add(order); } pu..

CS/ETC 2024.12.07

[리눅스] tr 명령

tr 명령 구문 tr OPIONS... SET1 [SET2] tr 은 일반적으로 길이가 동일한 두 문자 집합을 허용하며 첫 번째 세트의 문자를 두 번째 세트의 해당 문자로 대체한다. SET는 기본적으로 특수 백슬래시 이스케이프 문자를 포함한 일련의 문자이다. 다음 예에서 tr은 첫 번째 세트의 문자와 두 번째 세트의 일치하는 문자를 매핑하여 표준 입력(리눅스 크기 조정)의 모든 문자를 바꾼다. # l = r, i = e, n = d echo 'linuxize' | tr 'lin' 'red' # reduxeze 문자 세트는 문자 범위를 사용하여 정의할 수 있다. # l ~ o = w ~ z echo 'linuxize' | tr 'lmno&#3..

Programming/Linux 2024.01.24

[리눅스] iptables 개념 및 명령어

iptables란? 리눅스상에서 방화벽을 설정하는 도구 netfilter 패킷필터링 기능을 산용자 공간에서 제어하는 수준으로 사용할 수 있다. 패킷필터링이란? 지나가는 패킷의 헤더를 보고 그 전체 패킷의 운명을 결정하는 것을 말한다. 일반적으로 패킷은 헤더와 데이터를 가진다. 헤더에 필터링할 정보인 출발지 IP:PORT, 도착지 IP:PORT, ckecksum, 프로토콜 옵션등을 가지며 데이터는 각각의 전송데이터가 들어간다. 특정 조건을 가지고 있는 패킷에 대해 허용과 차단등을 지정할 수 있으며, 특정 조건등을 통해 당양한 방식의 패킷 필터링과 처리 방식을 지원한다. iptables 정책은 여러 구분으로 나눠지며 중요한 부분은 Chain이다. Chain INPUT : 서버로 들어오는 기본 정책 Chain..

Programming/Linux 2024.01.23

[리눅스] top 명령

행정명령 - top 첫 번째 줄 top - 19:38:28 up 2 days, 20:47, 0 users, load average: 0.52, 0.58, 0.59 top- 프로그램 이름 19:38:28- 현재 시간 up 2 days, 20:47- 가동 시간. 즉, 시스템이 마지막으로 시작된 시간입니다. 0 users 사용자 수 . load average: 0.52, 0.58, 0.59 여기에 세 개의 숫자가 있습니다. 이는 지난 1분, 5분, 15분 동안의 시스템 부하 평균을 나타냅니다. 이는 실행 중이며 CPU 시간을 기다리는 평균 프로세스 수를 보여줍니다 . 이러한 값은 CPU, 코어, 스레드 수와 매우 밀접하게 평가되어야 한다는 점을 이해하는 것이 중요합니다 두 번째 줄 Tasks: 6 total,..

Programming/Linux 2024.01.23

[리눅스] 파일 복사 및 이동

CP - 파일을 복사는 명령 cp source target - target으로 source를 복사 파일 이름 복사 및 변경 cp - 파일 복사뿐만 아니라 대상 파일의 이름 변경에도 사용 할 수 있다. cp one ../targetdir/another-one - one 이라는 파일을 another-one 이라는 파일로 복사 ls -l ../targetdir - 명령어를 통해 두가지의 파일이 있는 것을 확인 하나의 명령으로 두 개 이상의 파일 복사 cp file1tocopy file2tocopy file3tocopy targetlocation - 마지막 매개변수는 나열된 모든 파일을 복사할 위치를 설명(옵션) 한번에 3개의 파일을 targetlocation의 위치에 복사 여러 파일 복사 와일드 카드를 사용하..

Programming/Linux 2024.01.23

[리눅스] 파일 읽기

CAT and VIM CAT 가장 기본적이고 가장 많이 사용되는 명령은 cat 이다. - concatenate의 약자. 바이너리 파일을 읽는 방법은 좋은 방법은 아니다. 단점은 한번에 전체 파일을 인쇄한다는 것이다. - 이런식으로 대용량 파일을 검토한느 것은 오히려 불편하다. more more testfile - 대화형 모드에 있으며 파일을 탐색할 수 있느나 앞으로만 갈 수 있음 진행 enter , 종료 q less less testfile - 조금 더 정교한 명령어 /Resolution 을 통해 Resolution이라는 단어 검색 가능 진행 enter , 종료 q 파이프 라인을 함께 사용할 수 있다. cat testfile | more cat testfile | less VIM 대부분 vi, vim(v..

Programming/Linux 2024.01.23

[리눅스] 파이프 및 리디렉션

파이프 및 리디렉션 개념 한 명령이나 스크립트에서 다른 명령이나 스크립트로 전송된 일부 정보를 보내거나 검색하는데 사용(파일에서도 작동) 파일의 줄수 계산 한 파일에서 고유한 값을 선태하고 다른 파일에 씀 파일이나 시스템에서 일부 문자열의 발생을 찾습니다. grep 명령어는 출력에서 특정 패턴을 검색한다. 출력은 파일이거나 다른 명령의 출력일 수 있다. wc 단어, 개행 수를 계산 하는 유틸리티 파이프 | 원하는 만큼 파이프를 결합할 수 있다 command1 | command2 command1 | command2 | command3 원하는 명령어를 통해 다양한 결과를 한번에 실행할 수 있다 number.txt → 1 ~ 100 까지의 수 10000줄 cat numbers.txt | wc -l → 1000..

Programming/Linux 2024.01.23

프로그래머스 : 합동 택시 요금 - Level 3

https://school.programmers.co.kr/learn/courses/30/lessons/72413 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 최단 거리 구하는 문제이며, 한명이 가는 길이 아닌, 두명이 택시를 타고 가는길에 어디까지 같이 가고 어디까지 따로 가야 최소 비용이 나오는가에 대한 문제이다. 2. 문제 풀이 최단 거리, 최소 비용인 만큼 다익스트라 알고리즘을 사용 이를 위해 PriorityQueue 사용 fares로 인접 행렬 생성 출발 지점으로부터 모든 정점 까지 최소 비용을 다익스트라로 구하기 → toget..

Programming/Java 2023.12.13
728x90