inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

176만명의 커뮤니티!! 함께 토론해봐요.

MessageSource 질문입니다.

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

자료에서 "MessageSource 를 스프링 빈으로 등록하지 않고, 스프링 부트와 관련된 별도의 설정을 하지 않으면 messages 라는 이름으로 기본 등록된다. 따라서 messages_en.properties , messages_ko.properties , messages.properties 파일만 등록하면 자동으로 인식된다" 라는 말은 messages_en.properties , messages_ko.properties , messages.properties 파일등록과 상관없이 application.properties에 spring.messages.basename=messages 가 기본으로 등록되있고 MessageSource 도 스프링 부트를 사용하면 자동으로 스프링 빈으로 등록되있기 때문에 파일만 등록해서 사용하면 된다. 라고 이해하면 될까요??

  • spring
  • mvc
코딩먹는하마 댓글 1 좋아요 0 조회수 425

워커노드 재기동 시 추가작업 문의드립니다.

미해결

대세는 쿠버네티스 (초급~중급편)

워커 노드를 reboot now 명령어로 재기동한 경우 [root@0I ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION k8s-master Ready control-plane,master 24h v1.22.0 이렇게 마스터만 보이고 워커노드가 보이지 않습니다. 노드 재기동 시 따로 실행해야하는 설정이 있는걸까요?

  • docker
  • kubernetes
김태수 댓글 1 좋아요 1 조회수 465

인텔리제이환경 강의 배포일에 대해 문의 드립니다

미해결

[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]

안녕하세요 박메일님 JavaTPC강의로 강사님께 입문하고 열심히 배우는 학생입니다.다름이 아니라 다른분 문의글에 인텔리제이 버전으로도 찍어서 3월말에 배포해주신다는 답변을 보아서 구매를 결심하게되었는데 혹시 언제쯤 배포하실계획이실까요?더 늦어지실까요?

  • jsp
  • mysql
  • mvc
  • ajax
  • pojo
그레놀라 댓글 1 좋아요 0 조회수 489

Preflight Request 네트워크 탭에 노출되지 않음

미해결

스프링부트 JUnit 테스트 - 시큐리티를 활용한 Bank 애플리케이션

엣지랑 크롬으로 테스트해봤는데 Preflight 헤더가 보이지 않습니다. 검색해보니 OPTIONS 요청은 네트워크 탭에 보이지 않게 되었다고 하는 글들이 많은데 어떻게 보이게 하는지 알고 싶습니다. https://stackoverflow.com/questions/57410051/chrome-not-showing-options-requests-in-network-tab 이 flag 옵션도 현재는 보이지 않네요.

  • spring-boot
  • junit
jeidiiy 댓글 2 좋아요 0 조회수 1406

cascade option 적용 후 부모 객체 삭제시 쿼리의 수 질문

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

1.코드상황 Member(부모), Latter(자식)의 양방향 연관관계로 매핑되어있고 Member 1개에 Latter2개가 저장되어 있는데 이를 지우는 과정에서의 쿼리 개수가 예상과 다른 상황입니다. "delete from latter where latter_member_id = ?" 하나가 나와 다 지울 줄 알았으나 "delete from latter where latter_id = ?" "delete from latter where latter_id = ?" 총 2번 쿼리가 나갑니다. 2.코드 Latter.class package dev.devpool.domain; import dev.devpool.domain.enums.IsCheck; import javax.persistence.*; import static javax.persistence.EnumType.STRING; @Entity public class Latter { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "LATTER_ID") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "MEMBER_ID") private Member member; private String body; @Enumerated(STRING) private IsCheck isCheck; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public Member getMember() { return member; } public void setMember(Member member) { this.member = member; } public String getBody() { return body; } public void setBody(String body) { this.body = body; } public IsCheck getIsCheck() { return isCheck; } public void setIsCheck(IsCheck isCheck) { this.isCheck = isCheck; } } Member.class package dev.devpool.domain; import javax.persistence.*; import java.util.ArrayList; import java.util.List; @Entity public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "MEMBER_ID") private Long id; private String name; private String nickName; private String email; private String password; public Member() { } public Member(String name, String nickName, String email, String password) { this.name = name; this.nickName = nickName; this.email = email; this.password = password; } @OneToMany(mappedBy = "member", cascade = CascadeType.ALL) private List<Certificate> certificates = new ArrayList<>(); @OneToMany(mappedBy = "member", cascade = CascadeType.ALL, orphanRemoval = true) private List<Latter> latters = new ArrayList<>(); public List<Latter> getLatters() { return latters; } public void setLatters(List<Latter> latters) { this.latters = latters; } public void setId(Long id) { this.id = id; } public List<Certificate> getCertificates() { return certificates; } public void setCertificates(List<Certificate> certificates) { this.certificates = certificates; } public Long getId() { return id; } public void setId(long id) { this.id = id; } public void setName(String name) { this.name = name; } public String getName() { return name; } public String getNickName() { return nickName; } public void setNickName(String nickName) { this.nickName = nickName; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } /** * 편의 메서드 */ public void addCertificate(Certificate certificate) { certificate.setMember(this); certificates.add(certificate); } public void addLatter(Latter latter) { latter.setMember(this); latters.add(latter); } } MemberService의 deleteById public void deleteById(long memberId) { Member findMember = em.find(Member.class, memberId); if (findMember != null) { em.remove(findMember); } } Test코드 @Test public void 쪽지삭제ByMember() { transactionTemplate.execute(status -> { //given Member member = new Member(); Latter latter1 = new Latter(); Latter latter2 = new Latter(); member.addLatter(latter1); member.addLatter(latter2); memberService.join(member); em.flush(); em.clear(); //when memberService.deleteById(member.getId()); em.flush(); em.clear(); //then List<Latter> latters = latterService.findAllByMemberId(member.getId()); assertEquals(0, latters.size()); return null; }); } 쿼리 결과 Hibernate: select member0_.member_id as member_i1_2_, member0_.email as email2_2_, member0_.name as name3_2_, member0_.nick_name as nick_nam4_2_, member0_.password as password5_2_ from member member0_ where member0_.email=? Hibernate: insert into member (member_id, email, name, nick_name, password) values (default, ?, ?, ?, ?) Hibernate: insert into latter (latter_id, body, is_check, member_id) values (default, ?, ?, ?) Hibernate: insert into latter (latter_id, body, is_check, member_id) values (default, ?, ?, ?) Hibernate: select member0_.member_id as member_i1_2_0_, member0_.email as email2_2_0_, member0_.name as name3_2_0_, member0_.nick_name as nick_nam4_2_0_, member0_.password as password5_2_0_ from member member0_ where member0_.member_id=? Hibernate: *** select certificat0_.member_id as member_i3_0_0_, certificat0_.certificate_id as certific1_0_0_, certificat0_.certificate_id as certific1_0_1_, certificat0_.body as body2_0_1_, certificat0_.member_id as member_i3_0_1_ from certificate certificat0_ where certificat0_.member_id=? Hibernate: select latters0_.member_id as member_i4_1_0_, latters0_.latter_id as latter_i1_1_0_, latters0_.latter_id as latter_i1_1_1_, latters0_.body as body2_1_1_, latters0_.is_check as is_check3_1_1_, latters0_.member_id as member_i4_1_1_ from latter latters0_ where latters0_.member_id=? *** *** Hibernate: delete from latter where latter_id=? Hibernate: delete from latter where latter_id=? *** Hibernate: delete from member where member_id=? Hibernate: select latter0_.latter_id as latter_i1_1_, latter0_.body as body2_1_, latter0_.is_check as is_check3_1_, latter0_.member_id as member_i4_1_ from latter latter0_ where latter0_.member_id=? 3.질문 Q1) *** *** 부분에서 cascade 및 양방향으로 걸려있는 것들에 대해 다시 select 쿼리가 날라가는 이유가 무엇인가요? Q2) 왜 latter_id를 바탕으로 쿼리가 2개 나가나요?

  • java
  • jpa
taeu kim 댓글 1 좋아요 0 조회수 437

/hello 페이지 Whitelabel Error

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

안녕하세요? 4강 진행하면서 HelloController 생성 및 hello 메소드까지 작성하여 static/index.html에 연결하였습니다. 이후 재기동까지 수행했지만, /hello 페이지 진입 시, 500 오류와 함께 Whitelabel Error가 발생합니다. 서버 Console에서 발생하는 오류 메시지는 아래와 같습니다. 2023-04-05 15:52:05.474 ERROR 24049 --- [nio-8080-exec-5] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.thymeleaf.exceptions.TemplateInputException: Error resolving template [hello], template might not exist or might not be accessible by any of the configured Template Resolvers] with root cause org.thymeleaf.exceptions.TemplateInputException: Error resolving template [hello], template might not exist or might not be accessible by any of the configured Template Resolvers build.gradle의 thymeleaf 라이브러리 의존성도 제대로 선언되어 있고, 라이브러리도 정상적으로 참조되고 있는 것 같은데, 원인을 찾기가 쉽지 않네요 ㅠ 아래의 구글 드라이브 링크에 해당 프로젝트를 압축하여 첨부하였습니다. 확인 부탁드립니다. https://drive.google.com/file/d/1tdu2p3HdwYLbzWLmVOUBGUsPW3qljb1F/view?usp=share_link

  • java
  • spring
  • mvc
  • spring-boot
young.woo.kim 댓글 1 좋아요 0 조회수 409

invalid source 에러 <빌드하고 실행하기>

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. > Task :compileJava FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':compileJava'. > invalid source release: 11 * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. * Get more help at https://help.gradle.org 이렇게 에러가 뜨는데 같은 에러 뜬 분들 블로그와 글들 확인하고 버전도 다 맞췄는데 자꾸 에러 뜹니다... 도와주세요 ㅠ

  • java
  • spring
  • mvc
  • spring-boot
bl00mfl0wer 댓글 2 좋아요 0 조회수 961

컴포넌트 재 렌더링 과정이 궁금합니다.

미해결

처음 만난 리액트(React)

안녕하세요 소플님! 감사하게도 강의 너무 잘 듣고 있습니다! 강의에서 알려주신 Accommodate function component 코드 제일 상단에 아래 처럼 로그를 찍도록 선언을 했는데요. function Accommodate(prop) { console.log("Accommodate created!!!") const [isFull, setIsFull] = useState(false); const [count, increaseCount, decreaseCount] = useCounter(0); useEffect(() => { console.log("======================"); console.log("useEffect() is called."); console.log(`isFull: ${isFull}`); }); //이후 생략 } 최초에 화면을 그린 로그는 아래처럼 나오고 있는데 Accommodate created!!! ====================== useEffect() is called. isFull: false Current count value: 0 입장 버튼을 누르고난 뒤에는 Accommodate created!!! 로그가 마지막에 한번씩 더 찍히더라구요. count가 변경이 됐기 때문에 Accommdate를 재렌더링 했고 그 과정에서 1번 useEffect에 선언한 함수가 호출되고 count가 변경됐기 때문에 2번 useEffect에 선언한 함수가 호출되는건 알겠는데, 최상단에 작성한 로그가 다시 찍히는 이유가 어떤거 인가요?? Accommodate created!!! ====================== useEffect() is called. isFull: false Current count value: 1 Accommodate created!!! 재렌더링이 또 된거라고 봐야하는걸까요..?!

  • HTML/CSS
  • javascript
  • react
min Clap 댓글 1 좋아요 0 조회수 579

연결리스트-구현 관련 질문드립니다.

해결됨

그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)

12분 쯤에 만든 연결리스트를 test 해보는 부분이 있는데요, 아래와 같은 코드가 나오는데 갑자기 'list'라는 단어가 어디서 나온건지 궁금해서요!ㅠㅠ 그런 클래스는 선언된 적이 없는것 같은데... 제가 swift만 다뤄보고 js 를 처음봐서 모르는 걸까요? import { Node, LinkedList } from './LinkedList.mjs'; list.insertAt(0, 0); list.insertAt(1, 1); list.insertAt(2, 2); list.insertAt(3, 3); list.insertAt(4, 4); list.printAll();

  • 알고리즘
기쁜 참새 댓글 1 좋아요 1 조회수 595

Model 파라미터

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

감사합니다! 항상 강의 잘 듣고 있습니다. 1. 3:34초에 Model로 넘어왔다고 말씀하시는데 어떤 Model이 넘어온 것인가요? 2. Model이 파라미터로 넘어온다면 "member"라는 이름에 member를 넣어서 view에 넘겨줍니다. 그렇다면 파라미터로 받는 것이 아니라 model을 save함수 안에서 선언해서 사용할 수는 없는 건가요?

  • spring
  • mvc
Lego 댓글 1 좋아요 0 조회수 384

M is not mapped

해결됨

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 코드 확인 다 해봤는데 틀린게 없습니다. 그런데 종합 테스트를 해보니깐 M is not mapped라는 오류가 자꾸 발생합니다. 제가 생각하기에는 List <Member> result = em.createQuery("select m from m where m.name = :name", Member. class ) 이부분에서 에러를 던지는거 같은데 어떻게 해결해야 할지 모르겠어서 질문 남깁니다. 밑에는 오류 캡처본입니다.

  • java
  • spring
  • mvc
  • spring-boot
태훈 댓글 2 좋아요 1 조회수 436

run의 사용 방법에 대해 궁금한 점이 있습니다

해결됨

자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)

안녕하세요 강사님. 완강하고 코틀린을 계속 공부하다가 궁금한 점이 생겨 질문 드립니다. run 의 경우에는 아래와 같이 확장함수가 아닌 일반적인 메소드의 형태로 정의된 것이 있는 것을 발견했습니다. 그래서 메소드를 작성할 때 run 을 사용해서 작성할 수도 있겠다는 생각이 들더라구요. 예시로 Int 의 확장함수로 거듭제곱을 수행하는 pow() 라는 메소드를 작성할 때 보통은 다음과 같이 작성하겠죠. fun Int.pow(n: Int): Long { var result = 1L repeat(n) { result *= this } return result } 그런데 위의 run 을 사용해서 아래처럼 작성할 수도 있었고 두 경우 모두 같은 결과를 반환하는 것을 볼 수 있었습니다. fun Int.pow(n: Int) = run { var result = 1L repeat(n) { result *= this } result } 그러면 메소드를 작성할 때 두가지 방법 모두 사용할 수 있다고 생각되는데, 어느쪽을 사용하는 것이 좋은 방법일지 강사님의 의견을 듣고싶어서 질문 남겨봅니다.

  • java
  • kotlin
  • 객체지향
콜라곰 댓글 1 좋아요 1 조회수 638

JPA 1차 캐시와 쓰기지연 DB 질문 드립니다.

해결됨

자바 ORM 표준 JPA 프로그래밍 - 기본편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요. 강의 잘 듣고 있습니다. JPA를 쓸 때 persist()를 호출하면 1차 캐시에 엔티티가 저장되고(영속엔티티), insert쿼리가 쓰기지연 DB에 입력되는 것으로 알고 있는데요. 이때 영속된 엔티티의 필드값을 바꾸게 되면 flush될 때 변경감지가 동작해서 update쿼리를 쓰기지연 저장소에 넣게 된다고 알고 있습니다. 이제 질문 드리겠습니다. 1) 우선 제가 이해한 persist와 flush의 동작이 맞을까요? 2) 맞다면, 비용측면에서 쓰기지연DB에서 DB로 값을 밀어넣어 줄 때 insert, update쿼리 따로 나갈게 아니라, insert쿼리(수정된 필드값까지 고려된 insert문)만 나가면 더 효율적일 것 같은데 왜 insert와 update가 나가는건가요? 하이버네이트 특성이라면 왜 그렇게 동작해야만 하는지..알려주실 수 있을까요?

  • java
  • jpa
