#object

질문 3
해시태그 없이 키워드만 일치하는 질문은 개수에 포함되지 않아요.

8달 전 · 김지윤 님의 질문

투두 앱 기획중인데

OKR 이라는 프레임을 적용해본 앱입니다. 이런 앱에 대한 수요가 얼마나 있는지 궁금해서 올려봅니다. 읽어보시고 어떤지 의견 주시면 감사하겠습니다! 추가로 있으면 좋겠다고 생각되는 기능을 말씀해주셔도 됩니다. 간략하게 기능을 적어보자면 아래와 같습니다! 1. OKR Objective(목표)와 Key Results(핵심 결과)를 정하고 하위 항목을 정함으로써 큰 목표를 세분화 할 수 있습니다. ex. Objective: 독서 습관 기르기, Key Result 1: 한 달에 2권씩 책 읽기, Key Result 2: 책을 읽고 독서 노트 작성하기, 하위항목: ​하루에 책 10장 읽기 2.시각화 1번의 목표와 핵심결과를 얼마나 달성했는지 그래프로 보여줍니다. 3. 알림 ToDo 알림 정해진 시간에 오늘 해야할 일을 알림을 통해 보여줍니다.

PM/PO/기획자

#기획

#앱

#아이디어

답변 0

댓글 0

조회 122

9달 전 · 익명 님의 질문

Devexpress schedulercontrol

schedulercontrol에서 전체적으로 배경색을 검은색으로 폰트색을 흰색으로 하려고 CustomDrawTimeCell과 CustomizeDateNavigationBarCaption를 사용해서 셀은 변경됐는데 bapcaption 이벤트 쪽은 코드 objectinfo, viewifo,handled부분에서 오류가 발생해서 변경이 안됩니다. 혹시나 아시는 분은 도움주시면 감사하겠습니다. private void schedulerControl1_CustomDrawTimeCell(object sender, DevExpress.XtraScheduler.CustomDrawObjectEventArgs e) { if (e.ObjectInfo is SchedulerViewCellBase cell) { // 셀의 배경색을 검은색으로 설정 cell.Appearance.BackColor = Color.Black; cell.Appearance.ForeColor = Color.White; // 텍스트 색상도 흰색으로 설정 e.Handled = true; // 기본 그리기 동작을 무시하고 커스텀 스타일을 적용 } } private void schedulerControl1_CustomizeDateNavigationBarCaption(object sender, DevExpress.XtraScheduler.CustomizeDateNavigationBarCaptionEventArgs e) { if (e.ObjectInfo is DevExpress.XtraScheduler.ViewInfo.SchedulerHeaderViewInfo headerViewInfo) { headerViewInfo.Appearance.BackColor = Color.Black; // 배경색을 검은색으로 설정 headerViewInfo.Appearance.ForeColor = Color.White; // 폰트 색상을 흰색으로 설정 e.Handled = true; // 기본 그리기 동작을 무시하고 커스텀 스타일을 적용 } }

개발자

#devexress

#schedulercontrol

#scheduler

답변 0

댓글 0

조회 35

10달 전 · 개발자A 님의 새로운 답변

다국어 변역 api사용 저장시 느린 속도 문제

DB에 정보 저장하는데요 ranslationResponse response = restTemplate.postForObject(TRANSLATION_ENDPOINT, request, TranslationResponse.class); api를 통해 영어 중국어 일본어로 변역해서 변역 내용 같이 DB에 저장 하려고 합니다. 그런데 저장할 때 문장이 길어지면 변역 시간이 느려저서 사용자쪽에서 많이 기다려야 하는 상황입니다. 기본 내용만 저장하고 파이널리문에서 번역해서 다시 저장하는 방법을 생각 해서 적용 해보았는데 브라우저에서 결과 받는 속도는 같았습니다.ㅠ 그렇다고 브라우저에서 ok 결과를 받은 후 번역을 비동기로 호출하는 것도 불필요한 비용 발생일 것 같고요 창을 먼저 꺼버리자니 오류 처리 못할 것 같구요 저장중 이라는 알림으로 처리 해야하는건지 사용자 입장에서 개선 하고 싶은데 방법을 잘 모르겠습니다. 혹시 해결방안 알고 계신분이 계시다면 조언 부탁드립니다.

개발자

#다국어-변역-api

#spring-boot

답변 1

댓글 0

조회 42

일 년 전 · csw 님의 새로운 답변

3년차 인공지능 개발자 연봉 적정선은 어느정도 인가요?

안녕하세요 저는 지방에 있는 ai 스타트업에 입사해서 3년차가 되었습니다 지금까지 각종 정부 민자 사업을 하면서 데이터분석쪽으로는 분류 회귀모델 만드는 것을 수행했고, 이미지 분석에서는 파이토치, yolov5, yolov8 등 이용해서 object detection, segmentation, classification, anomaly detection을 주로 수행했습니다 일이 제법 많은 회사여서 동시에 여러 프로젝트를 수행하면서 고객이 만족스러울만한 성과를 내기도 했습니다 그래서 올해 연봉상승을 내심 기대했으나 너무 적습니다 3년차인데 4천이 안됩니다 원래 이정도가 맞는건가요? 사람마다 능력이 다르기때문에 객관적인 비교는 어렵겠지만 통상적으로 받는 수준이 어느 정도인지 궁금합니다 제가 무리하게 욕심을 내는건가요?

투표

개발자

#데이터분석

#인공지능

#이직

#연봉

답변 3

댓글 0

조회 1,811

일 년 전 · 삭제된 사용자 님의 새로운 답변

학부생으로서 컴퓨터비전업무

안녕하세요. Ai관련학과에 재학중인 대학생입니다. 요새 컴퓨터비전쪽에 관심이 가서 object detection, segmentation을 공부중입니다. Inflearn에서 강의도 찾아보며 배우고있습니다. 컴퓨터비전분야는 변화가 빠른것으로 알고 있습니다. 이쪽분야에서 일을 하려면 대학원을 가야할까요? 현장에선 무슨일을 하는지 도저히 감이 안잡힙니다. Pretrained 모델을 활용하거나 논문해석은 얼추 가능한데 현장에서는 무슨일을 하는지, 대학원을가면 무얼 연구하는건지 궁금합니다. 저는 활용하는걸 좋아해서 학부졸업하고 취업을 하고싶은데 어떻게 생각하시는지 조언 부탁드립니다. 그저 코드 가져와서 조금 수정해서 하고 있는데 이게 현장에서 요구하는 수준이 아닐거라는 생각이 자꾸 듭니다 ㅠㅠ

개발자

#컴퓨터비전

답변 1

댓글 0

조회 107

일 년 전 · 이진국 님의 새로운 댓글

react-navigation navigate 파라미터 type

안녕하세요, @react-navigation의 useNavigation을 통해 페이지 이동을 하는 함수를 만들던 중 타입 설정이 되지 않아서 질문 드립니다. navbar와 같은 곳에서 사용할 목적으로 navigateTo와 params 를 받아 스크린을 이동시켜주는 함수를 만들고 싶지만 params의 타입에서 에러가 나고 있어서 이 부분에서 어떻게 해줘야 하는지 질문드려요.. 에러 내용을 보면 아래와 같이 나오는게 각 페이지 별 type이 일치하지 않아서 그런걸로 보이는데 각 메뉴마다 navigation.navigate('Login', {~~}); navigation.navigate('Foo'); 이런식으로 하게되면 동작은 하지만 너무 중복된 코드가 되는 것 같아 pgae를 받는 함수로 만드려고 하는 중인데 잘 안되네요..! Argument of type '[keyof RootStackParamList, { page: string; data?: object | undefined; } | undefined]' is not assignable to parameter of type '[screen: "Login"] | [screen: "Login", params: { page: string; data?: object | undefined; } | undefined] | [screen: "Foo"] | [screen: "Foo", params: undefined] | [screen: "Bar"] | [screen: "Bar", params: undefined]'. Type '[keyof RootStackParamList, { page: string; data?: object | undefined; } | undefined]' is not assignable to type '[screen: "Login", params: { page: string; data?: object | undefined; } | undefined]'. Type at position 0 in source is not compatible with type at position 0 in target. Type 'keyof RootStackParamList' is not assignable to type '"Login"'. Type '"Foo"' is not assignable to type '"Login"'.ts(2345)

개발자

#react-native

#typescript

#navigation

답변 1

댓글 1

조회 75

일 년 전 · 박정환 님의 새로운 댓글

클라이언트(프론트)에서 api return 처리를 어떻게 하시나요?

안녕하세요 클라이언트(프론트)단에서 axios 사용해 REST api return 스펙정리를 해서 서버단과 이야기해 수정을 하려고 합니다. 고려사항 등 도움을 주시면 감사하겠습니다. Method - GET : 정보조회시 - POST : 저장시(회원, 주문, 아이템 등) - PUT : 수정시 - DELETE : 삭제시 현 구현 - HTTP status 200은 성공, 그 외 에러처리 => 서버단에서 보내주는 msg 혹은 프론트에서 하드코딩으로 문자열 출력(alert) 문제점 1) 성공과 실패 및 실패 사유에 대한 return 구조체가 생각 이상으로 깊은 구조이며 일관성이 없음. ex1) response.data = { 객체 정보 } ex2) response.data = "Success"; -- 여기부터 문제 -- ex3) response.data.detail = "Faile"; ex4) response.data.detail[0].msg = "Faile"; // 기타 다른정보들 포함됨 ex5) response.data.messages "문자열" 2) 몇개의 api는 return 값으로 status가 200으로 string 혹은 object가 날라옴. 3) 사용자 정보제공(문자열) 하드코딩 다국어 설정도 고려하고 있기에.. 실패시 정보를 연상코드로 리턴받을까합니다.(개인 생각) 작성하고 보니 어떻게 문제점은 보이는데 좋은 개선점이 있으시면 의견주시면 감사하겠습니다.

