ㅜ,ㅜ 안녕하세요. 수업 내용중에 타입 제한을 쓰는 이유가 잘 이해가 안가는데요. 제네릭의 장점과 타입 추론에서의 이점 수업에서.. function logText < T > ( text : T ) : T { console . log (text); return text; } const str = logText < string > ( ' abc ' ); str . split ( '' ); const login = logText < boolean > ( true ); 이렇게 하면 str은 string, login은 boolean타입이 되어 각각 원하는 API나 관련 타입으로 이용이 가능하다고 하셨는데요. 그렇다면 아래 처럼 이렇게 하면 파라미터 반환값 모두 string형태인걸 자스도 알고 있는데 왜 length를 사용할 수 없나요? 자스에서 string에 string.length 속성이 있으니 사용할 수 있어야 하지 않나요? 그리고 타입 제한 수업 끝 부분에 function logTextLength < T > ( text : T ) : T { console . log (text . length ); return text; } logTextLength ( ' hi ' ); string을 자스가 알지 못하니 파라미터와 반환값에 배열을 넣어 타입 힌트를 주는게 타입 제한이라고 하셨는데요. 우리가 호출하고 싶은건 logTextLength('hi'); hi라는 string인데 왜 배열을 힌트로 알려주나요? 힌트를 줄거면 string이라고 힌트를 줘야 하지 않나요? string글자가 char의 array형태이기 때문에 배열 힌트를 준건가요? 미리 감사합니다. 선생님!!!
먼저 좋은 강의 제작에 힘써주셔서 감사합니다. 많은 도움이 되고 있습니다. 강의 후반부에 JdbcTemplate을 사용하는 것까지 듣고나서 드는 의문이 생겨서 질문을 남깁니다. 1. JPA를 쓰는 도중 JDBC를 사용하는 경우는 어떤 때인가요? 2. JPA를 쓰는 도중 JDBC를 사용할 일이 생겼을 때 기존의 Try~catch~finally로 쓰는 방식보다는 JdbcTemplate을 사용하나요?
강의를 처음부터 들으면서 코드를 누적해서 작성하고 있었습니다. 이번강의에서 auth.inMemoryAuthentication().withUser()메서드를 3번 사용하여 각각 user, admin, sys이름을 가진 계정을 생성하셨는데, admin, sys 계정으로 접속이 안되길래 알아보니 ppt 30페이지 내용의 http.rememeberMe().userDetailsSevice(userDetailsService)코드가 문제였던것 같습니다. 해당 코드를 삭제하니 강의 내용처럼 정상적으로 작동합니다. 여기서 드리고싶은 질문은, 인메모리 상에서 인증객체을 생성하는 것과 UserDetailsSevice는 같이 사용할 수 없는 건가요?
항상 양질의 강의 감사합니다. 다름이 아니라 2가지 질문이 있어서 남기게 되었습니다. 1) 이전까지 문제들은 BFS로 풀이할 때, while Q: <- 이 부분이 이중 for 구문 안에 있었는데 왜 해당 문제의 경우 따로 분리되어서 진행이 되나요? 논리적으로 고민해봐도 이해가 잘 되지 않습니다ㅠ 2) 문제 조건에 '저장될 때부터 모든 토마토가 익어있는 상태이면 0'을 출력하라고 되어있는데 코드에서 '토마토가 모두 익지는 못하는 상황이면 -1'을 출력하는 부분만 나와있는 것 같습니다. 혹시 어느 부분에 추가로 작성하면 되는지 알려주실 수 있으실까요? 다시 한번 항상 최고의 수업 제공해주셔서 감사 말씀 드립니다.
안녕하세요 좋은 강의 덕분에 열심히 공부하고 있습니다 ㅎ.ㅎ 앞 영상에서 가상머신과 컨테이너의 차이점에 대해 설명 해주셨는데요. 가상머신은 호스트 os 위에 게스트 os가 올라가서 성능적으로 느리고, 컨테이너는 같은 os의 커널을 공유하고 그저 프로세스끼리 격리된 것이라 빠르다고 말씀 해주셨는데요. 1. 도커는 리눅스를 지원하기 때문에, 가상머신 위에 설치된다. => 도커는 리눅스 커널이 필요하기 때문에, mac os에서는 가상머신 위에 리눅스 게스트 os를 깔고 그 위에서 도커가 돌아간다고 이해하면 될까요? => 만약 그렇다면 도커의 성능적 이점이란건, 게스트 os를 딱 하나만 만들면 되니까 이득이다~ 이렇게 이해하면 될까요? 2. 이미지, 컨테이너도 파일 인가요? 도커 엔진 외에 파일 시스템에서 그걸 볼 수 있는 방법이 있나요?? 감사합니다~
5강 Craft_license 파일을 직접 실습해보고 있습니다. 컴퓨터 내장의 GPU를 사용해서 해보고 싶어서 파이참에 GPU설정을 해둔 후에 학습을 시키다가 571번 학습까지 가다가 멈춰서 다시 학습을 이어가고 싶은데 코드를 돌리면 다시 1번부터 반복이 시작됩니다. 파일을 보면 h5파일들도 정상적으로 만들어져 있고 .\detector_carplate.h5 model loaded! 라는 파일을 잘 인식했다는 문구도 나오는데 Epoch이 왜 1부터 시작되는지 모르겠습니다 ㅠㅠ
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
루키스님 안녕하세요 1. 다름이 아니라, 패딩 관련 설명을 듣고 이것저것 실험하던 중, struct ObjectInfo2 { short type; char defence; int hp; __int64 attack; }; 로 ObjectInfo2라는 새로운 구조체 타입을 만들고 ObjectInfo2 playerInfo2;를 한 뒤 디버깅 상태에서 sizeof(playerInfo2)를 조사식에 입력하였는데 예상대로라면 __int64의 크기 * 4 = 32byte가 나올 줄 알았는데 오히려 12byte라고 출력되었습니다... 왜 이런 결과가 나온 것인가요? 2. 32bit 체제와 64bit 체제는 메모리나 레지스터 체계에서 4바이트냐 8바이트냐 정도의 차이가 있다고 들었는데 실제 코딩할 때는 어떤 방식으로 영향을 주고, 또 실수가 난다면 어떤 식으로 나게 되나요? 3. &playerInfo를 하니 주소값이 나왔는데 멤버 변수들의 값이 해당 주소값보다 높은 주소들에 위치하고 있었습니다...전역변수들은 원래 이렇게 되는 것인가요?
배포한 사이트가 좀 느린것 같아서 아마존을 살펴보니 제가 aws 콘솔 리전을 캘리포니아로 해놓고 인스턴스를 생성한것 같더라구요... 이부분을 서울로 변경하려하는데 AMI 복사를 이용하여 서울로 변경하는 방법의 글을 발견해서 해당 블로그 글을 참고해서 수정하려고 합니다. https://ndb796.tistory.com/257 이렇게 수정해도 문제 없을지 궁금하여 여쭤봅니다. 그리고 콘솔 리전의 위치가 서울로 해야 조금 더 빠르다고 했는데, 그 속도가 미미한 정도인가요? 만약 크으으게 차이가 없으면 캘리포니아 그대로 둘까 싶기도 해서요..!
숫자 추출할때 정규표현식으로 숫자인 요소 판단 후에 숫자인 요소는 배열 변수에 append해서 숫자로된 배열을 문자열로 변환후 다시 int로 변환시키면서 앞자리 0인 것들을 삭제하도록 처리했는데 이런 풀이도 문제 없을까요? for i in t: # 정규표현식으로 입력된 텍스트에서 숫자인 요소들만 추출 if regex.search(i) is not None: numArr.append(i) # 숫자인 요소들만 추출된 배열을 문자열로 변환후 다시 int로 변환시킴으로서 # 앞자리의 0은 자연수화 하면서 삭제처리 되도록함 num = int("".join(numArr)) print(num)
저는 괄호에 초점을 맞춰서 다르게 풀어보았습니다. 문자가 들어왔을 때, 괄호에 대한 스택이 비어있으면 괄호 밖에 있다고 판단하고 문자를 출력하는 방식으로 구현했습니다. 풀이에 논리적 오류가 있는지 확인해주시면 감사하겠습니다. import java.util.Scanner; import java.util.Stack; public class Main { public static String solution(String[] text) { Stack<String> bracketStack = new Stack<>(); StringBuilder answer = new StringBuilder(); for (String word : text) { if (word.equals("(")) bracketStack.push(word); else if (word.equals(")")) bracketStack.pop(); else if (bracketStack.isEmpty()) answer.append(word); } return answer.toString(); } public static void main(String[] args) { Scanner input = new Scanner(System.in); String[] text = input.next().split(""); System.out.println(solution(text)); } }