해결된 질문
작성
·
251
·
수정됨
0
안녕하세요
미션이 재밌어서 이것저것 해보고 있는데요
진행에는 큰 문제가 없으나 더 좋은 방법이 있는지 여쭤보려고 합니다.
Thread 실습
미션2: synchronized 예약어를 사용하지 않고 Thread safe하게 구성한다.
간단하게 테스트를 성공시키기 위해서 ReentrantLock을 이용했습니다.
이 부분에는 정답이 없겠지만 다른 방안이 있는지 궁금합니다.
(volatile을 이용해보려고 했지만 잘 안되더라구요 😅)
웹 성능 테스트
letsencrypt 사용했을 때 접근은 되지만,
인증서가 올바르지 않는다는 빨간 경고가 발생하면서 한 번 더 클릭을 해야 접근을 할 수 있습니다.
이런 이유로 성능 테스트 사이트가 접근하지 못하고 있습니다.
관련하여 검색했을 때 '메일이 잘못되었을 때 인증서가 정상적으로 등록되지 않는다' 문구를 봤던 것 같은데 이런 이유일 수 있나요?
감사합니다.
답변 2
1
안녕하세요! 미션 즐겨주셔서 감사합니다~
제가 질문 확인이 좀 늦었네요 ㅠㅠ
Thread 실습 : 네, 말씀하신대로 여러 방법이 있을텐데요. 여기서 전달하고자 했던 메시지는 강의 때 언급드렸듯, Thread safe 하지 않은 상황에서 멀티쓰레드로 동작할 때 상태변수를 두지 않아야 한다는 점이었어요. 가령, List<User>를 속성으로 가지고 있는 UserRepository 객체가 존재하고, 같은 이름의 User는 존재하지 않는다와 같은 불변식을 세우면 어떨까요? 그렇다면 UserRepository를 통해 User를 추가할 때 User가 존재하는지를 확인해보므로, 이 테스트 케이스에 대한 해결책은 될거에요.
에러코드나 에러가 발생한 화면을 봐야 좀 더 정확히 답변드릴 수 있을거 같은데요. 경험상 letsencrypt를 사용하고 웹 서버를 띄운 후, 웹페이지에 접근했을 때 경고가 뜬다면 인증시 사용했던 URL과 접근 URL이 다를 수 있어요. 가령, '*.brainbackdoor.com' 혹은 'brainbackdoor.com'으로 인증받은 후, 'www.brainbackdoor.com' 으로 접근하려고 할 때 경고가 뜹니다.
혹시 추가로 궁금한 점이 있다면 또 문의남겨주세요. 좋은 하루 보내세요~
0
안녕하세요, 인프런 AI 인턴입니다.
먼저, ReentrantLock
을 이용하여 Thread
실습에서 synchronized
예약어를 사용하지 않고 Thread safe
하게 구성한 부분에 대해 질문해주셨네요. ReentrantLock
외에도 Thread
안전성을 보장하는 다른 방법으로는 Atomic
클래스를 사용하는 방법, Concurrent
패키지의 동기화된 컬렉션 사용 등이 있습니다. 예를 들어, java.util.concurrent.atomic
패키지는 원자적 연산을 지원하는 클래스(AtomicInteger
, AtomicLong
등)를 제공합니다. 이들 클래스는 간단한 연산에서 복잡한 동기화나 락 없이도 Thread
안전성을 보장할 수 있습니다. 또한, java.util.concurrent
패키지는 Thread
안전한 컬렉션과 추가적인 동시성 유틸리티(예: ConcurrentHashMap
, CountDownLatch
등)를 제공합니다. 사용 사례에 따라 적절한 도구를 선택하는 것이 좋습니다.
두 번째로, Let's Encrypt
를 사용할 때 빨간 경고가 나타나는 문제는 여러 원인에 의해 발생할 수 있습니다. 말씀하신대로 이메일 설정 오류로 인해 인증서가 정상적으로 등록되지 않는 경우일 수도 있습니다. 그 외에도 서버에 올바르게 인증서를 설치하지 않았거나, 중간에 사용되는 중간자(certification authority) 인증서가 클라이언트나 서비스에서 신뢰할 수 없는 인증서로 등록되어 있을 때도 이런 문제가 발생할 수 있습니다. 이런 경우 SSL
연결 과정에서 클라이언트와 서버 간의 신뢰성 검증이 올바르게 이루어지지 않아 경고 메시지가 나타날 수 있습니다. 따라서, 인증서의 상세 정보를 확인하고, 필요하다면 인증서를 재발급 받거나 인증서 체인을 올바르게 설정하는 등의 조치를 취해야 합니다.
질문하신 내용에 대한 구체적인 코드 수정이나 설정 변경 방법은 제공해 드린 정보가 없어 구체적인 예시를 드리지는 못했네요. 추가적으로 궁금한 점이 있으시다면 해당 기술의 공식 문서를 참조하시거나 관련 커뮤니티나 포럼에서 질문하여 해결 방안을 모색해 보시는 것을 추천드립니다.
이해했습니다.
답변 정말 감사합니다!