SKILL/JAVA 73

Comparator, ComparTo

compareTo() 메서드 현재 객체 파라미터로 넘어온 객체: 양수 리턴 음수 또는 0이면 객체의 자리가 그대로 유지되며, 양수인 경우에는 두 객체의 자리가 바뀐다. compare() 메서드 작성법 첫 번째 파라미터로 넘어온 객체 두 번째 파라미터로 넘어온 객체: 양수 리턴 음수 또는 0이면 객체의 자리가 그대로 유지되며, 양수인 경우에는 두 객체의 자리가 변경된다. 즉, Integer.compare(x, y)(오름차순 정렬)와 동일한 개념이다. return (x

SKILL/JAVA 2021.11.03

자바 : Fork/Join framework

🚀 Fork/Join 정의 여기를 공부하기 위해서 운영체제의 프로세스와 스레드 파트를 공부하였고, 자바의 스레드를 걸쳐 Fork/Join까지 나름 딥하게 이해하려고 공부를 해왔다. 우선 정의를 한번 살펴보자. Fork/Join 프레임워크는 다중 프로세서의 이점을 이용하기 위해서 ExecutorService 인터페이스를 구현한다. 내부적인 동작 방식은 최대한 쪼개질 수 있을 때까지 쪼개져서 이런 작은 단위의 조각들이 회귀적으로 동작하게 되어있다. 알고리즘에서 우리가 흔히 "분할 정복"이라고 부르는 개념과 같다고 이해를 하면 좋을 것 같다. Fork/Join의 목적은 사용 가능한 모든 처리능력을 사용하여 프로그램의 수행능력을 향상하는 데에 있다. 즉 Fork/Join은 CPU를 더 쉽게, 효율적으로 사용하기..

SKILL/JAVA 2021.09.09

자바 : 스레드(2)

🚀 스레드를 통제하는 메서드들 이번 내용을 알기 위해서는 "스레드의 상태 변화"에 대해서 알고 있어야 깊이 있게 코드를 이해할 수 있을 것이다. 스레드는 프로세서를 함께 사용하고 항상 하나만 실행한다. 또 한 프로세스에 있는 스레드는 순차적으로 실행하고, 해당 스레드의 정보를 저장하는 레지스터와 스택이 있다. 스레드도 프로세스와 마찬가지로 위와 같이 스레드의 상태 변화가 있다. 스레드의 장점은 스레드 한 개가 대기 상태로 변할 때 전체 프로세스를 대기 상태로 바꾸지 않는다는 것이다. 실행 상태의 스레드가 대기 상태가 되면 다른 스레드를 실행할 수 있다. 그러나 프로세스와 달리 서로 독립적이지는 않다.(프로세스의 메모리를 공유하기 때문에) 좀 더 깊게 알고 싶다면 개인적으로 운영체제에서 "프로세스&스레드"..

SKILL/JAVA 2021.09.08

자바 : 스레드(1)

🚀 프로세스? 우선 스레드를 알기 전 반드시 "프로세스"라는 것을 알아야만 한다. 그래야 왜 스레드를 쓰는지를 알 수 있기 때문이다. 프로세스를 보통 다양하게 정의한다. 그중 "실행 중인 프로그램"이라는 표현을 많이 사용한다. 여기서 우리는 "프로그램"이라는 단어의 정의를 알아보자. 프로그램이란? 컴파일한 코드와 초기화 전역 변수, 문자열과 문자열 상수 등 정적 데이터를 포함하는 정적인 개체이다. 그렇다면 "실행 중인 프로그램"을 풀어서 해석해보면, 디스크에 있던 프로그램을 메모리에 적재하여 운영체제의 제어를 받는 상태가 되었다는 것. 즉, 자신만의 메모리 영역이 있음을 뜻한다. 결국 프로세스의 정의다. 프로세스 정의를 좀 더 세련되게 정리하자면, 메모리 구조를 이루고, 프로그램 카운터나 레지스터처럼 현..

SKILL/JAVA 2021.09.07

자바 : java 7 - 보완된 예외 처리

🚀 서론 try(Scanner sc = new Scanner(new File(fileName), encoding)) {... 익숙한 듯 익숙하지 않은 위와 같은 문장을 보며... 내가 보고 있는 코드가 자바가 맞는가? 라며, 찾아보면서 java 7부터 예외 처리 문법이 보완되었음을 알게 되었다. 크게 어려워진 점은 없으니 알아보도록 하자. 🚀 본론 크게 두 부분에서 변화가 있었는데 우선 try, catch, and finally 부분에 있어서의 보완된 점과 try-with-resources 문이 자바 7부터 도입된 부분이다. 🎯 try, catch, and finally 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 ..

SKILL/JAVA 2021.09.03

자바 : Heap pollution 이란?

-🚀 Heap pollution? 자바에서 힙 오염은 매개변수 유형이 서로 다른 타입을 참조할 경우 발생하는 문제인데, 문제는 컴파일 중에 정상적으로 처리되며 경고를 발생시키지 않는다. 나중에 런타임 시점에 힙 오염으로 ClassCastException이 발생한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 public class HeapPollutionDemo { public static void main(String[] args) { Set s = new TreeSet(); Set ss = s; // unchecked warning s.add(new Integer(42)); // another unchecked warning Iterator iter = ss.iterator..

SKILL/JAVA 2021.09.02

제네릭이란?

자바를 공부하면서 제네릭을 마주하였고, 뭐 이런 식으로 쓰면 되는 거구나라고 여기고 넘어갔지만 책장을 넘기며 진도를 나아가다 이해가 안 되는 모양의 녀석을 만나 public void multiGeneric(WildCardGeneric c, T addValue, S another) 다시 제대로 깊게 짚고 넘어가야 겠다는 생각을 하고, 결심 끝에 이렇게 정리를 해본다. 우선 들어가기에 앞서 DTO 객체를 한번 살펴보도록 하자. 모양은 Obejct 타입의 변수 하나와 get/set 메서드를 가진 이상할게 없는 전형적인 DTO의 모습을 하고 있다. 1 2 3 4 5 6 7 8 9 10 11 12 13 import java.io.Serializable; public class CastingDTO implement..

SKILL/JAVA 2021.09.01

스프링 부트와 aws로 혼자 구현하는 웹서비스 : 로그인 기능 구현 oauth

내가 못따라한 것일 수도 있지만 교재대로 따라하니 화면 구성이 다르다. 그래서 구글링해서 찾아서 해결했다. https://loosie.tistory.com/300 [Spring] 스프링으로 OAuth2 로그인 구현하기1 - 구글 스프링 시큐리티와 스프링 시큐리티 OAuth2 클라이언트 많은 서비스에서 로그인 기능을 id/password 방식 보다는 써드파티 방식으로 구글, 네이버과 같은 소셜 로그인 기능을 사용한다. 이는 서비스 loosie.tistory.com

SKILL/JAVA 2021.07.18

IntelliJ 에러 처리 이슈

7월 08, 2021 7:07:54 오후 org.junit.platform.launcher.core.EngineDiscoveryOrchestrator lambda$logTestDescriptorExclusionReasons$7 INFO: 0 containers and 1 tests were Method or class mismatch 테스트 Method를 3개 작성하였는데 3개중 1개만 실행하였을 경우 위와 같은 Info Message 가 발생하네요 테스트 코드를 모두 실행하면 위와 같은 메시지가 발생하지 않습니다. 테스트 실패는 아니니 강사님 말씀대로 테스트가 성공으로 진행된다면 그냥 무시하셔도 될 것 같습니다. 저도 이것 때문에 확인해 봤는데, 윈도우 기준 Intellij 설정에서 Settings -..

SKILL/JAVA 2021.07.08
반응형