일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 토비의스프링
- EC2
- DISTINCT
- Linux
- spring boot
- AWS
- jdbc
- db
- github
- Jenkins
- SSL
- 코딩테스트
- window
- centos7
- TLS
- ssh
- Client
- vagrant
- TypeScript
- docker
- WebHook
- 책 정리
- 프로그래머스
- Spring Legacy Project
- Git
- mariadb
- Java
- spring
- Hibernate
- sample
- Today
- Total
목록java (9)
Woopii Vyeolog
참고 : 각종 JDK 에 대한 설명 https://whichjdk.com/ Which Version of JDK Should I Use? Which Version of JDK Should I Use? whichjdk.com 어떤 openJdk를 써야 할까? 1. Adoptium Eclipse Temurin Eclipse Temurin은 오픈 소스 소프트웨어에 대한 리소스와 전문 거버넌스 모델을 제공하는 이클립스 재단 산하의 최상위 프로젝트입니다. Adoptium 워킹 그룹은 Red Hat, IBM, Microsoft, Azul, iJUG 등 Java 기술에 전략적 관심을 갖고 있는 주요 기업 및 조직으로 구성되어 있습니다. 이전의 AdoptOpenJDK 프로젝트는 이클립스 Adoptium으로 이전되었습니..
## Github 주소 https://github.com/leewoopyo/java-logic-tests remove_duplication 패키지 GitHub - leewoopyo/java-logic-tests: java-logic-tests java-logic-tests. Contribute to leewoopyo/java-logic-tests development by creating an account on GitHub. github.com 1. Array를 Set으로 변환 후 다시 Array로 변환 Set은 중복을 허용하지 않기 때문에 중복이 있는 Array를 Set으로 변환 시 중복이 제거됨 LinkedSet 은 순서가 보장되는 Set이다 1-1 Array Set // 배열을 HashSet으로 ..
## Github 주소 : https://github.com/leewoopyo/tcp_sample GitHub - leewoopyo/tcp_sample Contribute to leewoopyo/tcp_sample development by creating an account on GitHub. github.com 1. 소켓이란? 소켓은 네트워크 상에서 돌아가는 두 개의 프로그램 간 양방향 통신의 엔드 포인트. 2. 앤드 포인트 여기에서의 앤드 포인트는 아이피 주소와 포트 번호의 조합을 의미함. 모든 TCP 연결은 2개의 앤드 포인트로 유일하게 식별되어질 수 있습니다. 3. 소켓 통신 소켓 통신이란 서버와 클라이언트 양방향 연결이 이루어지는 통신. 4. TCP (스트림 소켓) 연결형 (Connection..
## Github 주소 : https://github.com/leewoopyo/tcp_sample GitHub - leewoopyo/tcp_sample Contribute to leewoopyo/tcp_sample development by creating an account on GitHub. github.com 1. 소켓이란? 소켓은 네트워크 상에서 돌아가는 두 개의 프로그램 간 양방향 통신의 엔드 포인트. 2. 앤드 포인트 여기에서의 앤드 포인트는 아이피 주소와 포트 번호의 조합을 의미함. 모든 TCP 연결은 2개의 앤드 포인트로 유일하게 식별되어질 수 있습니다. 3. 소켓 통신 소켓 통신이란 서버와 클라이언트 양방향 연결이 이루어지는 통신. 4. TCP (스트림 소켓) 연결형 (Connection..
1. 빌더 패턴을 사용하는 이유 불필요한 생성자를 만들지 않고, 객체를 생성 데이터의 순서에 상관없이 객체를 생성 명시적이고, 이해하기 쉬움 유지 보수가 편함 즉 빌더 패턴은 객체 생성을 깔끔하고, 유연하게 하기 위한 기법 2. [점층적 생성자 패턴] -> [자바빈 패턴] -> [빌더 패턴] 2-1. 점층적 생성자 패턴 : 모든 인자를 받는 경우의 생성자를 만든다. 단점 다른 생성자를 호출하는 생성자가 많아질 경우, 인자가 추가될 때 코드 수정이 어렵다. 코드 가독성이 떨어진다 (인자 수가 많은 생성자의 경우, 코드만 보고 의미를 해석하기 어렵다.) 2-2. 자바빈 패턴 : setter 메소드를 이용하여 객체에 값을 세팅한다. 단점 객체 일관성이 깨진다 : 1회의 호출로 객체 생성이 끝나지 않는다. (한..
Vector vs Arraylist 둘다 크기가 동적인 배열을 사용 할 때 주로 사용한다. Multi Thread 환경에서는 데이터에 접근할 때 해당 데이터에 대한 무결성이 보장되어야 하는데 Arraylist는 비동기식이라 여러 Thread에서 동시에 접근이 가능하지만 Vector의 경우, 동기식이라서, 하나의 Thread에서 접근하면 다른 Thread에서는 접근이 불가능 하다. 대신 동기식인 Vector는 Arraylist에 비해 속도가 느리다. 따라서, MultiThread 환경이 아니라면 Arraylist를 사용하는 것이 성능적인 면에서 좋고, MultiThread환경에서는, 데이터 무결성을 위해 vector를 사용해야 한다.
일단, 이 세 클래스는 모두 문자열을 저장하고 관리하는 클래스이다. String은 불변(immutable)하고 StringBuffer,StringBuilder은 가변(mutable)하다. String String 클래스는 두 클래스와는 다르게, literal방식을 통해 생성하게 되면 그 크기(공간)는 절대 변하지 않는다. //리터럴로 생성하는 방식 String literal = "literal"; //new로 생성하는 방식 String new = new String("literal"); //위에서 "literal" 이라는 문자열을 String Pool에서 생성했기 때문에 //이후에 추가한 str1, str2, str3는 추가적으로 생성하지않고 똑같은 문자열을 가리킨다. String str1 = "lite..
Garbage Collector(GC) 메모리 관리 기법 중 하나 프로그램이 동적으로 할당했던 메모리 영역 중에서, 필요없게 된 영역을 해제하는 기능이다. 쓰레기 수집은 동적 할당 된 메모리 영역 가운데, 더 이상 사용할 수 없게 된 영역을 탐지하여 자동으로 해제하는 기법이다. 더 이상 사용할 수 없게 된 영역이란, 어떤 변수도 가리키지 않게 된 영역을 의미한다. 장단점 아래와 같은 버그를 줄이거나 완전히 막을 수 있다. 유효하지 않은 포인터 접근 : 이미 해제된 메모리에 접근하는 버그 이중 해제 : 이미 해제된 메모리를 또다시 해제하는 버그 메모리 누수 : 더이상 필요하지 않은 메모리가 해제되지 않고 남아있는 버그 하지만 아래와 같은 단점이 있다. 어떤 메모리를 해제할지 결정하는 데 비용이 든다. 객체..