개발자

#api

답변 1

댓글 2

조회 262

일 년 전 · 익명 님의 질문

TypeScript - Generic과 extends에 대한 질문입니다.

코드에서 getObject1("value1").foo는 미리 정의한 ValueType 타입을 가지는데, getObject2("value1").foo는 "value1" literal 타입을 가집니다. 제네릭을 사용하면 narrowing이 가해진 것과 같은 효과를 내는데, 이렇게 작동하는 이유가 무엇일까요?

개발자

#typescript

답변 0

댓글 0

조회 55

일 년 전 · 김도도 님의 질문

BentoML 서빙 시 소스 구성

저는 Object Detection 모델을 BentoML로 서빙하고 도커 이미지로 만들어 클라우드를 통해서 모델을 서빙하려고 합니다. 유지보수 측면에서 최대한 효율적으로 서빙하고 싶은데 어떻게 폴더 구성을 일반적으로 하는지가 궁금합니다. 모델은 bentoml onnx로 save후 불러와서 사용중입니다.

개발자

#인공지능

#bentoml

#ml

답변 0

댓글 0

조회 36

일 년 전 · 이양일 님의 답변 업데이트

json parse error 문제입니다.

리엑트에서 {userId : id} 이렇게 보내는데 컨트롤에서 Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type int from String "[object Object]": not a valid int value] 에러가 발생합니다. User VO로 맴버필드도 int 타입으로 선언되어있는데 파싱에러가발생... @RequestBody User user 로빼고 있는데 이유가 뭘까요?.. 예전에도 비슷한 문제가 있었던거 같은데 검색해도 못찾겟습니다 ㅠㅠ 알려주세요 ㅠ

개발자

#json

답변 2

댓글 0

추천해요 1

조회 386

