class SessionManager { static object _lock1 = new object(); public static void Test() { lock (_lock1) { UserManager.TestUser(); } } public static void TestSession() { lock (_lock1) { } } } class UserManager { static object _lock2 = new object(); public static void Test() { lock (_lock2) { SessionManager.TestSession(); } } public static void TestUser() { lock (_lock2) { } } 강의에는 두 클래스에 같은 _lock 써서 헷갈려서 lock1, lock2 로 나누었습니다. SessionManager.Test(); 하려면 lock1을 열고 들어가서 lock2를 열어야함. UserManager.Test(); 하려면 lock2을 열고 들어가서 lock1을 열어야함 예를 들어, t1이 lock1을 열고 들어가서 TestUser()을 하려고 했지만, 하필 t2가 lock2를 열자마자 들어갔을경우 t1은 lock2가 잠겨있어서, t2는 lock1이 잠겨있어서 둘다 아무것도 못하는 상황 = 무한 대기 걸려서 프로그램이 멈춘것 처럼 보이는 데드락 상황 이렇게 이해했는데 맞을까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 현재 강의를 들으려고 준비 단계인데 /Users/glen/Library/Java/JavaVirtualMachines/corretto-21.0.4/Contents/Home/bin/java -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:50271,suspend=y,server=n --enable-preview -javaagent:/Users/glen/Library/Caches/JetBrains/IntelliJIdea2024.2/captureAgent/debugger-agent.jar -Dkotlinx.coroutines.debug.enable.creation.stack.trace=false -Ddebugger.agent.enable.coroutines=true -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath /Users/glen/Desktop/Study_File/refactoring/target/classes:/Users/glen/.m2/repository/org/springframework/boot/spring-boot-starter/2.6.1/spring-boot-starter-2.6.1.jar:/Users/glen/.m2/repository/org/springframework/boot/spring-boot/2.6.1/spring-boot-2.6.1.jar:/Users/glen/.m2/repository/org/springframework/spring-context/5.3.13/spring-context-5.3.13.jar:/Users/glen/.m2/repository/org/springframework/spring-aop/5.3.13/spring-aop-5.3.13.jar:/Users/glen/.m2/repository/org/springframework/spring-beans/5.3.13/spring-beans-5.3.13.jar:/Users/glen/.m2/repository/org/springframework/spring-expression/5.3.13/spring-expression-5.3.13.jar:/Users/glen/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/2.6.1/spring-boot-autoconfigure-2.6.1.jar:/Users/glen/.m2/repository/org/springframework/boot/spring-boot-starter-logging/2.6.1/spring-boot-starter-logging-2.6.1.jar:/Users/glen/.m2/repository/ch/qos/logback/logback-classic/1.2.7/logback-classic-1.2.7.jar:/Users/glen/.m2/repository/ch/qos/logback/logback-core/1.2.7/logback-core-1.2.7.jar:/Users/glen/.m2/repository/org/apache/logging/log4j/log4j-to-slf4j/2.14.1/log4j-to-slf4j-2.14.1.jar:/Users/glen/.m2/repository/org/apache/logging/log4j/log4j-api/2.14.1/log4j-api-2.14.1.jar:/Users/glen/.m2/repository/org/slf4j/jul-to-slf4j/1.7.32/jul-to-slf4j-1.7.32.jar:/Users/glen/.m2/repository/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar:/Users/glen/.m2/repository/org/springframework/spring-core/5.3.13/spring-core-5.3.13.jar:/Users/glen/.m2/repository/org/springframework/spring-jcl/5.3.13/spring-jcl-5.3.13.jar:/Users/glen/.m2/repository/org/yaml/snakeyaml/1.29/snakeyaml-1.29.jar:/Users/glen/.m2/repository/org/slf4j/slf4j-api/1.7.32/slf4j-api-1.7.32.jar:/Users/glen/.m2/repository/org/kohsuke/github-api/1.116/github-api-1.116.jar:/Users/glen/.m2/repository/org/apache/commons/commons-lang3/3.12.0/commons-lang3-3.12.0.jar:/Users/glen/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.13.0/jackson-databind-2.13.0.jar:/Users/glen/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.13.0/jackson-annotations-2.13.0.jar:/Users/glen/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.13.0/jackson-core-2.13.0.jar:/Users/glen/.m2/repository/commons-io/commons-io/2.4/commons-io-2.4.jar:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar me.whiteship.refactoring._01_smell_mysterious_name._01_before.StudyDashboard Connected to the target VM, address: '127.0.0.1:50271', transport: 'socket' Exception in thread "main" java.io.IOException: Failed to resolve credentials from ~/.github or the environment. at org.kohsuke.github.GitHubBuilder.fromCredentials(GitHubBuilder.java:76) at org.kohsuke.github.GitHub.connect(GitHub.java:137) at me.whiteship.refactoring._01_smell_mysterious_name._01_before.StudyDashboard.main(StudyDashboard.java:36) Caused by: java.io.FileNotFoundException: /Users/glen/.github (Is a directory) at java.base/java.io.FileInputStream.open0(Native Method) at java.base/java.io.FileInputStream.open(FileInputStream.java:213) at java.base/java.io.FileInputStream.<init>(FileInputStream.java:152) at java.base/java.io.FileInputStream.<init>(FileInputStream.java:106) at org.kohsuke.github.GitHubBuilder.fromPropertyFile(GitHubBuilder.java:200) at org.kohsuke.github.GitHubBuilder.fromPropertyFile(GitHubBuilder.java:184) at org.kohsuke.github.GitHubBuilder.fromCredentials(GitHubBuilder.java:68) ... 2 more Disconnected from the target VM, address: '127.0.0.1:50271', transport: 'socket' 라는 오류가 계속해서 발생하고 있습니다. 자바 17버전을 사용할 경우 <compilerArgs>--enable-preview</compilerArgs> 를 사용할 수 없다고도 발생해서 21버전으로 진행중입니다 이것도 맞는지 알려주시면 감사하겠습니다.
h2 데이터베이스 연결이 자꾸 안된다고 뜹니다... Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided)
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
FAILURE: Build failed with an exception. * What went wrong: A problem occurred configuring project ':agora_rtm'. > Could not create an instance of type com.android.build.api.variant.impl.LibraryVariantBuilderImpl. > Namespace not specified. Specify a namespace in the module's build file. See https://d.android.com/r/tools/upgrade-assistant/set-namespace for information about setting the namespace. If you've specified the package attribute in the source AndroidManifest.xml, you can use the AGP Upgrade Assistant to migrate to the namespace value in the build file. Refer to https://d.android.com/r/tools/upgrade-assistant/agp-upgrade-assistant for general information about using the AGP Upgrade Assistant. * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org. BUILD FAILED in 687ms Error: Gradle task assembleDebug failed with exit code 1 라는 에러가 발생하네요. macOS를 sequoia로 올려서 그럴까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. KMS 는 보안 인증서를 관리하고 저장하는 솔루션이 아닌데 문제에서는 인증서를 암호화하고 해독할 수 있는 솔루션을 원한다 하였습니다. 인증서를 저장하고 관리하는 것은 Secrets Manager니까 답이 2개가 되어야 하는거 아닌가요? 보안 인증서를 저장한다는 내용은 문제에 나와 있지 않고 "데이터가 암호화 된 후 " 라는 내용만 있으니 A와 C가 복수 정답이 되어야 하는거 아닌가요? C 만 답이긴 어려운거 아닌가요? 인증서를 암호화하고 해독한는 것도 KMS가 할 수 있는건가요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 자동완성 단축키(ctrl shift enter)나 주석달기(ctrl /) 같은 단축키가 잘 되다가 어느순간 안됩니다. 인텔리제이를 재시작해도 안 되고 컴퓨터를 재부팅하면 해결됩니다. 인텔리제이에서 캐시 삭제도 해봤는데 재부팅 말고는 해결이 안 됩니다. 다른 해결 방법이 없을까요?
https://kubetm.github.io/k8s/02-beginner/cluster-install-case7/ mac os 환경에서 설치를 진행하는 도중 질문이 있습니다. master 토큰확인 후, 토큰 붙여넣기 과정이 있는데 토큰 붙여넣기는 어떤식으로 진행해야하는 지 궁금합니다.
안녕하세요, 강의를 잘 듣고 있는 와중에 이클립스만 사용하다가 인텔리제이를 처음 사용해보려고 하는데 어디서 문제가 생긴건지 모르겠어서 질문드립니다. 현재, 섹션4의 프론트엔드가 포함된 백엔드 프로젝트 배포하기 과정을 듣고 있는 와중 원래는 m 이라는 탭 또한 없어서 https://insertintoblog.tistory.com/32 을 참조하여 탭을 생성하기는 했습니다. 이후에 빌드를 했으나 용량이 MB 단위가 아닌 KB 단위로 측정되며 Github에도 동일한 용량으로 커밋되고 있습니다 ㅠㅠ 무시하고 putty 통해서 wget 이후 java -jar shorten ~ 명령어를 작성하자 no main manifest attribute, in shroten-url-service-1.0-SNAPSHOT.jar 라는 문구와 함께 이후 진행이 불가능하여 질문드립니다... ㅠ
상세페이지마다 반복되는 "구매하기" 버튼 같은 걸 세팅할 때, 각 상세페이지마다 그 버튼은 반복되는데 알려주신 css selector 방법으로 위치를 잡아서 하면 딱 그 특정 제품에 있는 구매하기 버튼만 이벤트로 잡히나요? 반복되는 버튼은 어떻게 세팅해야 보고서에서 잘 활용할 수 있나요?
여기서 중요한점이 있다. request scope를 사용하지 않고 파라미터로 이 모든 정보를 서비스 계층에 넘긴다면, 파라미터가 많아서 지저분해진다. 더 문제는 requestURL 같은 웹과 관련된 정보가 웹과 관련없는 서비스 계층까 지 넘어가게 된다 . 웹과 관련된 부분은 컨트롤러까지만 사용해야 한다. 서비스 계층은 웹 기술에 종속되지 않고, 가급적 순수하게 유지하는 것이 유지보수 관점에서 좋다. request scope의 MyLogger 덕분에 이런 부분을 파라미터로 넘기지 않고, MyLogger의 멤버변수에 저장해서 코드와 계층을 깔끔하게 유지할 수 있다. <-이부분이 이해가 안되여 ㅠ 웹과관련된 정보라는게 머에여? public void logic(String id) { myLogger.log("service id = " + id); 이부분도 웹과관련된부분 아닌가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] @GeneratedValue 에서 따로 strategy 전략을 안주면 AUTO로 설정되고 jpa에서 pk 순서?를 관리해주는걸로 알고있는데 몇번 post man으로 API 요청을 날리다보니 member_id 가 1,2까지 순차적으로 증가하다가 갑자기 52번으로 뛰었어요. 그래서 member_seq 테이블의 값을 3으로 수정해줬는데 다시 api 호출을 해보니 음수로 바뀌었습니다. 이부분이 이해가 안가는데 pk 값을 어떤식으로 동작? 관리 하는지 알려주시면 감사하겠습니다. 그리고 이 방식은 항상 순차적인 값으로 증가가된다는 보장이 없는것 같은데 AUTO 로 사용해도 되는지 궁금합니다. 참고로 db는 Mysql 사용했습니다. .
제목 그대로 계속 자료 찾아보고 다시 설치해도 계속 오류가 나는건지.. Host가 naver만 찍히 인터셉트 온 하면 네이버만 인터셉트 됩니다. 그리고 제일 중요한건 HTTPhistory 목록에 localhost, localhost/dvwa 내역이 죽어도 안뜨네요.. 혹시 해결책 있을까요.. ?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 강의에서는 21버전의 Oracle OpenJDK를 사용하셨는데 23버전만 뜨는 것 같은데 23버전을 사용해도 되나요?
vector를 string으로 풀었다가 int로도 풀어보고 싶어 약간의 수정을 하여 제출하였는데 틀렸습니다. 다만 아무리 생각해도 반례가 떠오르지 않아 왜 틀렸는지 모르겠어서 여쭤봅니다. tc는 모두 통과했습니다. vector<int> 썼다가 틀린 코드 링크 http://boj.kr/5d5a3056a5804d5daf25be09844dccfc vector<string> 써서 맞춘 코드 http://boj.kr/82a463f3c16545f0990aeb8d2eadb2c7 + 고민해보던 중 각 줄의 최대 글자 수가 100자인데 정수(int. long long)로 할 경우 최대 100자의 값을 받을 수가 없어서 틀렸다고 생각이 들었습니다. 혹시 맞을까요? ㅎ-I 2-I