묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
delete 로직 문의
POST 맨으로 삭제 요청을 하였을 때 로그를 확인해 보니삭제 요청 아이디로 select를 한번 날리고 아이디가 존재시에만delete 로직이 수행되는데 이는 jpa 내부 프로세스 자체 로직 인가요?
-
미해결CAN 통신 - 자동차 신입이 알아야 할 모든 것
Baud Rate와 Clock Hz 사이의 관계
안녕하세요,CAN 통신 Baud Rate 관련 내용 중 Baud Rate가 1bps이고 Clock Hz가 10Hz인 경우를 예시를 들어 강의를 진행해주셨는데,만약 Baud Rate가 10bps이고 Clock Hz가 똑같이 10Hz인 경우에는 Time Quanta와 Sampling Point는 어떻게 지정해주게 되나요?혹시 Clock Hz는 Time Domain에서 하나의 비트 시간보다 무조건 짧도록 설정이 되는 것인가요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
스토어와 컬렉션
안녕하세요. 이 부분 비교하는 게 전체적으로 이해가 안 가서 질문을 어떻게 남겨야 할지 잘 모르겠네요. 질문 글들을 봤는데, 이해 가지 않아서 글 남깁니다. 그냥 신규 등록할 때, 등록되는 대상을 URI로 넘겨주면 클라이언트 저장소에서 리소스를 관리한다고 표현하고, 최상위를 스토어라고 표현한다. 반면, 등록되는 대상을 넘겨주지 않으면 서버 저장소에서 리소스를 관리한다고 표현하고, 최상위를 컬렉션이라고 부른다. 이렇게 이해해도 되나요? 사실 이렇게 적으면서도 뭔 말인지 하나도 모르겠네요.. 그냥 넘어가도 될만한 내용이죠?
-
미해결Verilog FPGA Program 1 (Arty A7-35T)
SPI MASTER 질문
reg [9:0] ready_cnt; //count 0~1023reg [3:0] done_cnt; //count 0~15reg [9:0] sck_cnt; //count 0~1023reg [5:0] sck_index; //count 0~63위와 같은 각각의 카운터의 의미가 이해가 되질 않습니다구체적으로 카운터의 범위를 왜 저렇게 선언해야 하는지 이해가 되질 않습니다또한 아래와 같은 파라미터로 선언된 부분이 배열처럼 사용되는 부분이 이해되질 않습니다배열로 선언해야 하는게 아닌지 궁금합니다parameter SLAVE_ID_WRITE = 8'h64;parameter SLAVE_ID_READ = 8'h65;-------------------------------------------------------------------(~rw_flag ? SLAVE_ID_WRITE[6] : SLAVE_ID_READ[6]) :(~rw_flag ? SLAVE_ID_WRITE[5] : SLAVE_ID_READ[5]) :(~rw_flag ? SLAVE_ID_WRITE[4] : SLAVE_ID_READ[4]) :(~rw_flag ? SLAVE_ID_WRITE[3] : SLAVE_ID_READ[3]) :(~rw_flag ? SLAVE_ID_WRITE[2] : SLAVE_ID_READ[2]) :(~rw_flag ? SLAVE_ID_WRITE[1] : SLAVE_ID_READ[1]) :(~rw_flag ? SLAVE_ID_WRITE[0] : SLAVE_ID_READ[0]) :
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
hibernate.hbm2ddl.auto가 안먹어요
안녕하세요.hibernate.hbm2ddl.auto가 처음에는 create 가 잘 작동했습니다. 그런데 table 생성되고 난 뒤 update 로 age 필드 추가 시도했는데 alter문이 실행되지 않고 필드 추가가 일어나지 않아서 테이블는 당연히 생성되지 않았는데 그 이후로 select 문에서는 추가된 필드 age가 조회되는 걸 확인 할 수 있었어요. 이상해서 validation 처리하니, 다음[1]과 같이 에러가 났구요. create 로 변경 후 다시 실행하려고 하니 drop 도 안되고 여전히 동일한 select만 실행됩니다. 인텔리제이를 껐다 다시 켜도 동일합니다. 어떻게 처리하면 좋을까요 ? main.classpackage jpaBasic; import javax.persistence.*; import java.util.List; public class Main { public static void main(String[] args) { //EntityMangerFactory 객체 : 웹 서비스 당 한개 생성하는 개념, 디비당 한개 생성 EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); //EntityManager 객체 : 고객 요청이 들어올 때 사용 했다가 사용 후 삭제 ( 1회성 ) EntityManager em = emf.createEntityManager(); //EntityTransaction 객체 : jpa 데이터 변경은 무조건 트랜잭션 안에서 실행 해야 한다. EntityTransaction tx = em.getTransaction(); tx.begin(); try{ // Jpql : jpa에서 지원하는 객체 지향 SQL // 일반 쿼리문과 비슷하지만 조회하는 대상이 테이블이 아닌 Member 의 객체를 조회 한다. List<Member> results = em.createQuery("select m from Member as m", Member.class) .getResultList(); for (Member member : results){ System.out.println("member.id " + member.getId()); System.out.println("member.name " + member.getName()); } tx.commit(); }catch (Exception e){ tx.rollback(); }finally { em.close(); } emf.close(); } }member.class package jpaBasic; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; @Entity public class Member { @Id private Long id; @Column(name="USER_NM", unique = true, length = 10) private String name ; private int age ; public Member() { } public Member(Long id, String name) { this.id = id; this.name = name; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } pesistence.xml<?xml version="1.0" encoding="UTF-8"?> <persistence version="2.2" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd"> <persistence-unit name="hello"> <properties> <!-- 필수 속성 --> <property name="javax.persistence.jdbc.driver" value="org.h2.Driver"/> <property name="javax.persistence.jdbc.user" value="sa"/> <property name="javax.persistence.jdbc.password" value=""/> <property name="javax.persistence.jdbc.url" value="jdbc:h2:tcp://localhost/~/jpashop"/> <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/> <!-- 옵션 --> <property name="hibernate.show_sql" value="true"/> <property name="hibernate.format_sql" value="true"/> <property name="hibernate.use_sql_comments" value="true"/> <property name="hibernate.hbm2ddl.auto" value="update" /> </properties> </persistence-unit> </persistence>[1] Exception in thread "main" javax.persistence.PersistenceException: [PersistenceUnit: hello] Unable to build Hibernate SessionFactory at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:1016) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:942) at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:56) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:79) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54) at jpaBasic.Main.main(Main.java:9) Caused by: java.lang.IllegalArgumentException: Unrecognized legacy `hibernate.hbm2ddl.auto` value : validation at org.hibernate.tool.schema.Action.interpretHbm2ddlSetting(Action.java:181) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator$ActionGrouping.interpret(SchemaManagementToolCoordinator.java:489) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:52) at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:310) at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:467) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:939) ... 4 more
-
해결됨[초급] 맛보자! 코틀린과 스프링으로 API 호출하기
Required request body is missing
Required request body is missing소스가 동일한데도 자꾸 위 에러가 나는데요혹시 스프링버전의 문제일까요?
-
미해결스프링 시큐리티 OAuth2
OAuth2.0 코드 부여 방식 인가서버를 REST API 서버 형태로 구현 질문
안녕하세요.. 선생님.. 드디어 완강했습니다.시간 엄청 걸리고 좀 힘들었네요. 다름이 아니라.모바일에서 요청하기 위한 자체 인가서버 OAuth2.0 authorization code 부여 방식 구현을 REST API 서버 형태로 구현할 수 있는지요?사용자 인증 시 웹 페이지 형태의 응답이 아닌 REST API 형태로 요청하고 응답을 받을 수 있도록 구현하려고 합니다. 원래는 인가서버에 사용자 로그인을 하고 동의해야 code 발급받고 클라이언트로 redirect 하여 클라이언트 서버가 대신 인가서버로 access token을 발급 받게 되는데.. 문제가 이 부분이네요.Spring Security 수업에서 ajax 방식으로 API 서버에 요청하면 보통 redirect 없이 응답만 받는 구조이다라고 선생님이 알려주셨는데요. 이와같이 redirect 없이 REST API로 구현할 수 있는 방법이 있는지요?인가서버 로그인은 form login 방식을 사용하지 않고 html 응답 없이 front end 단에서 fetch나 ajax API를 이용해서 POST 전송, json 형태로 username과 password 를 넣어서 요청하고 응답 처리를 할 수 있도록 커스텀하게 구현은 할 수는 있을 것 같긴 해요.. 동의화면은 그냥 false로 해서 안 나오게 하거나 아니면 login 완료 후 json 응답으로 동의가 필요하다는 응답을 주고 다시 POST 방식으로 동의하면 될 것 같긴하네요.클라이언트 서버는 그냥 리소스서버 처럼 사용해서, front end에서 클라이언트 서버로 access token을 전달하여 사용자 정보를 json 응답으로 가져오면 될 것 같아요. 하지만 문제는 redirect 처리를 어떻게 해야 하는지 잘 모르겠네요.인가서버에 임시코드 요청 시 json 응답으로 code를 주고 redirect 없시 다시 인가서버로 access token을 요청하는 방식으로 구현해야 하는지요?질문하면서도 authorization code 부여 방식에서 이렇게 구현을 하는게 맞는지? 의문이 드네요..이런 REST API OAuth2 인가서버라는게 표준 spec에 맞는지도 의문이고..모바일에서 REST API 방식으로 요청하고 인가서버에서 json 형태의 응답이 표준 spec 이랑 안 맞는 것 같기도 하고.. 무조건 html 웹 페이지 형태의 응답 기반으로 구현해야 하는지요? 여기에는 resource owner password 방식이 딱 맞는 것 같긴 한데 Deprecated 되어서 구현하면 안될 것 같고. 일반적으로 어떻게 구현하는지 알고 싶네요. 이런 케이스가 있는지요?어떻게 하면 좋을지 선생님 의견을 듣고 싶네요..감사합니다. ps 질문2. 클라이언 서버, 리소스서버로 딱딱 나누지 않고, 클라이언트 서버를 리소스서버 형태로 구현해서.. 사용자 인증 방식을 form login이 아닌 JwtDecoder 방식으로 인증 처리하여 클라이언트 서버가 서비스 정보를 주는 형태로 구현해도 되는지요?
-
미해결홍정모의 따라하며 배우는 C++
부모 클래스의 멤버변수가 상속될 때 초기화
class Child :public Mother { private: double m_d; public: Child() :m_d(1.0), m_i(10) { cout << "child constructor" << endl; } };위 코드에서 오류가 나는 이유가 Child객체를 실행할 때 m_d와 m_i에 메모리를 주는 과정에서 child객체가 m_i가 무엇인지 인식을 하지 못하기 때문에 에러가 난다고 이해했는데 맞게 생각한걸까요?
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강연장부탁드립니다
회사 업무와 병행하다 강의를 전부 다 수강하지 못했습니다. 수강 연장해주시면 나머지 마저 잘 듣겠습니다. 부탁드립니다 ㅠㅠ
-
미해결스마트요원에게 배우는 구글 스프레드시트
문자합치기 부분에서 질문있습니다
함수에서 C6을 왜 &로 두번 감싸신건지 궁금합니다
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-F 문제 관련 질문이 있습니다
http://boj.kr/7e750fbdd0404abeb7f5004bfc46d7d2 문제를 풀면서 for(int i = 0; i< s.size() ; i++)을 통해서 string의 각 char에 대해 접근하지 않고for(auto i : s)를 통해서 각 문자에 대해 접근하여 비교를 하려고 했는데, 디버깅을 해보니 for문 아래로 작동을 하지 않는 모습을 보입니다.혹시 이렇게 하면 안되는 이유가 있는건가요?
-
미해결초보를 위한 도커 안내서
방명록 배포과정중 질문이 있습니다.
compose.yml 파일 작성 하여 실행시에 하기처럼 실행과정에서 db 와 disconnect 관련 문구가 출력되는게 확인되었습니다. [실행 과정 중 확인된 구문]guestbook-backend-1 | App listening on port 8000guestbook-backend-1 | Press Ctrl+C to quit.guestbook-backend-1 | Disconnected: unable to reconnect to mongodb://db:27017/guestbookguestbook-backend-1 | /backend/node_modules/mongoose/node_modules/mongodb/lib/operations/mongo_client_ops.js:474guestbook-backend-1 | throw err;guestbook-backend-1 | ^guestbook-backend-1 |guestbook-backend-1 | Error: Disconnected: unable to reconnect to mongodb://db:27017/guestbookguestbook-backend-1 | at NativeConnection.db.on (/backend/routes/messages.js:10:11)guestbook-backend-1 | at emitNone (events.js:106:13)guestbook-backend-1 | at NativeConnection.emit (events.js:208:7)guestbook-backend-1 | at NativeConnection.set (/backend/node_modules/mongoose/lib/connection.js:119:12)guestbook-backend-1 | at /backend/node_modules/mongoose/lib/connection.js:529:26guestbook-backend-1 | at err (/backend/node_modules/mongoose/node_modules/mongodb/lib/utils.js:415:14)guestbook-backend-1 | at executeCallback (/backend/node_modules/mongoose/node_modules/mongodb/lib/utils.js:404:25)guestbook-backend-1 | at err (/backend/node_modules/mongoose/node_modules/mongodb/lib/operations/mongo_client_ops.js:293:21)guestbook-backend-1 | at connectCallback (/backend/node_modules/mongoose/node_modules/mongodb/lib/operations/mongo_client_ops.js:249:5)guestbook-backend-1 | at process.nextTick (/backend/node_modules/mongoose/node_modules/mongodb/lib/operations/mongo_client_ops.js:471:7)guestbook-backend-1 | at combinedTickCallback (internal/process/nexttick.js:132:7)guestbook-backend-1 | at process._tickCallback (internal/process/next_tick.js:181:9) 제가 작성한 구문의 문제인가 싶어 수업자료로 올라와있는 구문을 사용할시에도 동일하게 에러가 확인되었습니다. (로컬 인프라 환경은 aws ec2 ubuntu 22.04 입니다.) 다만 해당 에러 확인 후에 혹시나 싶어 포트 접근 해보니 정상적으로 페이지 오픈 및 방명록 기록까지 진행되었습니다.확인 한번만 부탁드립니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
리소스 식별 시 복수단어 사용
안녕하세요. 수업을 듣다 보면 자료에 계층 구조상 상위를 컬렉션으로 보고 복수단어 사용 권장이라고 나와있는데요. 최상위 한 번만 복수 단어를 사용하는 것인지, URI내에 계층구조는 모두 복수 단어를 사용하는 것인지 궁금합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1189_컴백홈 전역변수 지역 변수
안녕하세요 큰 돌님, ret의 지역변수 선언과 전역변수 선언에 궁금한 점이 있습니다. ny,nx와 같이 재귀함수의 매개 변수로 사용되는 변수는 지역변수로 선언 해야 한다는 것은 이해 했습니다. 그런데 ret은 매개변수로 사용되는 것이 아니기에 전역 변수로 사용해도 된다고 생각했습니다. <질문>왜 ret을 go 함수가 호출 될 때마다 저 자리에서 초기화 해야 하는지 모르겠습니다.. 재귀가 돌 때마다 초기화 되면 ret+=dfs(ny,nx); 이렇게 누적했던 합도 초기화되는 것 아닌가요? 아니면 int ret=0;선언이 ret+=dfs(ny,nx); 이 과정 앞에서 선언되었기 때문에 return 해서 값을 누적 할 때에는 영향을 안미치는 건가요?ret을 전역 변수로 선언하면 왜 틀리는지 모르겠습니다.. 제가 아마 재귀함수의 구조를 완벽히 이해 못해서 그런 것 같긴하지만 어디를 잘못 이해하고 있는지 모르겠어서 질문 남깁니다 ㅠㅠ
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
반복문에서 사용되는 변수 선언 위치
[질문 내용]강사님, 안녕하세요!반복문에서 사용되는 변수의 선언 위치에 대해 질문 드립니다.반복문에서 반복 사용될 변수의 경우에 저는 위의 코드처럼 반복문이 시작하기 전에 선언하는 편이었는데요, 반복문이 실행될 때마다 변수가 선언되면 메모리 낭비가 아닐까 해서였어요. 그런데 교안 정답을 보니 productName, price, quantity를 반복문 내에서 선언하고 바로 사용하는 식으로 사용하시는 것을 보고 궁금해져 질문 드립니다!변수를 생성하고 삭제하는 것 자체는 메모리 소모가 유의미하지 않기 때문에 반복문 내에서 생성-사용-삭제를 반복하게 해도 괜찮은 걸까요? 유익한 강의 감사합니다! :)
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
새로운 switch 문 default
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 새로운 switch 문 (java 14이상) 을 작성할 때 default 문은 무조건 있어야 하는건가요?
-
미해결2시간으로 끝내는 코루틴
코루틴이 자바 reactive streams 대신에 쓸 수 있는 것일까요?
추후에 자바 프로젝트를 코틀린으로 컨버팅할 계획을 가지고 있는데 자바의 비동기 라이브러리인 reactive streams를 코루틴이 대체할 수 있을까 해서요
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
chat gpt api 사용법관련 문의드립니다.
현재 강의 후 openai API 내용이 업데이트 되었는지 모르겠지만 강의 내용과 좀 다른 부분이 있어서 문의드립니다.사이트 코딩강의 코딩import 부분과 api_key 넣는 부분 등 코딩이 대체적으로 좀 다르네요.
-
미해결AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)
dockerfile 내부 폴더 copy
FROM node:20.10.0-alpine as build WORKDIR /home/app COPY package*.json . RUN npm install COPY . . RUN npm run build FROM node:20.10.0-alpine as production WORKDIR /home/app COPY --from=build ./home/app/package.json ./package.json COPY --from=build ./home/app/package-lock.json ./package-lock.json COPY --from=build ./home/app/tsconfig.json ./tsconfig.json COPY --from=build ./home/app/tsconfig.build.json ./tsconfig.build.json COPY --from=build ./home/app/nest-cli.json ./nest-cli.json COPY --from=build ./home/app/dist/ ./dist RUN npm install --only=production CMD ["npm", "run", "start:dev"]nestjs 애플리케이션을 docker를 사용하여 배포하기 위해서 Dockerfile을 작성했는데, dev stage에서 build한 build 산출물인 dist 폴더를 복사하려고 하는데, 복사가 되질 않네요,, 어떤 이유일까요? production stage를 주석처리하고, run build까지만 하고 exec 명령어로 해당 컨테이너에 들어가서 확인했을 때는 dist폴더가 존재하는 것을 확인했습니다..!
-
미해결따라하며 배우는 타입스크립트 A-Z
paths 설정 후 import시 동명 함수를 가져올 경우
디렉토리 구조가 이렇게 되어있을때, @src/bar로 src/bar/index.ts에 있는 bar라는 함수를 가져오는 상황이라고 이해했습니다. 제가 이해한 게 맞을까요...? 그리고 이런 경우 만약 bar라는 함수가 만약 다른 디렉토리의 index 파일에 동명의 함수가 있으면, 이런 경우엔 어떻게 되나요? 만약 제가 2번에서 질문한 것이 성립이 되지 않는다면 제가 생각하기엔 "paths":{"@src/*" : ["src/*"] 라고 설정하는 부분이 src 디렉토리 안에 직접 포함되어 있는 파일만 가리키는 것 같은데요... 그렇다고 한다면, 왜 paths를 쓰는건가요? 그냥 절대경로로 써주는게 가독성이나 편의성 면에서 더 좋을 것 같은데, 라는 궁금증이 생겨 질문 남깁니다.