일 년 전 · 문성원 님의 새로운 댓글

C++ 질문 드립니다

함수 포인터 배열을 활용한 사칙 계산 문제입니다. 코드는 다음과 같습니다. #include <iostream> using namespace std; #define MAX_OP_COUNT 4 class UserObject { private: int (*mp_func_list[MAX_OP_COUNT])(int, int); public: int Add(int a, int b) { return a + b; } int Sub(int a, int b) { return a - b; } int Mul(int a, int b) { return a * b; } int Div(int a, int b) { return b ? a / b : 0; } UserObject() { mp_func_list[0] = &UserObject::Add; mp_func_list[1] = &UserObject::Sub; mp_func_list[2] = &UserObject::Mul; mp_func_list[3] = &UserObject::Div; } // [문제 2] 아래의 코드에 GetFuncList 함수의 반환값을 적어야 함 GetFuncList() { return mp_func_list; } }; int main() { UserObject data; // [문제 3] 아래의 코드에서 p변수의 자료형을 적어야 함 p = data.GetFuncList(); for (int i = 0; i < MAX_OP_COUNT; ++i) { // [문제 4] 아래의 코드에서 p 변수를 사용하려면 연산잔와 필요 형식을 적어야 함 cout << ( p )(5, 4) << endl; } return 0; } 결과 값: 9 1 20 1 [문제2], [문제3], [문제4]에서 요구하는 사항을 코드로 구현하려고 하는데 도저히 잘 몰라서 고수분께 여쭈어 봅니다.

개발자

#c++

답변 2

댓글 2

보충이 필요해요 2

조회 92

일 년 전 · 최유성 님의 질문

Computer Vision에서 더 나아갈려면..

안녕하세요 CV쪽으로 공부중인 학생입니다 공부를 좀 진행하면서 어느정도 open cv나 영상 전처리, object detection, segmentation등등등을 책을 통해 공부했습니다 그런데 여기서 이제 좀 더 나아가 실제로 자율주행이나,ocr등에 직접적으로 구현해보며 공부할 수 있는 방법을 찾고있는데 시중에는 제가 원하는 그런 책들이 없슴다.. 아마존에서 하는 aws deep racer이런것도 해보고싶은데 아예 사막에 혼자 떨어진 기분이랄까.. 그래서 CV분야 선배님들은 이런상황일때 어떻게 무엇으로 공부하셨는지 책이나 동영상, 피드백 등등 추천 부탁드립니다

개발자

#cv

#자율주행

#ocr

답변 0

댓글 0

조회 96

일 년 전 · 강병진 님의 답변 업데이트

Request값으로 사용할 값들을 모두 atom에서 객체로 관리해도 문제가 없을까요?

안녕하세요. depth 가 있는 컴포넌트들이 많은 등록페이지를 개발하다가 궁금증이 들어서 질문드립니다. 그동안 가짓수가 많아도, 모두 recoil의 atom에서 단일 값으로 관리를 해왔었는데, 어차피 서버에 객체에 담아서 보낼 것이라면 애초에 모든 값들을 다 객체에서 꺼내서 사용하는 object 타입의 atom 으로 관리하면 되지 않을까 라는 생각이 문득 들어서 현업에서 종사하시는 선배님들께 여쭤보려고 글을 작성합니다. 아마 각각의 단일 데이터 값으로 관리하면 key값이 제각각이라 뭔가 좀 더 안전할 것 같긴한데, 어떤 것이 나은 방법일까요?

개발자

#react

#recoil

#상태관리

#객체배열

답변 1

댓글 1

추천해요 1

조회 130

일 년 전 · 문승욱(카이론) 님의 새로운 답변

안드로이드 Activity의 EditText 값을 fragment의 커스텀 리스트뷰의 값으로 받아오는 과정에서 오류가 뭘까요?

Fragment로 커뮤니티 게시판을 만들고 있습니다 사진처럼 Activity에 작성한 글을 Fragment 안에 있는 커스텀 리스트뷰에 넣으려고합니다 구글링으로 방법을 찾아서 하고 있는데 java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.os.Bundle.getString(java.lang.String)' on a null object reference at com.example.project.ChatFragment.onCreateView(String Title=bundle.getString("mainTitle",null);) 이렇게 오류 메세지가 뜨네요 어떻게 해결해야할지 모르겠습니다 엑티비티와 프래그먼트 코드 올립니다 혹시 몰라서 BaseAdater 코드도 올립니다

개발자

#java

#android

답변 1

댓글 0

조회 121

2년 전 · 삭제된 사용자 님의 답변 업데이트

JSON 데이터 DB 저장