고래밥 댓글 1 좋아요 0 조회수 769

properties 파일 이름은 규칙인가요 >?

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

messages_##.properties ##에 들어가야 하는 단어는 영어면 en, 한국어면 kr과 같이 이름의 규칙이 정해져 있는 건가요 ? 그리고 ##에 아무것도 넣지 않는 messages.properties가 default로 선택되는 건가요 ?

  • spring
  • mvc
댓글 1 좋아요 0 조회수 594

type= "button", type="submit"의 차이

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

addForm.html에서 <form action="item.html" th:action th:object="${item}" method="post"> <hr class="my-4"> <div class="row"> <div class="col"> <button class="w-100 btn btn-primary btn-lg" type="submit">상품 등록</button> </div> <div class="col"> <button class="w-100 btn btn-secondary btn-lg" onclick="location.href='items.html'" th:onclick="|location.href='@{/form/items}'|" type="button">취소</button> </div> </div> </form> 상품등록은 type="submit" 취소는 type="button" 을 하셨길래 그 차이가 궁금하여 구글링을 해봤더니 버튼은 타입 명시가 없다면 기본적으로 'submit' 처리가 되며 'submit'은 새로고침을 하게 한다. 라는 것을 알게되었습니다. 그래도 잘 이해가 안되 상품등록버튼을 type="button" 으로 바꿔봤더니 작동이 되지않았습니다... <기존코드> <button class="w-100 btn btn-primary btn-lg" type="submit">상품 등록</button> <변경 코드> <button class="w-100 btn btn-primary btn-lg" type="button">상품 등록</button> 그래서 개발자도구를 보니 type="button"을 하면 POST가 아닌 GET으로만 보내고 있는 것을 확인했습니다. <정리> form 속성 중 method가 post인데 상품등록버튼을type="submit"에서 type="button"으로 바꾸면 POST가 GET으로 바뀌는 이유가 궁금합니다.

  • spring
  • mvc
