우선 좋은 강의 감사드립니다. 강의내용중 running -> runnable 로 이동하는 방법에 yield, I/O 가 있다고 하셨는데, DB query 등을 하면 응답이 올때까지 waiting으로 상태변경이 되는게 아닐까 싶어 샘플코드를 짜보니 정말로 running-> runnable 상태이던데, 1) 응답이 올때까지 기다리는 것이기도 하고 2) runnable 이면 언제라도 running이 될수 있는데, 이 경우 running -> runnable -> running 으로 상태변경되었는데 아직 응답이 오지 않았으면 다시 runnable 로 넘어가고.. 이런게 반복되는건가요? 샘플코드는 아래와 같이 만들어봤습니다. RestTemplate template = new RestTemplate(); template.getEntity(xxx); // 응답이 10초 걸리는 api 호출 10초 내에 위 작업을 하는 쓰레드의 상태를 log 로 찍으니 runnable 로 나왔습니다.
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
먼저 대출 기능 만들기 강의를 듣다가 문제를 2개 발견하였습니다. 유저 등록부터 'java.lang.IllegalArgumentException: null' 가 생깁니다.... 진짜 전에 잘 되던 것이 갑자기 왜 안되는지 막막합니다.... 그리고 대출 기능도 'java.lang.IllegalArgumentException: null' 가 생깁니다....이건 혹시 유저 부분에서 등록이 안되는 부분 때문에 생기는 오류인건지...부탁드립니다.. 똑같이 대출 기능 만들기 부분에서 생기는 건데, 위의 오류 문제를 해결하려고 형변환을 없애다 보니 아래와 같이 빨간줄이 나옵니다.. 왜 이러는 걸까요...ㅠㅠ 구글 링크로 파일 업로드 했으니, 혹시나 참고해서 말씀하실 부분 있으시면 말씀 부탁드립니다. https://drive.google.com/file/d/1X9s-VjcAeBurdxOYrIOzwa0yZNNoue54/view?usp=sharing https://drive.google.com/drive/folders/1vB-XwaSlIKfY2Diq66g6JnQ8vyKVWQvn?usp=sharing
용량 공급자와 같은 설정에 대해서 질문이 있습니다 기존의 fargate로 배포해놓은 ecs 서비스에 용량 공급자 설정을 fargate_spot으로 변경하여 서비스 업데이트 한 후, 강사님께서 짜주신 ecs git action을 통해 배포하면 fargate spot이 적용이 될까요?
안녕하세요. 강의 잘 듣고있습니다. 강의 내용에 관한 질문은 아니구요. 커리큘럼 중, '섹션5. 파일 및 이미지 업로드 (S3)'의 '[실습] 1.S3 버킷 생성하기' 강의가 있는데, 영상이 3초로 이상 편집된 것 같습니다. 저만 그렇게 보이는 것인지 모르겠지만 확인 부탁드립니다.
안녕하세요 연구실에서 자체적으로 실험기기와 컴퓨터랑 통신을 진행하는 중인데, 하나가 해결이 안 되어서 너무 답답해서 고수님들께 자문을 구하려고 합니다. Rs232 rtu 모드를 지원한다고 한 OS-20 overhead stirrer과 통신을 진행 중 입니다. 이 친구의 통신 규격과 방식은 아래 그림 3개와 같습니다. 이중 stirrer control 부분을 제가 참조해서 저 command를 hex 방식으로 입력하였는데 도무지 안되는 겁니다. 그런데 웃긴게 이 회사에서 지원하는 공식 통신프로그램을 사용하면 작동이 잘 되더군요. Instruction overview에서 나온 규칙은 다음과 같습니다. Command 구조는 Prefix Instruction_code Data_frame Checksum로 되어 있고 입력의 prefix는 0xfe로 시작하며 responce는 0xfd로 시작합니다. 모든 바이트 사이에는 50ms delay가 존재해야하며 Dataframe은 큰 수 자리부터 전송합니다. ex) 1000rpm을 data frame에 입력하려고 할 시 Hex값이 03E8이니까 앞에 두 자리를 0x03에 해당하고 뒤에 두 자리를 0xE8로 해당시킵니다. Null은 0x00입니다. Checksum 방식은 0xfe,0xfd인 prefix를 제외하고 나머지를 전부 더한 값으로 0xnn 이런식으로 표현됩니다. 신기하게도 16진수의 2자리를 넘어가도 뒤에 2 자리만 붙이면 된다고 하더군요. ex) 0xfe 0xb1 0x03 0xe8 0x00 checksum인데 0xfe를 제외하고 다 더하면 019c이지만 0x9c만 입력하면 되는 형식입니다. 그래서 이 규칙대로 코드를 짜서 통신을 해 보았는데, 아무리 해도 안되어서 너무 답답합니다. 심지어 제가 잘못했는지 확인하려고 시리얼 통신 sniffer을 사용하여서 공식 프로그램에서는 어떻게 통신이 되나 뜯어보았습니다. 결과는 아래 사진과 같습니다. 제가 python으로 작성한 코드는 아래와 같습니다. import serial import time ser = serial.Serial( port='COM7', # Update with your actual port baudrate=9600, parity=serial.PARITY_NONE, # No parity stopbits=serial.STOPBITS_ONE, # 1 stop bit bytesize=serial.EIGHTBITS # 8 data bits ) def send_hex_string(hex_string): # Convert the hex string to bytes byte_data = bytes.fromhex(hex_string) # Send the bytes over the serial port ser.write(byte_data) def send_hex_string_with_delay(hex_string, delay_ms=50): for i in range(0, len(hex_string), 2): # Extract each pair of characters and convert to bytes hex_pair = hex_string[i:i + 2] byte_data = bytes.fromhex(hex_pair) # Send the bytes over the serial port ser.write(byte_data) # Wait for the specified delay time.sleep(delay_ms / 1000.0) command = 'feb103e8009c' send_hex_string_with_delay(command) ser.close() 또한 파이썬에서의 결과를 시리얼 전송으로 보면 다음과 같습니다. 입력은 제대로 되는데 기기에는 반응이 제대로 나오지 않네요... 제가 잘못하고 빠뜨린 점이 있을까요? 읽어주셔서 정말 감사드립니다.
호돌맨의 요절복통 개발쇼 시즌2 배포 준비(빌드) 강의를 듣고 있는데, 계속 오류가 생겨 질문 올립니다. 우선 ./gradlew clean으로 삭제한 뒤 ./gradlew build를 실행하면 이런 식으로 한글이 깨졌다는 에러가 나옵니다. 해결하고자 했던 방안 세팅 바꾸기 파일 인코딩 바꾸기 Help - EditCustom Vm Options 이런 방법을 써 봤으나 다 되지 않았고 이 코드를 build.gradle에 넣는 방식으로 해결했더니 build 후 libs 폴더가 생기지 않습니다. 그래서 이 부분을 true로 바꿔주면 plain snapshot만 생깁니다. 어떻게 해결해야 하나요? 밑 코드는 build.gradle 파일입니다. plugins { id 'java' id 'org.springframework.boot' version '2.5.9' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id "org.asciidoctor.jvm.convert" version "3.3.2" } group = 'com.reheat' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '11' } configurations { compileOnly { extendsFrom annotationProcessor } asciidoctorExt } repositories { mavenCentral() } ext { asciidocVersion = "2.0.6.RELEASE" snippetsDir = file('build/generated-snippets') } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-validation' testImplementation 'org.junit.jupiter:junit-jupiter:5.8.1' testImplementation 'junit:junit:4.13.1' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' //REST Docs asciidoctorExt "org.springframework.restdocs:spring-restdocs-asciidoctor:${asciidocVersion}" testImplementation "org.springframework.restdocs:spring-restdocs-mockmvc:${asciidocVersion}" } tasks.named('test') { useJUnitPlatform() } test { outputs.dir snippetsDir } asciidoctor { inputs.dir snippetsDir configurations 'asciidoctorExt' dependsOn test } bootJar { enabled = true dependsOn asciidoctor copy { from asciidoctor.outputDir into "src/main/resources/static/docs" } } jar{ enabled = true } tasks.withType(JavaCompile){ options.encoding = "UTF-8" }
안녕하세요, 회사에서 화이트리스트에서 특정 웹 사이트를 추가해야해서 IP로 화이트리스트에 추가해야한다고 했을 때, 로드밸런서나 어떤 방법(컨테이너 서비스 등)으로 상대방의 웹 사이트에 접속할 때마다 IP가 바뀌어 화이트 리스트가 제대로 작동하지 않는 경우는 어떻게 해야 하나요? 일일이 생기는 IP를 모두 화이트리스트에 등록을 해야하는지요? 고맙습니다.
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
안녕하세요 인텔리제이에서 프로젝트를 open>build>LibraryAppApplication run을 하면 아래 화면에서 더이상 진행되지 않습니다. Started LibraryAppApplication in 3.292 seconds (JVM running for 3.791) 라는 메세지가 마지막에 출력되나 좌측에 상태를 보면 '빌드 중'으로 계속 출력되고 있습니다. 추가로 확인해봐야 하는 설정이 있으면 안내 부탁드립니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? ( 예 /아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? ( 예 /아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? ( 예 /아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요. 해당 부분들을 공부하면서 제 자신의 정리가 확실하지 않아서 여쭤보고 싶습니다. 오버라이딩 된 Child.method()가 아닌 Parent.method()를 받으려면 super와 부모클래스의 업캐스팅을 통하여 해결하면 되다고 이해하면 될지 여쭤봅니다.
안녕하세요! ElectricCar electricCar = new ElectricCar(); electricCar.move(); 이렇게 하면 호출한 electricCar 의 타입은 ElectiricCar 라서 인스턴스 내부의 ElectricCar 타입에서 시작한다고 하셨습니다. 그래서 electricCar.move(); 를 실행하면 ElectricCar 의 move() 메서드가 실행돼서 전기차를 빠르게 이동합니다. 이렇게 전기차로 출력이 됩니다. Car electricCar = new ElectricCar(); electricCar.move(); 그럼 이렇게 타입이 Car 타입이면 인스턴스 내부의 Car 타입에서 move() 메서드를 실행시켜 "차를 이동합니다."가 출력될 것이라고 생각했는데 전기차를 빠르게 이동합니다. 여기서도 전기차를 빠르게 이동합니다.가 출력됩니다. 어째서 Car 타입에서 move() 메서드를 실행하지 않고 ElectricCar 의 move() 메서드를 실행하게 되는건가요? 감사합니다!! 😊
안녕하세요 강사님 좋은 강의 올려주셔서 감사합니다. 강의 수강을 위해 원본 도표강의 자료 항목에 있는 강의 자료 다운로드 후 열어보려고하니 파일이 확인되지않습니다. (확장자 등을 변경해서 확인하려고해도 불러오지 못하고있습니다.) 혹시 별도의 pdf 리더가 필요한건가요? 바쁘시겟지만 확인 한번 부탁드립니다.
안녕하세요~ 강의를 듣다가 제가 뭔가 잘못한건지 actuator에 refresh가 동작하지 않아 질문글을 남깁니다. 강의 2-10번 DB 비밀번호 암호화까지 문제 없이 잘 진행하다 재가동 없이 설정파일 갱신하는 부분을 진행하는데 item-service에서 build.gradle에 의존성 추가하고 bootstrap.yml에 설정 옵션 추가했는데 config-server 설정 파일 변경 후 postman 에서 refresh 요청을 날려도 response body 에는 [] 빈 배열만 찍히고 별다른 문구가 없고 변경된 설정이 적용되지 않더라고요 강의를 봐도 크게 설정하는 부분이 많은건 아니어서 잘 적용된 것 같은데 작동하지 않는 원인이 콘솔에 찍히지 않아서 헤메고 있습니다. build.gradle 의존성과 bootstrap.yml 에 설정 추가하고 config-server 실행시키고 item-service 실행시킨 후 설정 파일에 변경점을 주고 localhost:5000 번으로 /actuator/refresh 요청을 날렸습니다. 그리고 물품등록 요청을 보내서 200코드 성공했는데 별도의 logs 폴더에 api-local2.log는 생기지 않았습니다. 강의와 다르게 한건 인텔리제이로 프로젝트 구성한 것과 스프링부트 마이너 버전만 달라서 크게 문제가 있지는 않을 것 같은데.. 2-10 강의까지 해본 깃 주소도 올려봅니다. https://github.com/doyoun8813/Microservice