안녕하세요. 11:03 경에 "이런 것들 json으로 말아넣자"라고 말씀하신 부분이요. 조금 더 풀어서 설명해주실 수 있을까요? 당장 이 프로세스가 필요해서는 아니지만 개념적으로라도 알고 있으려고 합니다! "이런 데이터"에 관해서도 조금 더 풀어서 말씀해주실 수 있을까요? 어떤 성격의 데이터들은 테이블이 아니라 json으로 관리할 수 있다는 것인지 조금 더 구체적으로 알고 싶습니다. 감사합니다.
안녕하세요 강사님 [섹션10 연산자] 필수 실습 문제 합격, 불합격 판단하기 문제 질문드립니다. 강사님께서는 printf 함수안에 조건(3항)연산자를 넣으셨는데요 저는 nSelect이라는 문자열을 선언해서 nSelect에 합격, 불합격이라는 문자열을 저장해서 printf로 출력하는 방식으로 문제를 풀어봤습니다 nSelect이라는 변수에 문자열의 공간!?을 10byte로 선언하고 0으로 초기화 한뒤에 실행을 했더니 실행은 잘 되는데 nSelect이라는 변수에 빨간색 밑줄과 오류 코드가 L-value로 뜨더라구요 왼쪽 피연산자를 변수인 nSelect으로 선언했는데 오류코드가 왜 뜨는건지 모르겠고 오류코드가 뜨는 왜 점수를 80으로 입력하면 '합격', 70으로 입력하면 '불합격'이라고 실행이 잘되는데 왜 그런지 이유가 궁금합니다. 문제가 없는건가요? 일부러 오류를 내보려고 nSelect이라는 변수에 문자열의 공간!?을 1byte로 선언하고 0으로 초기화 한뒤에 실행을 했더니 일단 실행은 잘됩니다. "합격"이라는 글자는 한글이므로 한글자 당 2byte 총 4byte의 크기이고 "불합격"이라는 글자는 3*2 = 6byte라서 nSelect라고 선언한 문자열 변수에 공간에 없어서 실행조차 되지 않아야하는데 실행이 됩니다. 왜 실행이 되는 것일까요? 물론 하단 오류 목록에 '배열의 크기가 0보다 커야합니다.' '상수크기의 0 배열을 할당할 수 없습니다'라는 설명이 있긴하지만 실행은 되어서 의문입니다. 또한 8번째 코드의 L-vaule 오류는 여전히 나옵니다. nSelect 문자열의 크기 선언을 1byte로 하면 역시 실행은 잘되는데 여전히 L-value 오류 항목이 뜹니다 선언한 배열의 크기가 1byte인데 그보다 크기가 큰 "합격", "불합격"이 문자열에 대입되고 실행이 됩니다. 이유가 궁금합니다
package bufferTest; import java.util.Scanner; public class BufferTest { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String a = scan.next(); String[] arr1 = {"a"}; System.out.println(System.identityHashCode(a)); System.out.println(System.identityHashCode(arr1[0])); } } 왜 arr[0]과 a의 주소 값이 다른가요..??? 답변 주시면 정말 감사하겠습니다!
상수 포인터와 배열의 이름은 유사한 개념이라고 파악하고 있었는데, sizeof(배열의 이름)은 배열의 크기를 출력해준다는 점에서 약간의 차이가 있다는 점을 알게 되었습니다. 또한, 참조 연산자를 통한 결과 또한 포인터의 경우, 메모리를 확인한 결과 해당 주솟값을 가리키고 있는 다른 주소의 값을 가지고 있었지만, 배열의 이름은 동일한 주솟값이 결과로 나오는 것을 확인할 수 있었습니다. 제가 이해한 바로는 배열의 이름 자체는 배열의 시작 주소이기에 'test2' 는 'H'라는 배열의 시작 주소를 가리키고, '&test2'는 "Hello World"라는 배열 자체 주소를 가리키는 것이라고 판단을 했는데, 이것이 맞는 이해인지 궁금합니다. 두 개념이 비슷하지만 약간의 차이가 있는 것 같은데 이 차이에 대해서 설명해주시면 감사하겠습니다.
안녕하세요 강의 감사히 잘 공부하고 있습니다. 배열 강의에서 배열의 이름 int a[4]; 같은 경우 a 이 상수와 같은 r value 에 속한다고 하셨는데, 배열 이름은 메모리 상의 데이터 구조를 식별하는 역할을 하며 이는 주소의 불변성과 관련이 있기 때문에 l-value로서 값이 변경되지 않는 특수한 형태로 보는 것이 더 맞지 않나요?
pszData의 총 5가 증가했고 (인덱스가 5개 증가) int형으로 바꾸었기 때문에 주소의 값이 5가 아닌 20이 증가한 것을 확인했습니다. 근데 Length의 값이 5가 나오는 것은 어떤 이유 때문인지 정확하게 이해가 안됩니다. 배열의 식별자는 주소 상수이기 때문에 20이 나와야 되는게 아닌가 라고 생각했습니다. 왜 5가 나오는지 잘 모르겠습니다. pszData가 szBuffer와 5만큼 떨어져 있기 때문에 5가 나온 것입니까? 메모리에는 pszData와 szBuffer가 주소 상수값을 가지고 있고 연산한 것처럼 보이는데 왜 5가 나올까요...
api란 개념을 잘 모르겠습니다. 그냥 controller에서 mapping하는 것이 api 인가요? 1편에서 만들었던 @GetMapping("/members/new") public String createForm(Model model) {...} 이런 코드들도 각각 api라 하는 것인가요?
도전정신 때문에 설명 듣기 전에 구현을 했더니 강사님 의도와 다르게 구현되었지만.... 1시간 헤딩한 시간이 아까워서 남겨둡니다아~~ 두 가지 접근방법이 생각났는데, 그 중 하나는 이동 불가능할때마다 이동 방향을 바꾼다는 간단한 논리로 위 코드로 구현해봤고, 두 번째로 생각난 접근방법은 위 그림처럼 블럭이 5, 4, 4, 3, 3, 2, 2, 1, 1 순으로 첫번째를 제외한 블럭 수가 2개씩 묶인다는 점이 생각났는데, 첫 번째 블록이 규칙에 살짝 어긋난다는 점에서 구현이 복잡해질 것 같아서 포기했습니다. 설명해주신 방법대로 위 그림에서의 블럭이 2개 합쳐진 채로 규칙을 찾았으면 간단하게 구현 가능했을 것 같습니다. 설명해주신 방법으로도 구현을 해봐야겠네요..
25번 반복에 끝낸다는 방향을 잡고 시작했습니다. 9, 7, 5, 3, 1 5/4, 4/3, 3/2, 2/1/ 1/0 +/+, -/-, +/+, -/-, +/+ 그리고 행 증가, 열 증가인지 파악한 후에 코딩했습니다. 다른 모범 답안 보니까 저랑 달라서 자신감이 뚝 떨어졌습니다. 제가 생각해낸 패턴을 코드로 하나도 구현하지 못한거 같아요 예제 코드보니까... 예제 코드 보면서 현타 많이 왔는데 다시 처음부터 한다고 생각하고 코드짜보겠습니다.
pivot이 되는 5보다 큰 값은 오른쪽의 작은 값과 교환하면서 마지막에는 pivot의 위치도 바꾸어 주었습니다. 이후 코드를 작성한다면 pivot의 값을 다시 0과 high+1로 또 for문을 작성해야 하는데 코드가 무자비하게 길어집니다. 솔직하게 for문 안에서 모든걸 끝내기에는 제가 너무 부족한거같습니다. 이후 배우는 함수에 피벗이나 리스크 길이 등 매개변수로 받아서 리스트 길이가 0이나 1이 될때까지 반복하고 값을 교환해주는 것도 함수로 만들어서 처리하면 좋을 것 같습니다. 코드가 복잡해질수록 너무 어렵네요. 이정도 구현한것으로 만족하겠습니다
현재 말씀하시는 대상이 완전 저에게 일치하는데 이미 퇴사를 한 시점이라 주니어 개발자로써 적용하기가 쉽지 않을 것 같은데 이럴때 는 어떻게 하는 게 좋을까요? 강의 내용대로 실무내에서는 문제 없이 기능들을 구현하였는데 이직을 위한 이력서 작성 시 성능 개선 부분에서 작성할 부분이 없네요
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. API 강의에서 @ResponseBody를 이용해 JSON 으로 객체를 변환받는 내용의 코드에서 name이 너무많아 반환받는 JSON 키를 "name2"로 변경해보고싶어 코드와 url등등 name2를 넣어 계속 실행해봣지만 계속 키는 "name"에서 변하지가 않습니다. 어디를 변경해야 하는걸까요??
@GetMapping(api/v2/members) public Result memberV2 (){...}로 작성되어있습니다. 그런데 그냥 @GetMapping(api/v2/members) public List<MemberDto> memberV2(){...}로 반환하면 되지않나요? 제가 생각하는 Result를 사용한 이유는 count같은 다른 정보들도 넣기 위함인 거 같은데 맞을까요?
jdk 21로 한글을 출력하려고 하는데 한글이 깨져서 나옵니다. 처음에는 인텔리제이의 문제인가 했는데 이클립스에서도 깨져서 나오는걸 보면 jdk의 문제인 것 같습니다. 이전에 이클립스에서 실행해 본 파일로 그때는 괜찮았으나 지금은 한글이 깨져서 나옵니다. 그래서 jdk의 문제라고 생각했습니다. 저는 jdk를 오라클 open jdk 21 버전을 설치했습니다. 예전에 이클립스에서 사용하던 jdk 버전은 11입니다. 강의에서 하신 것처럼 인텔리제이에서 oracle open jdk 21을 다운로드해도 마찬가지로 깨져서 나옵니다. jdk를 버전을 낮춰야 할지 다른 방법이 있을지 몰라 해결책을 찾다가 여기다 질문해봅니다.