블로그 이미지

uchacha

개발자 일지

,

- @참고: https://scshim.tistory.com/267

1. 선택 정렬: 가장 작은걸 조사하면서 맨앞부터 순서대로 차곡차곡 보내기 //O(N^2)
2. 삽입 정렬: 현재 카드의 앞쪽 한칸씩 조사하며 더 작은 수를 만나면 그 뒤에 삽입한다. //O(N^2)
3. 퀵 정렬: 피벗을 선정해(호어Hoare 분할 방식은 첫번째 원소가 피벗!) 왼쪽부터 오른쪽으로는 피벗보다 큰 데이터 찾고, 오른쪽에서 왼쪽으로는 피벗보다 작은 데이터를 찾아서, 서로 엇갈리지 않을 땐 <- 로 찾은 수와 -> 로 찾은 수를 서로 교환. 서로 엇갈릴 땐 <- 로 찾은 수와 피벗을 교환. <- 로 모두 찾아도 피벗이 가장 클 땐 -> 맨 마지막과 피벗을 교환. // 평균 O(NlogN), 최악은 o(N^2)
4. 계수 정렬: 모든 데이터가 양수일 때, 데이터 크기가 제한적(1,000,000)일 때 

블로그 이미지

uchacha

개발자 일지

,

- @참고: https://st-lab.tistory.com/243

Comparable, Comparator와 정렬의 관계

- 양수일 경우: 두 원소의 위치를 교환함

- 음수일 경우: 두 원소의 위치를 교환 안함

 

따라서 o1, o2 를 비교할 때

val(o2) - val(o1) 을 리턴하면, 뒤의 값이 컸을 때 위치를 교환하므로 내림차순이되고,

val(o1) - val(o2) 를 리턴하면, 앞의 값이 컸을 때 위치를 교환하므로 오름차순이 된다.

블로그 이미지

uchacha

개발자 일지

,

@참고(TLSv1.3을 지원하는 java version): https://stackoverflow.com/questions/29437596/tlsv1-3-is-it-available-now-in-java-8

@참고(intellij JRE 버전 세팅): https://intellij-support.jetbrains.com/hc/en-us/community/posts/360000104304-Target-JRE-version-does-not-match-project-JDK-version-null- 

 

에러 메세지

Caused by: java.security.NoSuchAlgorithmException: TLSv1.3 SSLContext not available
    at sun.security.jca.GetInstance.getInstance(GetInstance.java:159)
    at javax.net.ssl.SSLContext.getInstance(SSLContext.java:156)

 

조건

0. intellij IDE

1. gradle build

2. sdk version: java 1.8.0_231 

 

해결

1. 일단 TLSv1.3은 java 8u261 로 TLSv1.3이 추가되어 최근에 업데이트 되었다. java version을 그 이상으로 맞춰주어야 한다.

2. intellij의 run, build 의 환경설정에서 잘 맞춰준 jdk를 사용하도록 세팅해주어야 한다.

  2-1. 개발, build 시

File -> Project Settings -> Project -> Project SDK 에서 설정한다. 

적용 후 Modules에 Dependencies를 확인하여 잘 설정되었는지 본다.

  2-2. run 시 

gradle run 하므로

File -> Settings -> Build, Execution, Deployment -> Build Tools -> Gradle -> Gradle JVM 을 잘 맞춰준 jdk로 세팅해준다. 

적용후 run 이 잘되는지 확인해본다.

 

 

블로그 이미지

uchacha

개발자 일지

,

@참고: https://www.andrewahn.co/silicon-valley/go-to-guy/

깊은 전문성, 관련 업무 능력, 긍정적이 자신감, 유연한 사고방식을 통한 지속적인 문제 해결을 겸비하여 내 담당 분야의 'go to guy'가 되자.

긍정적인 자신감은 문제의 해결 유무를 떠나 해당 문제를 접근하는 것 자체가 의미있고, 해결 방법이 있을 것이라고 긍정적으로 생각하며 접근하는 태도이다.

‘나는 (우버 처럼) 어려운 문제를 푸는 것이 좋다. 해결을 하던 안 하던, 어려운 문제들을 풀기 위해 노력하는 것이 진정 의미가 있기 때문이다. 어려운 문제가 싫다는 창업자는 마치 수학과 교수가 어려운 수학 문제가 싫다고 말하는 것과 같다.’

– 트래비스 칼리닉 (우버 창업자)

'태도' 카테고리의 다른 글

Teach Yourself Programming in Ten Years  (0) 2022.12.21
블로그 이미지

uchacha

개발자 일지

,

- @참고: https://gaemi606.tistory.com/entry/Ubuntu2004-LTS%EC%97%90-Java-11-%EC%84%A4%EC%B9%98-%ED%99%98%EA%B2%BD%EB%B3%80%EC%88%98-%EC%84%A4%EC%A0%95-Java-8-%EC%84%A4%EC%B9%98

- @참고(readlink): https://nobacking.tistory.com/76

 

1. java 설치

# 1. apt 업데이트
$ sudo apt update

# 2. java 설치
$ sudo apt install openjdk-8-jdk

# 3. java 설치 확인
$ java --version
$ javac --version

 

2. 환경설정

# 1. javac 위치 확인
$ which javac
# /usr/bin/javac

# 2. javac 위치 확인
$ readlink -f /usr/bin/javac
# /usr/lib/jvm/java-8-openjdk-amd64/bin/javac

# 3. environment에 등록
$ sudo vi /etc/enviroment

# >>>> 자바 경로 입력 후 저장
JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"
# >>>>

# 4. 변경사항 저장 후 확인
$ source /etc/environment
$ echo $JAVA_HOME

 

블로그 이미지

uchacha

개발자 일지

,

- @참고: https://mangkyu.tistory.com/75

 

Spring Bean 을 등록할 때 사용하는 어노테이션에 대해 

1. @Configuration @Bean 을 사용하는 경우와, 2. @Component를 사용하는 경우를 나누어 설명하고자 한다.

1. 은 

  • 초기 설정을 하기 위해 활용할 때

사용하는 것으로 bean을 등록하는 Config 클래스에 @Configuration을 붙이고, Config 클래스의 bean을 생성하는 메소드에 @Bean을 붙인다.

 

2. 는

  • 개발자가 직접 개발한 클래스를 bean으로 등록하고자 할 때

등록하고자 하는 class 위에 @Component 어노테이션을 붙이고, 상위 패키지 실행 클래스인 Main, App 클래스에서 @ComponentScan을 통해서 탐색범위를 지정하여 실행한다. 다만 SpringBoot의 경우에는 @SpringBootConfiguration 하위에 @ComponentScan이 기본적으로 포함되어 있어 별도의 설정이 필요 없다.

 

블로그 이미지

uchacha

개발자 일지

,

- @참고: https://dololak.tistory.com/795

원인이 높은 확률로 콘솔 출력 버퍼 사이즈 무한으로 해둔 것이라고 한다. 

이는 Window > preferences > Run/Debug > console 에서 Limit console output 체크박스를 풀어서 해결할 수 있다.

블로그 이미지

uchacha

개발자 일지

,