억대 연봉을 위한 인간수업
반응형
article thumbnail
[Github] remote : Support for password authentication was removed
Develop/Git 2023. 12. 18. 02:13

remote : Support for password authentication was removed 오랜만에 맥북에서 git push를 하려 보니 다음과 같은 오류가 발생했다. remote: Support for password authentication was removed on August 13, 2021. remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication. fatal: Authentication f..

[Java] Lock에 대해서
Develop/Java 2023. 7. 19. 00:13

Lock? 멀티스레드를 사용하는 자바에서 lock은 동기화를 지원하기 위해 [Lock]이라는 것을 사용한다. lock을 사용하기 위한 키워드로는 synchronized와 lock.lock();이 있다. synchronized synchronized는 해당 키워드를 이용해 메소드에서도 사용 가능하고, 블럭으로도 사용할 수 있다. symchronized는 스레드 하나만 임계영역 지정이 가능해, 너무 세분화해서 lock을 걸면, 오버헤드가 발생할 수 있어서 필요한 부분에만 lock을 사용할 수 있게 주의해야 한다. 메소드에서 사용 메소드에 synchronized 키워드를 아래 예제처럼 사용할 수 있다. public synchronized void Test(){ //실행할 코드입력 //메소드 실행시 임계영역이 ..

[Java] try와 catch
Develop/Java 2023. 7. 18. 23:48

try와 catch문은 예외처리를 할 때 사용하는 구문이다. 예외처리? 프로그램 실행 중 오류, 예외(Exception)이 발생한 경우 프로그램이 강제종료 되지 않고 정상 처리될 수 있게 하는 방법 try-catch-finally 예시 try{ //예외가 발생할 수 있는 코드 }catch(Exception exception){ //Exception이 발생했을때 처리하기 위한 코드를 입력 //보통 예외 메세지를 출력하고 로그로 남긴다. //exception은 참조 변수를 의미 }catch(Exception2 exception2){ //Exception2가 발생했을때 처리하기 위한 코드 입력 }finally{ //예외 발생과 관계 없이 반드시 실행되는 코드를 넣는다 } 예제를 보면 알 수 있듯이 try에 코..

[Java] 싱글톤 패턴 : Thread safe & DCL
Develop/Java 2023. 7. 16. 15:44

멀티 스레드가 가능한 자바에서 singleton 패턴을 사용할 때, Thread safe singleton을 많이 사용한다. Thread safe가 필요한 이유는 멀티 스레드를 구현할 때 스레드를 사용하는 도중 문제가 일어나지 않게 하기 위해서 이며, 동기화를 위해 사용한다. 이걸 패턴으로 구현한게 Thread safe singleton 이다. Thread safe singleton class Singleton { private static Singleton singleton; private Singleton() {} public static synchronized Singleton getInstance() { if (singleton == null) { singleton = new Singleton()..

article thumbnail
[Intellij] 소스코드 실행 안될 때
Develop/Backend 2023. 7. 2. 13:57

오랜만에 intellij를 사용하는데 아래 사진처럼 소스코드가 실행되지 않는 상황이 발생했다. 버튼도 안되고 단축키도 안됨 이럴 땐 [Current File]의 Edit Configurations로 들어간다. 여기서 + 를 누른 뒤 Application을 클릭해준다. 그리고 Name, Build and run, 실행 위치를 설정 해주면 소스코드 실행이 가능하다!

[Java] this. 의미
Develop/Java 2023. 6. 3. 14:22

자바에서 this. 는 뭘 의미할까? this. 는 인스턴스 맴버를 가리킨다 this. 는 자신을 가리키는 키워드, 자신의 객체에 접근할 때 사용 그러니까 필드(전역변수)를 명확히 구분하기 위해서 사용 클래스 맨위에 전역변수로 선언된 그 변수 변수의 이름이 동일할 때 구분하기 위해 사용! 변수 이름이 같을때 구분하기 위해 this를 붙인다. 매소드의 인자값으로 받는것과 this. 변수는 다르다 인스턴스 맴버? 자기가 가지고 있는 필드 및 메소드를 의미한다. this. 사용 예시1 public class Test{ int a; //인스턴스 필드 public Test(int a) //

[Java] Concurrent HashMap과 Concurrent List
Develop/Java 2023. 5. 29. 22:15

java는 멀티 스레드를 지원하는 언어이다. 그러다 보니 싱글 스레드에서 최적화된 접근이 있고, 멀티 스레드에서 사용하기 위한 방법도 존재한다. 여기서 멀티 스레드 환경에서 어떤 함수나 변수, 객체가 여러 스레드로부터 동시에 접근이 일어나도 프로그램 실행에 문제가 없는 Thread-safe를 고려한 자료형이 존재한다. ConcurrentHashMap이란? 멀티 스레드 환경에서도 사용할 수 있게 나온 클래스로, 동시성을 높이기 위해 나온 클래스 hashTable과 synchronized map 보다 더 나은 성능을 가지고 있다 왜냐면 concurrentHash Map 은 map의 일부에만 lock을 걸고, hashTable과 Synchronized는 map 전체에 lock을 걸기 때문 사용 예시 1 pub..

[Java] Atomic과 CAS(Compare and swap)
Develop/Java 2023. 5. 29. 21:54

java는 멀티 스레드(Multi-Thread) 프로그래밍이 가능한 언어이다. 동시에 여러 가지 일을 할 수 있도록 하는 멀티 스레드, 그리고 스레드는 자바의 중요한 특성인데 cpu의 사용률을 높이기 위해 사용한다. 멀티 스레드 구현을 효과적으로 하기 위해 Atomic과 CAS 같은 개념이 사용된다. Atomic synchromized는 lock을 사용해 다른 스레드가 wating 하는 상황이 발생한다. 이걸 해결하기 위해 non-blocking한 방법으로 Atomic연산 사용 Atomic연산의 핵심 원리가 바로 CAS(Compare and swap)이다 atomin 자료형은 기본 자료형의 동기화를 보장해주는데 내부에서 CAS 알고리즘을 사용 atomic 변수는 멀티 스레드 환경에서 원자성을 보장해주기 ..

Given-When-Then Pattern?
Develop/Backend 2023. 5. 29. 15:10

Given-When-Then Pattern? 코드 작성 후 이를 검증하기 위한 테스트 코드 작성 방식으로, 테스트 코드를 Given-When-Then 3구역으로 나눠서 표현하는 방식 [준비 - 실행 - 검증] 방식이라 할 수 있다. given : 입력값 / when : 어떻게 할지 행동 / then 은 결과, assert로 나타내는 간단한 패턴 방식이다. 패턴 사용 예시 @Test void hashKeyCheck() { //given HashMake hashmake = new HashMake(); hashmake.saveData(1, "lee"); hashmake.saveData(2, "aa"); hashmake.saveData(3, "lsse"); //when Object returnvalue = ha..

반응형