코딩먹는하마 댓글 1 좋아요 0 조회수 5674

저항 위치에 대한 질문

미해결

아두이노와 떠나는 사물인터넷 여행 - 아두이노 입문부터 IoT 중급까지!

안녕하세요. 이제 앞부분 수강하고 있는 초보입니다.. 저항에 위치에 대해 질문 드릴꼐요. 강의해서 저항은 부품을 보호하기 위해 앞에 두는 보호장치라고 하셨는데요.. 입문 강의의 회로도를 보면 전원 -> LED 전구 -> 저항 -> GND 순으로 저항이 LED 다음에 붙어있는데 이부분이 이해가 되질 않습니다... 다른 자료를 찾아봐도 어떤건 앞에 있고.. 어떤건 뒤에 있는게 있어서.. 차이를 알고 싶습니다.~ 전자회로 지식이 없다보니 햇갈리네요~.. 감사합니다~

  • 네트워크
  • arduino
  • iot
HanHee Thomas Nam 댓글 1 좋아요 0 조회수 888

강의 자료 다운받을 수 있나요?

미해결

야곰의 스위프트 기본 문법 강좌

안녕하세요, 강의 자료 다운받을 수 있는지 문의드립니다. 감사합니다.

  • swift
some1171 댓글 1 좋아요 0 조회수 764