안녕하세요. Java Spring으로 백엔드 서버 마이그레이션, 알람 기능 개발 중에 고민이 있어 질문드립니다. [상황] 기존 알람 서비스는 하나의 서비스 Class로 통합해서 두고, 문자, 푸쉬알람, 이메일 3가지 경우로 기능을 swith하여 각 기능별로 서비스를 호출하는 방식으로 구현되어 있습니다. 알람과 관련된 데이터는 JSON 파일에서 불러와 jsonObejct와 Map 자료구조를 통해 가공하여 기능 구현이 되어있습니다. 알람 데이터 JSON 파일은 상황별 코드에 따라 문자, 푸쉬알람, 이메일로 데이터가 구분되어 있습니다. JSON 파일은 대략적으로 아래와 같은 형태입니다. (mail 알람의 경우엔 HTML 파일을 전송하는 방식입니다. thyemleaf를 통해 전달받은 파라미터 값만 HTML에 주입하는 형태로 구현되어 있어서 msg 안에 String 대신 JSON 형태의 데이터가 들어가고 있습니다.) [알람 JSON 데이터 구조 예시] { "code1" : { "Sms" : { "title" : "sms 제목", "msg" : "sms 메세지", }, "Push" : { "title" : "push alarm 제목", "msg" : "push alarm 메세지", }, "Mail": { "title" : "mail 제목", "msg": { "name" : "#{name}", "use" : "#{use}", ... }, "code2" : {... }, ... } [문제 인지 & 개선 방향 고민] 알람 데이터가 JSON으로 정의되어 있다보니, 기능 개발을 위해 Json 파일을 읽고, JsonObject와 Map 자료구조로 데이터 가공을 할 수 밖에 없는 상황인데요. 제가 알기로는 자바에서 Map 자료구조를 사용하게되면 타입 자체가 불명확해서 지양해야 하며, JSON 파일로 관리 시 하드코딩에 해당되어 기능 자체에 제약이 많다고 판단하여 해당 상황을 DTO로 관리함과 동시에 Database에서 관리하도록 바꿔볼까 생각중입니다. [궁금증 & QnA] 이 상황에서 고민 & 궁금증이 몇 가지 있습니다. 1. 해당 알람 데이터를 DB 관리로 바꾸는게 더 나은 선택인지? -> 만약 바꾼다고 하면 Alarm Table을 따로 두고, User Table과 N:M 매핑하는식으로 구현할 생각입니다. 2. , mail HTML Template이 다양하다보니, Template 마다 넘겨줘야하는 JSON 데이터가 다양한 상황입니다. 그러다보니 mail msg 컬럼에는 다양한 형태의 JSON 데이터가 들어가게 되어 이걸 DB로 구현한다고 하니 막막한 상황입니다. -> 결국 해당 부분만 JSON 데이터로 넣는것 말고는 떠오르는 방법이 없네요.(해당 부분만 JSON 데이터로 넣으면 오히려 관리가 더 어려워지지 않을까 고민입니다.) 3. 다른 분들은 알람 기능을 어떻게 구현하는지 궁금합니다.

개발자

#spring

#database

#json

#fcm

답변 1

댓글 0

조회 299

2년 전 · 이상선 님의 새로운 답변

Lighthouse를 이용한 성능 최적화 - 텍스트 압축 사용

안녕하세요. 개발한 웹 페이지를 lighthouse를 통해 성능 최적화에서 난관을 겪고 1년차 React 개발자입니다. lighthouse에서 추천 항목에 "텍스트 압축 사용"을 적용해보려 시도 중입니다. .htaccess 파일에 다음과 같은 코드를 넣어서 텍스트 압축을 실행하였습니다. <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE image/svg+xml AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE application/x-font-ttf AddOutputFilterByType DEFLATE application/vnd.ms-fontobject AddOutputFilterByType DEFLATE font/opentype font/ttf font/eot font/otf </IfModule> 결과적으로 네트워크 탭에서 Content-Encoding: gzip 으로 표시되는 것을 보니까, 텍스트 압축이 되는 것처럼 보입니다. 그런데 lighthouse에서는 성능 점수가 더 올라가지 않고 있습니다. 혹시 "텍스트 압축" 부분에서 최적화 하는 다른 방법이 있을까요? 아니면 제가 놓치고 있는 부분이 있는 걸까요?

개발자

#react

#lighthouse

#front-end

답변 1

댓글 0

조회 328

2년 전 · 또르르 님의 새로운 답변

TestCode에서 객체 상태를 검증하기 위한 방법 (Getter vs equals and HashCode 을 구현한 객체)

순수 Java 언어를 통해서 객체지향을 연습하고자 했고, Domain 객체에서 getter을 최대한 지양한 상태에서 구현했습니다. 로직 검증을 위해 Test Code을 작성하던 중 의문점이 생겼습니다. Test Code을 작성해서 내부 객체의 상태 값을 검증할땐 프러덕션 코드에 제공된 getter가 없어 equals and hashcode을 재정의하여 객체의 상태를 검증하고자 했습니다. (Equals and HashCode는 주로 Value Object에 대해서만 재정의 했습니다.) 하지만 때론, 객체을 생성해서 검증할땐 객체의 주생성자 안에 있는 validate 조건에 의해 객체 자체가 생성하기 어려운 경우가 있어 "객체 대 객체"로 검증하기 어려운 점이 있었습니다. # 1 이런 경우 어떻게 Test을 할 수 있을까요?? 어쩔 수 없이 test code 만을 위해서 내부 상태를 검증하도록 getter을 추가해야 할까요?? # 2 또한 만약 이미 getter가 구현된 상태이고 객체의 validate 조건을 피해서 객체를 만들 수 있다면 "객체 대 객체" 비교 말고 getter을 통해서 상태 검증을 해도 괜찮을까요??

개발자

#java

#junit

#testcode

#getter

#객체지향

답변 2

댓글 0

조회 586

2년 전 · 김민형 님의 질문

[Django] TypeError: Object of type InMemoryUploadedFile is not JSON serializable 오류

안녕하세요 장고를 통해 api를 개발하다가 TypeError: Object of type InMemoryUploadedFile is not JSON serializable 오류가 발생했습니다. 해당 오류에 대한 내용을 아래의 링크에 정리해놨습니다 보고 답변해주시면 감사하겠습니다!! https://luminous-kitty-425.notion.site/Django-TypeError-Object-of-type-InMemoryUploadedFile-is-not-JSON-serializable-37a91af3ff2f475e88af0b6cadcb0699

개발자

#django

답변 0

댓글 0

조회 113

일 년 전 · 찍먹중 님의 질문 업데이트

iOS 개발자 희망하는 1학년입니다.

안녕하세요 4년제 대학에서 컴퓨터공학을 전공으로 하고 있는 1학년입니다.. 1학기에 파이썬을 배우고 이제 9월부터 c언어를 배울 예정인데, iOS 개발자를 희망하고 있습니다! 먼저 object-C 가 c언어인가요? 아니라면 어떤 차이가 있는지 궁금해요 학교에선 스위프트 강의가 없어서 독학을 해야하는데, 학기 중 c언어와 같이 병행해서 공부하는 게 좋을까요 아님 c언어를 배우고 나서 방학 때 배우는 게 좋을까요? 제가 취업할 때쯤이면 ios 신입으로 취업하기 정말 어렵다는 말을 많이 들었는데, 사실인지도 궁금하고.. 이런 이유 때문에 진로를 바꾸는 게 맞다고 생각하시는지들 궁금합니다 ㅠ!!

개발자

#ios-개발자

#ios

#모바일

#swift

#swiftui

답변 2

댓글 0

조회 233

2년 전 · 강민기 님의 새로운 댓글

C# 프로그램 실행을 했을 때 메모리에서 어떻게 이루어지는지 공부하는데 어려워서 정리가 안되네요. 그리고 C# 컴파일 구조 등등도..

안녕하세요, C# 메모리를 대해서 공부 중인 대학생 4학년 입니다. 1.제가 처음 배운 기본적인 프로세스 기반으로 프로그램 안에 코드 영역, 데이터 영역, 힙, 스택이 있는데 C# 프로그램은 다르다고 합니다. c# 4.0 - what is the difference between object and loader heap in .net 4.0 - Stack Overflow 에서는 <원문> heap memory is divided into to parts,object heap and loader heap(also known as high frequency heap).All non static reference type are stored on object heap and all static object(either reference type or value type) are stored in loader heap. Gc never work on loader heap thats why they initilized only once and remain in memory throught the application. <해석> 힙 메모리는 두 부분으로 나뉩니다. "객체 힙"과 "로더 힙" (또는 고주파 힙이라고도 함)으로 나눌 수 있습니다. 모든 정적이 아닌 참조 유형은 객체 힙에 저장되며, 모든 정적 객체 (참조 유형이든 값 유형이든)은 로더 힙에 저장됩니다. 가비지 컬렉터(GC)는 로더 힙 에서 작업하지 않으므로 이러한 객체는 애플리케이션이 실행되는 동안 한 번만 초기화되고 메모리에 유지됩니다. 라고 되어 있어서 그럼 C# = 코드 영역, 데이터 영역, 힙(객채 힙, 로드 힙), 스택이 있는데 제가 배운 걸로는 데이터 영역에 정적 객채들이 저장된다고 알고 있는데 그럼 정적 객체들과 함수들은 로드 힙에 저장되고 데이터 영역 에는 뭐가 저장되는 건가요? 2. C# 컴파일 구조는 어떻게 되어 있는 건가요?

개발자

#c#

#c#-컴파일구조

#c#-메모리구조

답변 1

댓글 1

조회 197

2년 전 · NickSoon 님의 새로운 댓글

Json [object Object]

Javascript에서 dectionary를 json으로 저장했을때 [object Object] 가 나옵니다. 또한 29번줄에서 SyntaxError: Unexpected token: o 라는 에러가 나옵니다.

개발자

#javascript

#json

답변 2

댓글 1

추천해요 1

보충이 필요해요 2

조회 98

2년 전 · 이건희 님의 질문 업데이트

ESLINT 어떤 것을 수정해야 내용처럼 fix 되는 현상을 막을 수 있을까요?

안녕하세요~ eslint, prettier에서 제가 무엇을 잘못했는지 계속 아래처럼 코드가 수정되고 있습니다. const res = (await request) < User > (context, `/users/${id}`); 어떻게 하면 고칠 수 있을까요? 1. (await request) 소괄호 제거 2. < User > 제너릭 사이 공백 제거 결론: const res = await request<User>(context, `/users/${id}`) 로 만들고 싶습니다.. 아래는 eslint 적용한 내용 입니다. ``` //eslint.config.js module.exports = { env: { browser: true, es2021: true, }, extends: [ 'plugin:react/recommended', 'airbnb', 'plugin:storybook/recommended', ], parser: '@typescript-eslint/parser', parserOptions: { project: ['./tsconfig.json'], ecmaVersion: 2018, sourceType: 'module', createDefaultProgram: true, }, plugins: ['react', '@typescript-eslint', 'prettier', 'import'], rules: { 'react/react-in-jsx-scope': 'off', 'react/jsx-props-no-spreading': 'off', 'import/prefer-default-export': 'off', 'implicit-arrow-linebreak': 'off', 'react/jsx-filename-extension': [ 2, { extensions: ['.js', '.jsx', '.ts', '.tsx'], }, ], 'object-curly-newline': [ 'error', { ObjectPattern: { multiline: true, minProperties: 2, }, ImportDeclaration: 'never', ExportDeclaration: { multiline: true, minProperties: 3, }, }, ], 'import/extensions': [ 'error', 'ignorePackages', { js: 'never', mjs: 'never', jsx: 'never', ts: 'never', tsx: 'never', }, ], 'import/order': [ 'error', { alphabetize: { order: 'asc', }, groups: [ 'builtin', 'external', 'internal', 'parent', 'sibling', 'index', 'object', 'type', ], }, ], 'import/no-unresolved': 'off', }, settings: { 'import/resolver': { typescript: { alwaysTryTypes: true, }, node: { paths: ['src'], }, }, }, }; ```

개발자

#eslint

#prettier

답변 0

댓글 0

조회 83

2년 전 · 엄홍재 님의 새로운 답변

nextjs 초보 fetch & DELETE 동작이 안되요.

app/api/list/[id]/route.js export async function DELETE(request, {params}) { const id = params.id; const {searchParams} = request.nextUrl; const sort = searchParams.get('sort'); return NextResponse.json({message: 'test', id, sort}); } 위처럼 되어있고, app/list/ListItem.js <button className="blue"> <span onClick={() => { fetch('/api/list/' + post._id, { method: 'DELETE' }).then(() => { console.log('call delete'); }); }}>삭제</span> </button> 위 처럼 코드를 작성했는데, DELETE route가 실행이 되지 않습니다. 어떻게 해야 하나요?... POST의 경우에는 아래와 같은데 동작이 잘 되서요.. app/write/route.js export async function POST(request) { const data = await request.formData(); let body = Object.fromEntries(data); const db = (await connectDB).db('exam'); await db.collection('post').insertOne(body); return new Response('POST'); } app/write/page.js <form action="/api/write" method="POST"> <input type="text" name="title" placeholder="제목"/> <br/> <input type="text" name="content" placeholder="내용"/> <button type="submit">NEW</button> </form>

개발자

#nextjs

답변 1

댓글 0

조회 176

2년 전 · 석이 님의 답변 업데이트

해당 스프링부트 코드 해석 좀 부탁드립니다..

안드로이드에쓸 스프링부트 코드를 따왔는데 제가 잘이해사 안되서 상세히 알려주실 선배님조언 구합니다 package com.example.teamproject import MyAdapter import android.content.Context import android.content.Intent import android.icu.lang.UCharacter.GraphemeClusterBreak.L import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Toast import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.LinearLayoutManager import com.example.teamproject.databinding.ActivitySearchBinding import com.example.teamproject.login.LoginActivity import com.example.teamproject.model.RstrModel import com.example.teamproject.review.ReviewActivity import com.google.android.material.bottomnavigation.BottomNavigationView import retrofit2.Call import retrofit2.Callback import retrofit2.Response class SearchActivity : AppCompatActivity() { lateinit var binding: ActivitySearchBinding private lateinit var adapter: MyAdapter override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivitySearchBinding.inflate(layoutInflater) setContentView(binding.root) setSupportActionBar(binding.toolbar) supportActionBar?.setDisplayShowTitleEnabled(false) binding.toolbar.title = "검색" val loginSharedPref = applicationContext.getSharedPreferences("login_prof", Context.MODE_PRIVATE) val userId = loginSharedPref.getString("m_id", null) val userService = (applicationContext as MyApplication).userService // 하단바 초기값 설정 val bottomNavigationView = findViewById<BottomNavigationView>(R.id.bottommenu) bottomNavigationView.selectedItemId = R.id.second_tab // 하단바 선택시 이벤티 binding.bottommenu.setOnItemSelectedListener {item -> when(item.itemId) { R.id.first_tab -> { val intent = Intent(this@SearchActivity, MainActivity::class.java) startActivity(intent) } R.id.third_tab -> { val intent = Intent(this@SearchActivity, ReviewActivity::class.java) startActivity(intent) } R.id.fourth_tab -> { if ( userId == null){ val intent = Intent(this@SearchActivity, LoginActivity::class.java) startActivity(intent) } else { val intent = Intent(this@SearchActivity, MyDining::class.java) startActivity(intent) } } R.id.fifth_tab -> { if ( userId == null){ val intent = Intent(this@SearchActivity, LoginActivity::class.java) startActivity(intent) } else { val intent = Intent(this@SearchActivity, MyProfilePage::class.java) startActivity(intent) } } } true } binding.searchBtn.setOnClickListener { var rstr_nm = binding.searchText.text.toString() val getnamecount = userService.getNamecount(rstr_nm) getnamecount.enqueue(object: Callback<Int>{ override fun onResponse(call: Call<Int>, response: Response<Int>) { if ( response.isSuccessful ){ val ncount = response.body() if (ncount != null) { if ( ncount >= 1){ val getname = userService.getName(rstr_nm) getname.enqueue(object: Callback<List<RstrModel>>{ override fun onResponse( call: Call<List<RstrModel>>, response: Response<List<RstrModel>> ) { if ( response.isSuccessful ){ val rstrlist = response.body() binding.recyclerView.adapter = MyAdapter(this@SearchActivity, rstrlist) binding.recyclerView.addItemDecoration( DividerItemDecoration(this@SearchActivity, LinearLayoutManager.VERTICAL) ) } } override fun onFailure( call: Call<List<RstrModel>>, t: Throwable ) { call.cancel() } }) } else { Toast.makeText(this@SearchActivity, "검색 결과가 없습니다!", Toast.LENGTH_SHORT).show() } } } } override fun onFailure(call: Call<Int>, t: Throwable) { call.cancel() } }) } binding.area1.setOnClickListener { val rstr_addr = binding.area1.text.toString() val getarea = userService.getArea(rstr_addr) getarea.enqueue(object: Callback<List<RstrModel>>{ override fun onResponse( call: Call<List<RstrModel>>, response: Response<List<RstrModel>> ) { if ( response.isSuccessful ){ val arealist = response.body() binding.recyclerView.adapter = MyAdapter(this@SearchActivity, arealist) binding.recyclerView.addItemDecoration(DividerItemDecoration(this@SearchActivity, LinearLayoutManager.VERTICAL)) } } override fun onFailure(call: Call<List<RstrModel>>, t: Throwable) { call.cancel() } }) } binding.area2.setOnClickListener { val rstr_addr = binding.area2.text.toString() val getarea = userService.getArea(rstr_addr) getarea.enqueue(object: Callback<List<RstrModel>>{ override fun onResponse( call: Call<List<RstrModel>>, response: Response<List<RstrModel>> ) { if ( response.isSuccessful ){ val arealist = response.body() binding.recyclerView.adapter = MyAdapter(this@SearchActivity, arealist) binding.recyclerView.addItemDecoration(DividerItemDecoration(this@SearchActivity, LinearLayoutManager.VERTICAL)) } } override fun onFailure(call: Call<List<RstrModel>>, t: Throwable) { call.cancel() } }) } binding.area3.setOnClickListener { val rstr_addr = binding.area3.text.toString() val getarea = userService.getArea(rstr_addr) getarea.enqueue(object: Callback<List<RstrModel>>{ override fun onResponse( call: Call<List<RstrModel>>, response: Response<List<RstrModel>> ) { if ( response.isSuccessful ){ val arealist = response.body() binding.recyclerView.adapter = MyAdapter(this@SearchActivity, arealist) binding.recyclerView.addItemDecoration(DividerItemDecoration(this@SearchActivity, LinearLayoutManager.VERTICAL)) } } override fun onFailure(call: Call<List<RstrModel>>, t: Throwable) { call.cancel() } }) } binding.area4.setOnClickListener { val rstr_addr = binding.area4.text.toString() val getarea = userService.getArea(rstr_addr) getarea.enqueue(object: Callback<List<RstrModel>>{ override fun onResponse( call: Call<List<RstrModel>>, response: Response<List<RstrModel>> ) { if ( response.isSuccessful ){ val arealist = response.body() binding.recyclerView.adapter = MyAdapter(this@SearchActivity, arealist) binding.recyclerView.addItemDecoration(DividerItemDecoration(this@SearchActivity, LinearLayoutManager.VERTICAL)) } } override fun onFailure(call: Call<List<RstrModel>>, t: Throwable) { call.cancel() } }) } binding.area5.setOnClickListener { val rstr_addr = binding.area5.text.toString() val getarea = userService.getArea(rstr_addr) getarea.enqueue(object: Callback<List<RstrModel>>{ override fun onResponse( call: Call<List<RstrModel>>, response: Response<List<RstrModel>> ) { if ( response.isSuccessful ){ val arealist = response.body() binding.recyclerView.adapter = MyAdapter(this@SearchActivity, arealist) binding.recyclerView.addItemDecoration(DividerItemDecoration(this@SearchActivity, LinearLayoutManager.VERTICAL)) } } override fun onFailure(call: Call<List<RstrModel>>, t: Throwable) { call.cancel() } }) } binding.area6.setOnClickListener { val rstr_addr = binding.area6.text.toString() val getarea = userService.getArea(rstr_addr) getarea.enqueue(object: Callback<List<RstrModel>>{ override fun onResponse( call: Call<List<RstrModel>>, response: Response<List<RstrModel>> ) { if ( response.isSuccessful ){ val arealist = response.body() binding.recyclerView.adapter = MyAdapter(this@SearchActivity, arealist) binding.recyclerView.addItemDecoration(DividerItemDecoration(this@SearchActivity, LinearLayoutManager.VERTICAL)) } } override fun onFailure(call: Call<List<RstrModel>>, t: Throwable) { call.cancel() } }) } binding.area7.setOnClickListener { val rstr_addr = binding.area7.text.toString() val getarea = userService.getArea(rstr_addr) getarea.enqueue(object: Callback<List<RstrModel>>{ override fun onResponse( call: Call<List<RstrModel>>, response: Response<List<RstrModel>> ) { if ( response.isSuccessful ){ val arealist = response.body() binding.recyclerView.adapter = MyAdapter(this@SearchActivity, arealist) binding.recyclerView.addItemDecoration(DividerItemDecoration(this@SearchActivity, LinearLayoutManager.VERTICAL)) } } override fun onFailure(call: Call<List<RstrModel>>, t: Throwable) { call.cancel() } }) } binding.type1.setOnClickListener { val rstr_list = binding.type1.text.toString() val gettype = userService.getType(rstr_list) gettype.enqueue(object: Callback<List<RstrModel>>{ override fun onResponse( call: Call<List<RstrModel>>, response: Response<List<RstrModel>> ) { if ( response.isSuccessful ){ val arealist = response.body() binding.recyclerView.adapter = MyAdapter(this@SearchActivity, arealist) binding.recyclerView.addItemDecoration(DividerItemDecoration(this@SearchActivity, LinearLayoutManager.VERTICAL)) } } override fun onFailure(call: Call<List<RstrModel>>, t: Throwable) { call.cancel() } }) } binding.type2.setOnClickListener { val rstr_list = binding.type2.text.toString() val gettype = userService.getType(rstr_list) gettype.enqueue(object: Callback<List<RstrModel>>{ override fun onResponse( call: Call<List<RstrModel>>, response: Response<List<RstrModel>> ) { if ( response.isSuccessful ){ val arealist = response.body() binding.recyclerView.adapter = MyAdapter(this@SearchActivity, arealist) binding.recyclerView.addItemDecoration(DividerItemDecoration(this@SearchActivity, LinearLayoutManager.VERTICAL)) } } override fun onFailure(call: Call<List<RstrModel>>, t: Throwable) { call.cancel() } }) } binding.type3.setOnClickListener { val rstr_list = binding.type3.text.toString() val gettype = userService.getType(rstr_list) gettype.enqueue(object: Callback<List<RstrModel>>{ override fun onResponse( call: Call<List<RstrModel>>, response: Response<List<RstrModel>> ) { if ( response.isSuccessful ){ val arealist = response.body() binding.recyclerView.adapter = MyAdapter(this@SearchActivity, arealist) binding.recyclerView.addItemDecoration(DividerItemDecoration(this@SearchActivity, LinearLayoutManager.VERTICAL)) } } override fun onFailure(call: Call<List<RstrModel>>, t: Throwable) { call.cancel() } }) } binding.type4.setOnClickListener { val rstr_list = binding.type4.text.toString() val gettype = userService.getType(rstr_list) gettype.enqueue(object: Callback<List<RstrModel>>{ override fun onResponse( call: Call<List<RstrModel>>, response: Response<List<RstrModel>> ) { if ( response.isSuccessful ){ val arealist = response.body() binding.recyclerView.adapter = MyAdapter(this@SearchActivity, arealist) binding.recyclerView.addItemDecoration(DividerItemDecoration(this@SearchActivity, LinearLayoutManager.VERTICAL)) } } override fun onFailure(call: Call<List<RstrModel>>, t: Throwable) { call.cancel() } }) } binding.type5.setOnClickListener { val rstr_list = binding.type5.text.toString() val gettype = userService.getType(rstr_list) gettype.enqueue(object: Callback<List<RstrModel>>{ override fun onResponse( call: Call<List<RstrModel>>, response: Response<List<RstrModel>> ) { if ( response.isSuccessful ){ val arealist = response.body() binding.recyclerView.adapter = MyAdapter(this@SearchActivity, arealist) binding.recyclerView.addItemDecoration(DividerItemDecoration(this@SearchActivity, LinearLayoutManager.VERTICAL)) } } override fun onFailure(call: Call<List<RstrModel>>, t: Throwable) { call.cancel() } }) } binding.type6.setOnClickListener { val rstr_list = binding.type6.text.toString() val gettype = userService.getType(rstr_list) gettype.enqueue(object: Callback<List<RstrModel>>{ override fun onResponse( call: Call<List<RstrModel>>, response: Response<List<RstrModel>> ) { if ( response.isSuccessful ){ val arealist = response.body() binding.recyclerView.adapter = MyAdapter(this@SearchActivity, arealist) binding.recyclerView.addItemDecoration(DividerItemDecoration(this@SearchActivity, LinearLayoutManager.VERTICAL)) } } override fun onFailure(call: Call<List<RstrModel>>, t: Throwable) { call.cancel() } }) } } }

개발자

#스프링부트

#안드롱디ㅡ

#안드로이드

#spring\

#spring

답변 1

댓글 0

보충이 필요해요 3

조회 212

2년 전 · 이재찬 님의 답변 업데이트

props 타입을 string으로 지정했는데 object를 넘겨줘도 오류가 안나는 이유가 궁금합니다

아래 코드에서 props가 object인데 왜 에러가 안날까요..? (1번라인 :string입니다)

개발자

#react

#typescript

#props

답변 1

댓글 0

조회 127

2년 전 · nv7gqgd9w2 님의 질문

MFC 클래스 작성 질문

MFC를 활용하여 태양계 시뮬레이터 과제를 만들어야 해서. 먼저 행성클래스를 작성하기 위해 #pragma once #include <afx.h> #include "Dialog.h" class CPlanet : private CObject { private: CString m_name; // 행성 이름 double m_radius; // 행성 반지름 double m_rotation; // 회전 방향 CPoint m_location; // 행성 위치 int m_lifespan; // 수명 } 이렇게 코드를 써서 멤버 변수를 작성하였습니다. 필요한 멤버함수랑 멤버 변수들은 객체 생성시 초기화를 하라고 하는데 초기화 할 때, 멤버 초기화 리스트로 초기화를 해야하는 건가요 그런데 대화상자를 통해 초기화 값을 입력받는다면 대화상자에서 클래스를 생성해서 ID를 따와서 넣어야 하는건가요

개발자

#c++

#mfc

답변 0

댓글 0

조회 111

2년 전 · 이재찬 님의 답변 업데이트

useState 로 Object, Array 타입 변경 어떻게 하시나요 ?

useState로 Object, Array를 만들고 object 필드를 변경할 때 보통 어떻게 하시나요? 구글링 해보면 […state] 로 새로운 배열을 만들고 업데이트 하거나 map으로 배열을 만들어서 업데이트 하는 방법 두 개가 나오는데 의견을 듣고 싶습니다.

개발자

#usestate

#object

#array

#setstate

답변 1

댓글 0

조회 152

2년 전 · 프레드윰 님의 새로운 답변

스위프트하다가 코틀린배우기 쉽나요?

개발언어 써봤던게 c, objective-c, swift이 3가지 있는데 취미로 코틀린 해볼까 생각이드네요,,,

개발자

#swift

#kotlin

#ios

#android

답변 1

댓글 0

추천해요 3

보충이 필요해요 1

조회 259

2년 전 · 커리어리 AI 봇 님의 새로운 답변

Java에서 Hashmap 사용 시 Integer null to 0(zero)?

java에서 서비스 단 작성하다가 궁금한 점이 있어서 올립니다. [값이 null인지 확인하고 각 조건에 알맞게 처리하기 - 조건분기] 1. generalInfo에 파라미터(tempItem)조회한 값 담아주기 - 이 때 seq도 조회됨 List<Object> genInfo = .selectList(serviceId+".selectSomeoneInfo", tempItem); 2. tempItem에 Key("seq") - Value(seq 값) 넣어주기 tempItem.put("seq", 오브젝트.getParamterInt(genInfo.get(0), "seq")); 3. 조건분기 (타입 선언) : Integer mSeq = (Integer) tempItem.get("seq"); (조건 분기) : if (mSeq == null) {} else {}; 이렇게 작성했는데요, 디버깅하다가 mSeq 값이 계속 "null이 아닌 0"으로 떠서 왜 null로 비교할 수 없는지 궁금해서 고수님들께 여쭙니다. ㅠㅠㅠ genInfo를 디버깅하면 seq가 null이 나오거든요(1번) , 근데 tempItem에서는 seq가 0이 나옵니다. 제가 쌩초보라 ㅠㅠ 답변 주시면 감사하겠습니다!

개발자

#java

#spring

#service

답변 1

댓글 0

조회 478

2년 전 · 커리어리 AI 봇 님의 새로운 답변

useSelector 최적화 방법중 shallowEqual에 대해서 질문이 있습니다!

shallowEqual는 컴포넌트 리렌더링할때 객체 안의 가장 겉에있는 값을 비교 해 준다고 알고 있는데요, 만약 다음 코드의 객체가 있다면 이전 값 다음 값 object.a, object.b, object.c 만 비교하여 변경됐을 시 컴포넌트를 리렌더링 하는걸로 알고 있습니다. 그런데 이렇게 됐을 때 object.a[0] 나 object.c.x가 업데이트 되어도 컴포넌트를 리렌더링 하지 않게되는건데 괜찮은건가요..?

개발자

#react

#useselector

#shallowequal

답변 2

댓글 0

조회 175