묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결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를 쓰는건가요? 그냥 절대경로로 써주는게 가독성이나 편의성 면에서 더 좋을 것 같은데, 라는 궁금증이 생겨 질문 남깁니다.
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
선생님 지난번에 질문했던 학생이 해답을 찾아서 보고?^^ 올립니다.
안녕하세요. 😁😁과거에 이미지를 글자 위에 겹쳐서 찍는 코드를 파이썬으로 구현하고 싶은데 할 줄 몰라서 질문 했던 학생입니다. 실력이 부족해서 해답을 발견하는데까지 너무 오래 걸렸네요 ㅠㅠ 거두절미하고 질문했던 사람으로서 제 질문에 답을 공유해서 누군지 모르겠지만 혹시라도 누군가에게 도움이 되길 바라는 마음으로 제가 찾은 코드를 공유하고자 합니다. 1. 원하는 기능 요약 먼저 제가 과거에 했던 질문내용을 모르시는 분들을 위하여 제가 원했던 기능을 다시 정리합니다. (이미 아시는 분들은 이번 목차 내용 전부 안 읽고 넘어가셔도 무방합니다.) 한/컴 문서에 이미지를 추가한다.이미지의 속성 중 '글자처럼 취급' 속성을 해제한다.추가한 이미지를 글자와 겹치도록 위치시킨다.이미지가 글자와 겹쳐서 위치 될 때 이미지가 문자 위에 존재하도록 설정한다. 2. 코드 내용 import os import win32com.client as win32 hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject") hwp.XHwpWindows.Item(0).Visible = True hwp.RegisterModule("FilePathCheckDLL", "FilePathCheckerModule") file_path = os.path.join(os.getcwd(), "문서양식/테스트문서.hwp") hwp.Open(file_path) img_path = r"추가하길원하는이미지경로.png" hwp.InsertPicture(img_path, Embedded=True) hwp.FindCtrl() # 이미지 선택 (커서에서 인접한 개체 선택) hwp.HAction.GetDefault("ShapeObjDialog", hwp.HParameterSet.HShapeObject.HSet) # 액션 초기화 hwp.HParameterSet.HShapeObject.TextWrap = hwp.TextWrapType("InFrontOfText") # 글 위로 배치 # 혹시라도 글 뒤로 배치를 원하시는 분들은 "BehindText" 으로 변경해서 사용하셔요. ^^ hwp.HParameterSet.HShapeObject.TreatAsChar = 0 # 글자처럼 취급 해제 hwp.HAction.Execute("ShapeObjDialog", hwp.HParameterSet.HShapeObject.HSet) # 실행 위 코드 테스트를 원하시는 분들은 'file_path' 변수의 파일 경로와 'img_path' 의 이미지 파일 경로만 자신의 상황에 맞게 지정하여 테스팅 해보시면 됩니다. file_path 는 hwp 문서파일의 경로를 지정하세요. img_path 는 hwp 문서에 추가하시길 원하시는 이미지 파일의 경로를 지정하시면 됩니다. 나머지는 전부 다 이미 잘 알고 계시리라 생각합니다. 3. 끝으로.. 음... 사실 혼자 알아내는게 너무 힘들었습니다. 물론 어려워서가 아니라. 제 개인의 실력부족 때문에요 ㅎㅎ 그래도 결국 포기하지 않아서 알아내니까 기분은 좋네요. 아무튼 위 코드와 관련하여 추가적인 궁금점이 있으신 분들은 댓글 남겨주시면 제가 능력범위 내에서 도움드릴 수 있는 내용은 도움을 드리고 싶습니다. 물론 능력이 아주 많이 부족하니 도와드리지 못하는 것들이 많을 수 있습니다. ㅠㅠ 미리 사과드립니다. 모쪼록 저와 같은 고민을 하셨던 분들에게 작은 도움이 되었길 바랍니다. 그리고 제가 원하는 기능을 구현하도록 도와주기 위해 여러 차례 답변을 답해주신 신명진 강사님께도 정말로 진심으로 감사하단 말씀 드립니다.
-
미해결프로젝트로 배우는 React.js
에러떠요..
41 수정 페이지 폼 1하는데막혀서 진도를 못나가고 있습니다. BlogForm.js const {id} = useParams(); useEffect((id) => { axios.get(`http://localhost:3001/posts/${id}`).then(res =>{ console.log(res) setTitle(res.data.title); setBody(res.data.body); }) }, [id]);강의대로 넣었는데폼입력 페이지에서 아래와 같은 에러가 뜹니다. axios가 문제인건가요?서버는 재기동해도 이상없는거 같습니다.ListPage.js(/blogs) 폴더내의 리스트와ShowPage.js(/blogs/1)는 정상적으로 보입니다.
-
미해결
public과 src에서 에셋을 관리하는 것의 장단점이 각각 무엇일까요?
src에서 정적 에셋을 관리할 경우src 안의 파일은 삭제하거나 오타를 내면 빌드 실패로 알 수 있으나, public 폴더는 그게 불가능해서 위험함public 이미지는 캐시되어서 변경되었을 경우 바뀌지 않을 수 있음javascript에서 모듈 형식으로 import 가능라는 장단점을 찾았는데, public에서 관리할 경우의 장점은 무엇이 있을까요?그리고 public에서 관리되는 에셋은 왜 Javascript 코드 내에서 사용하지 말아야 할까요? Vite 공식 문서에도 사용하지 말라는 설명은 있는데, 이유가 궁금합니다. 우선 src 안의 파일은 삭제하거나 오타를 내면 빌드 실패로 알 수 있으나, public 폴더는 그게 불가능해서 위험함 이게 이유 같긴 한데요. 더 있을까요?