오타로 인한 오류 제보 입니다.

미해결

따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)

9분:15초쯤 commented on다음에 작성코드 [변경전] <span>commented on</span> <Link href={`/u/${comment.post?.url}`} className="cursor-pointer font-semibold hover:underline" > {comment.post?.title} </Link> [변경후] <span>commented on</span> <Link href={`${comment.post?.url}`} className="cursor-pointer font-semibold hover:underline" > {comment.post?.title} </Link>

  • react
  • node.js
  • postgresql
  • docker
  • typescript
  • 클론코딩
  • next.js
rhkdtjd_12 댓글 2 좋아요 2 조회수 326

안드로이드 Default Splash Screen 없애는 방법

해결됨

배달앱 클론코딩 [with React Native]

안녕하세요 제로초님, Splash Screen을 설정하는 과정 중에 안드로이드에서 Splash Screen이 두 개가 나옵니다. Default Splash Screen과 제가 만든 Splash Screen, 이렇게 두 개가 나오는데 Default Splash Screen을 나오지 않게 하는 방법을 알고 싶습니다. 아래와 같은 순서로 앱이 실행됩니다.

  • react-native
Kang Yul 댓글 1 좋아요 0 조회수 5634

로그인과 같이 레이아웃이 완전 다른 페이지를 만들때는 router 를 어떻게 할까요?

미해결

프로젝트로 배우는 Vue.js 3

안녕하세요 선생님! 덕분에 정말 뷰 재미있게 배우고 있습니다. 한가지 궁금한점은 모든 페이지에는 헤더가 동일하다가 로그인/회원가입에서만 헤더가 다르거나 완전 다른 레이아웃일 경우에는 아래 중 어떤 것이 가장 적합한지 궁금합니다. router 를 사용한 후 v-if 등을 활용해서 header를 숨김처리 router 사용 / header 컴포넌트에 slot 등을 활용해서 숨김처리 로그인/회원가입과 같은 특수한 페이지만 router 사용하지 않고 a링크로 url 이동 어떤것이 가장 적합할까요? 또한, 30페이지 정도는 a헤더를 사용하고 40페이지 정도는 b헤더를 사용해야하는 경우에는 어떤것이 적합한지 궁금합니다!

  • vue.js
  • 웹앱
  • vuex
wrapstudio715 댓글 1 좋아요 0 조회수 476

인기 태그

인프런 TOP Writers

주간 인기글