[운영체제] 싱글턴 객체에서 상태를 유지하게 설계하면 안되는 이유? (레이스 컨디션)
Back-end/etc..2024. 5. 23. 11:58[운영체제] 싱글턴 객체에서 상태를 유지하게 설계하면 안되는 이유? (레이스 컨디션)

✅ Git https://github.com/ellaCoo/mvc_programming/commit/1bd5b50b66dadf3342911a5330a7b68f9708d408출력을 보면 예상과 다른 결과가 나옴⇒ 싱글턴 객체에서 상태를 유지하게 설계되면 문제가 발생한다!멀티스레드 환경에서 하나의 객체(자원)를 공유하게 되면 우리가 뜻하지 않은 레이스 컨디션 문제 발생함✅ 개념레이스 컨디션두 개 이상의 프로세스 혹은 스레드가 하나의 자원을 서로 사용하려고 경합(Race)하는 상태 = 즉, 여러 스레드가 하나의 자원에 동시에 접근하기 위해 경쟁을 하면서 우리가 원하지 않는 결과가 나옴⇒ 싱글턴 객체에서 상태를 유지하게 설계되면 Thread-safety 하지 않다!스레드가 안전하다면 우리가 예상한 결과가 나왔어..

[HTTP] http는 왜 stateless, connectionless할까?
Back-end/etc..2024. 5. 23. 11:22[HTTP] http는 왜 stateless, connectionless할까?

✅ 개념HTTP서버와 클라이언트가 웹에서 데이터를 주고받기 위한 프로토콜 (규약)HTTP/1.1, HTTP/2는 TCP 기반 위에서 동작HTTP/3는 UDP 기반 위에서 동작 → 3-way 핸드쉐이크로 연결을 맺을 필요가 없다.HTTP 요청/응답 메시지 구조 (http://www.ktword.co.kr/test/view/view.php?m_temp1=4884)특징클라이언트 - 서버 모델무상태 프로토콜 (Stateless)서버가 클라이언트 상태를 유지하지 않음= 클라이언트가 서버에 요청을 보내면 서버는 클라이언트에게 응답을 주고, 바로 close하며 연결을 끊어버림= 즉, 서버가 클라이언트의 상태를 유지하지 않음⇒ 해결책 : Keep-Alive 속성 사용 비 연결성 (Connectionless)서버가 클라..

[디자인패턴] 일급 컬렉션이란? +리팩토링
Back-end/etc..2024. 5. 22. 12:54[디자인패턴] 일급 컬렉션이란? +리팩토링

✅ Githttps://github.com/ellaCoo/mvc_programming/commit/e128b42454a77bd972e3fb56e4743bbbb31c1949✅ 개념- 컬렉션을 포함하는 클래스가 단 하나의 컬렉션만을 멤버 변수로 가지는 디자인 패턴- 이 패턴은 컬렉션을 직접 사용하는 대신, 컬렉션을 포장하는 클래스를 통해 사용함으로써 다양한 이점을 제공- 일급 컬렉션은 주로 코드의 가독성, 유지보수성, 객체 지향 설계의 원칙을 준수하기 위해 사용✅ 예제일급 컬렉션(Courses): 리스트 형태로 된 Course 정보만 인스턴스 변수로 가지는 클래스이다.→ 이 정보를 가지고 처리할 수 있는 책임들이 Courses라는 일급 컬렉션 밑으로 모두 이동함 import java.util.List;// ..

Back-end/etc..2022. 4. 27. 11:14[LINUX] jar파일 컴파일 버전 찾기

1. jar파일 압축 풀기jar파일이 있는 디렉터리로 이동한 다음,jar xvf 파일명.jar 2. class파일 위치로 이동하고,javap -verbose 클래스파일.class해당 명령어 입력 후 출력되는 결과에서 major version을 확인한다.Java SE 11 = 55Java SE 10 = 54Java SE 9 = 53Java SE 8 = 52Java SE 7 = 51Java SE 6.0 = 50Java SE 5.0 = 49JDK 1.4 = 48JDK 1.3 = 47JDK 1.2 = 46JDK 1.1 = 45

Back-end/etc..2022. 2. 11. 10:02[MyBatis] foreach 사용해서 List<Map<>> INSERT하기

[{gubunEn=Total, gubun=합계}, {gubunEn=Seoul, gubun=서울}, {gubunEn=Busan, gubun=부산}, {gubunEn=Daegu, gubun=대구}]위와 같은 List> 형태의 데이터를 MAPPER에서 INSERT 하는 방법을 foreach를 사용해서 구현해본다.VO클래스: 데이터베이스 안에 있는 테이블의 컬럼과 같은 값을 갖는 자바빈 클래스MyBatis foreach문 지원 태그- collection : 전달받은 인자. List or Array 형태만 가능- item : 전달받은 인자 값을 alias 명으로 대체- open : 구문이 시작될때 삽입할 문자열- close : 구문이 종료될때 삽입할 문자열- separator : 반복 되는 사이에 출력할 문자열..

image