inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

Filter의 처리 순서에 관한 질문

미해결

스프링 시큐리티

안녕하세요. 학습내용을 복습하던중 질문이 있습니다. <p>DelegatingFilterProxy</p> 와 <p>FilterChainProxy</p> 의 요청 처리 흐름을 <p>DispatcherServlet</p>을 포함하여 설명하는 그림에서 질문이 있습니다. <p>FilterChainProxy</p>가 직접 <p>DispatcherServlet</p>에 요청을 하는 것이 맞나요? 제 생각에는 첨부한 그림과 같은 실행 순서가 되야 할 것 같습니다. <p>FilterChainProxy</p>가 인증 인가 처리를 마친 후 직접 <p>DispatcherServlet</p>에 요청을 날리게 되면 <p>Servlet Container</p>의 필터 Filter 체인 실행에 문제가 있을 것 같습니다.

  • Spring Security
  • spring-boot
  • java
득윤 댓글 1 좋아요 2 조회수 542

int j = 0

미해결

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

안녕하세요. 강의를 듣던 중 궁금한 점이 생겨 질문을 남깁니다. int j =0 을 for문 조건에 초기화 하지 않고 for문 밖에 초기화를 하면 안쪽 for문이 끝나고 다시 바깥쪽 for문을 돌 때에 마지막 j의 값이 그대로 넘어가게 되는 것 맞나요?

  • java
  • 코테 준비 같이 해요!
김동현 댓글 1 좋아요 0 조회수 516

yml과 properties

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

어떤 파일이 더 좋다? 유용한가요? 본인에게 더 맞는걸 쓰는게 괜찮은가요? 전 yml이 편한데 구글링 하면서 찾아보면 yml보다 프로퍼티스가 더 많이 보이는거 같아서요..

  • spring
  • spring-boot
  • JPA
  • java
  • 웹앱
박찬영 댓글 1 좋아요 0 조회수 327

Optional 적용 문제

해결됨

실전! 스프링 데이터 JPA

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 회원 이메일을 사용하여 MemberRepository에서 회원 정보를 조회하는 메서드를 구현해 보았습니다. 해당 이메일의 회원이 DB에 존재하지 않을경우를 고려하여 다음과 같이 Optional로 감싸주었습니다. Transactional(readOnly = true) public interface MemberRepository extends JpaRepository<Member, Long> { Optional<Member> findByEmail(String email); ... } 이 경우 Service 단에서 해당 메서드를 사용할 경우 변수 타입을 Optional<Member>로 선언해 줘야 했습니다. @Transactional public void followFriend(FollowFriendRequest request) { Member requester = getMember(request.getRequesterEmail()); Optional<Member> receiver = memberRepository.findByEmail(request.getReceiverEmail()); log.info("requester: '{}', receiver: '{}'", requester, receiver); if (receiver == null) { throw new MemberEmailNotFound(); } if (requester.hasFriend(receiver) || relationRepository.existsByOwnerEmailAndFriendEmail(request.getRequesterEmail(), request.getReceiverEmail())) { throw new EmailDuplicatedException(request.getReceiverEmail()); } relationRepository.save(new Relation(requester, receiver)); } 이러면 위 코드 마지막 줄의 Relation 생성자 또한 Optional을 포함한 생성자를 추가로 만들어 줘야 하고 이렇게 되면 Relation 엔티티의 receiver 필드값에도 Optional을 씌워줘야 하는 문제가 발생했습니다. 이 경우 Optional을 어떻게 사용하는게 옳은건지 궁금합니다.

  • optional
  • spring
  • spring-boot
  • java
  • JPA
고산하 댓글 2 좋아요 1 조회수 1414

클래스의 로드 시점

미해결

코딩으로 학습하는 GoF의 디자인 패턴

안녕하세요! 강의 너무나 잘 듣고 있습니다. public class Settings { private Settings() { } private static class SettingsHolder { private static final Settings INSTANCE = new Settings(); } public static Settings getInstance() { return SettingsHolder.INSTANCE; } } 로드 시점에 관한 질문입니다. getInstance가 호출 될때 SettingsHolder가 JVM에 로드된다고 말씀하셨습니다. 자바는 잘 모르지만, 동적으로 로드가 된다고 해석했습니다. public class Settings { private static final Settings INSTANCE = new Settings(); private Settings() { } public static Settings getInstance() { return INSTANCE; } } 그렇다면 이른 초기화 방식도, 마치 SettingsHolder가 그러하듯, 필요로 할 때 동적으로 로드 될 순 없나요? 필요로 할 때 로드된다면 SettingsHolder를 필요로 하지 않을 테니 말이죠. 그럼에도 불구하고 static inner class를 사용하는 건 반드시 이유가 있을 테니.. 하여 제 나름대로 찾아보고 테스트해 본 결과 자바 파일에 정의된 기본 클래스들은 실행 시 로드됨을 확인했습니다. 모든 클래스가 실행 시 로드되는진 확실하진 않지만 이와 관련된 JVM의 로드 정책에 대해서 간략하게 설명 부탁드립니다. :)

  • java
  • 디자인-패턴
댓글 3 좋아요 2 조회수 943

h2 설치 관련

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 현재 군인 신분으로 사지방 특성상 차단되어 있는 기능이 좀 있는데 h2.bat이나 윈도우창의 h2 콘솔 모두 켜지지 않는데 이러면 방법이 없는건가요?

  • h2
  • spring
  • JPA
  • java
  • spring-boot
  • 웹앱
민준 댓글 1 좋아요 1 조회수 613

persist이후에 commit은 안하나요?

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

쭉 강의를 따라오다보니 의문점이 하나 있는데 강의에서 em.persist() 이후에 tx.commit() 같은 코드가 없는데 어떻게 DB에 저장이 되는건가요? 김영한님의 다른 jpa강의를 보앗을 때 commit이 필요하다고 본거같아서요!

  • JPA
  • java
  • spring
  • 웹앱
  • spring-boot
IJILKJ 댓글 1 좋아요 1 조회수 288

일대다 페치 조인과 페이징에 대해

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

안녕하세요! 일대다 패치조인을 진행하게 될시에, 다쪽의 갯수에 맞추어서 데이터가 뻥튀기, 즉 일쪽이 뻥튀기 된다는 사실을 인지하고 있습니다. 위 코드의 진행과정을 알고싶은데요, 위 처럼 일대다 페치 조인으로 데이터가 뻥튀긴 테이블이 완성되고 -> 뻥튀기 된 데이터들이 애플리케이션(메모리)에 올라가고 -> 거기에서 jpa가 이제 List<Order>에 담는것이 맞을까요? 이게 만약 맞다면, 일대다 패치조인시 페이징할때의 위험성과 같이 저것도 다 메모리에 올라가는 상황이 아닌가요?!, 아니면 제가 메모리의 개념을 잘 이해 못하고 있는지.. 답답하네요 ㅠ

  • spring
  • JPA
  • spring-boot
  • java
gmlakd0930 댓글 1 좋아요 0 조회수 487

해당 영상에서 member엔티티의 id값 할당방식

미해결

실전! 스프링 데이터 JPA

@Id @GeneratedValue Member 엔티티의 id생성이 auto로 디폴트값인데, 영상 7분 10초에 멤버의 객체생성이 하나뿐인 테스트에서 id값이 1이아닌 2로 뜨는지 궁금합니다.

  • java
  • JPA
  • spring-boot
  • spring
댓글 1 좋아요 0 조회수 225

gradle 프로젝트 open 오류 발생

해결됨

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 처음으로 mac 환경에서 프로젝트를 열려고 하는데 이 오류 때문에 진행을 못하고 있네요.. 프로젝트 파일을 다시 삭제하고 열어봐도 pc를 재부팅하고 다시 시작해도 똑같은 오류가 계속 발생합니다. 구글링에 검색해봐도 마땅한 해결방안이 나오지 않아 답답하네요ㅜㅜ 프로젝트 구성도 이상합니다.. 파일을 열때마다 "._java"와 같은 텍스트 파일이 생겨요

  • gradle
  • error
  • spring-boot
  • MVC
  • spring
  • java
코카콜라 댓글 5 좋아요 0 조회수 1737

@GeneratedValue 작성 후 오류

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. @Id @GeneratedValue (strategy = GenerationType. IDENTITY ) private String id ; 위 코드 작성 후 오류가 납니다.. String 말고 숫자로 해도 오류가 나네요 ㅠ .. mysql로 바꿨는데 왜 그런지 모르겠습니다ㅠ 오류 - WARN: GenerationTarget encountered exception accepting command : Error executing DDL " create table Member ( id varchar(255) not null auto_increment, name varchar(255) not null, primary key (id) ) engine=MyISAM" via JDBC Statement org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL " create table Member ( id varchar(255) not null auto_increment, name varchar(255) not null, primary key (id) ) engine=MyISAM" via JDBC Statement at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlString(SchemaCreatorImpl.java:440) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlStrings(SchemaCreatorImpl.java:424) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.createFromMetadata(SchemaCreatorImpl.java:315) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.performCreation(SchemaCreatorImpl.java:166) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation(SchemaCreatorImpl.java:135) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation(SchemaCreatorImpl.java:121) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:155) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:72) 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) 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 hellojpa.JpaMain.main(JpaMain.java:14) Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "\000d\000a create table Member (\000d\000a id varchar(255) not null auto_increment,\000d\000a name varchar(255) not null,\000d\000a primary key (id)\000d\000a ) engine[*]=MyISAM"; expected "identifier"; SQL statement: create table Member ( id varchar(255) not null auto_increment, name varchar(255) not null, primary key (id) ) engine=MyISAM [42001-210] at org.h2.message.DbException.getJdbcSQLException(DbException.java:521) at org.h2.message.DbException.getJdbcSQLException(DbException.java:496) at org.h2.message.DbException.getSyntaxError(DbException.java:265) at org.h2.command.Parser.readIdentifier(Parser.java:5759) at org.h2.command.Parser.parseCreateTable(Parser.java:9306) at org.h2.command.Parser.parseCreate(Parser.java:6779) at org.h2.command.Parser.parsePrepared(Parser.java:746) at org.h2.command.Parser.parse(Parser.java:674) at org.h2.command.Parser.parse(Parser.java:644) at org.h2.command.Parser.prepareCommand(Parser.java:551) at org.h2.engine.SessionLocal.prepareLocal(SessionLocal.java:615) at org.h2.server.TcpServerThread.process(TcpServerThread.java:288) at org.h2.server.TcpServerThread.run(TcpServerThread.java:191) at java.base/java.lang.Thread.run(Thread.java:834) at org.h2.message.DbException.getJdbcSQLException(DbException.java:451) at org.h2.engine.SessionRemote.done(SessionRemote.java:607) at org.h2.command.CommandRemote.prepare(CommandRemote.java:85) at org.h2.command.CommandRemote.<init>(CommandRemote.java:51) at org.h2.engine.SessionRemote.prepareCommand(SessionRemote.java:477) at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1292) at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:217) at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:205) at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54) ... 15 more 오류 member package hellojpa ; import javax.persistence.* ; import java.math.BigDecimal ; import java.time.LocalDate ; import java.time.LocalDateTime ; import java.util.Date ; @Entity public class Member { @Id @GeneratedValue (strategy = GenerationType. IDENTITY ) private String id ; @Column (name = "name" , nullable = false ) private String username ; public Member (){ } public String getId () { return id ; } public void setId (String id) { this . id = id ; } public String getUsername () { return username ; } public void setUsername (String username) { this . username = username ; } } jpaMain package hellojpa ; import org.hibernate.internal.build. AllowSysOut ; import javax.persistence.EntityManager ; import javax.persistence.EntityManagerFactory ; import javax.persistence.EntityTransaction ; import javax.persistence.Persistence ; import java.util.List ; public class JpaMain { public static void main (String[] args) { EntityManagerFactory emf = Persistence. createEntityManagerFactory ( "hello" ) ; EntityManager em = emf.createEntityManager() ; EntityTransaction tx = em.getTransaction() ; tx.begin() ; try { Member member = new Member() ; //member.setId("ID_A"); member.setUsername( "C" ) ; em.persist(member) ; tx.commit() ; } catch (Exception e){ tx.rollback() ; } finally { em.close() ; } emf.close() ; } } persistence.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/~/test" /> <property name ="hibernate.dialect" value ="org.hibernate.dialect.MySQL5Dialect" /> <!-- 옵션 --> <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 ="create" /> </properties> </persistence-unit> </persistence>

  • JPA
  • java
이유경 댓글 1 좋아요 0 조회수 770

엔티티 id 값이 공유되는 문제

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요 영한님 제가 JPA를 이용한 사이드 프로젝트를 진행중인데 한 가지 문제가 생겨서 질문드립니다. 현재 저는 oracle 을 사용하고 있으며, Member, Order, Store 등의 여러 엔티티들을 사용합니다. 모두 @GeneratedValue 로 선언한 상태입니다. 그런데 / Given Member member = Member. builder ().name( "memberA" ).build() ; memberRepository .save(member) ; Store store = Store. builder ().name( "storeA" ).build() ; storeRepository .save(store) ; System. out .println(store.getId()) ; Order order = Order. createOrder (member , store , OrderType. DELIVERY ) ; orderRepository .save(order) ; System. out .println(order.getId()) ; 와 같이 테스트를 작성하면서, Member를 생성해서 save하면 memberId가 1이 되는데 그다음에 store를 save하면 서로 다른 테이블이기 때문에 1L이 되어야 하는데 2L이 됩니다. 물론 그다음 order는 3L이 되구요 모든 엔티티들이 hibernate_sequence를 공유하고 있고, save하는 과정에서 select hibernate_sequence.nextval from dual; 가 호출될 때마다 값이 1씩 증가하고 있는 것같습니다. 엔티티들이 sequence를 공유하지 않는 방법이 없을까요... 검색을 여러번 해보기도 했고, 검색 키워드를 못잡겠어서 질문드립니다 ㅠㅠ

  • java
  • JPA
댓글 1 좋아요 0 조회수 221

안녕하십니까 기선님!!!!! webclient와 비동기관련 질문요청드립니다

미해결

스프링 부트 개념과 활용

안녕하십니까. 기선님처럼 되고싶은 1년차 주니어 개발자입니다. 제 개인 프로젝트 중에 현재는 동기방식 restTemplate으로 한번에 여러 군데에 요청을 던지는 기능이 구현되어 있는데 일부 요청이 오래 걸리는 것들이 있어서 스레드를 오래 물고있다는 판단을 하여 해당 기능을 nio 방식으로 전환하려고 합니다.(webclient) 웹서버는 io/nio모두 지원하는 undertow를 사용하고 있으며, 스프링 mvc를 사용하고 있습니다. 본론으로 제가 해당 프로젝트에 한번 외부로의 요청에 각각 응답시간이 다른 여러곳에 일부는 오래걸리는 요청을 던지기 위해 비동기 처리로 수정하여 개발하려고 하는데, @Async나 CompletableFuture말고 webflux를 추가하여 mvc+webflux의 형태로 개발해도 괜찮을지 여쭤보고 싶습니다.(이게 개인 프로젝트가 아닌 실무에서도 가능할지) webflux와 mvc를 같이 쓰면 않좋다는 이전 토비님 말씀과 예전 구글링 글들도 있지만, 제 개인적인 생각에는 undertow는 예전 3.0 서블릿과는 다르게 io/nio를 함께 처리해주기 때문에 webflux + mvc 두개를 같이 써서 필요한 부분에 비동기 처리중에서도 pub/sub구조와 backpressure가 구현되어 있는 webflux-reacotr를 일부 도입해도 괜찮지 않을까하여 여러곳들을 전전하며 찾아보고 있었습니다. 제 부족한 실력으로는 어깨너머로 알게된 지식으로 스스로 원하는 결론을 그냥 내린것 같은 생각이 강하게 들고, 마땅한 결론에 도달하지 않아서 여쭙고싶습니다!!!!!

  • spring-boot
  • java
  • spring
댓글 1 좋아요 0 조회수 1566

unable: to acces jarfile target/*.jar

미해결

예제로 배우는 스프링 입문 (개정판)

java -jar target/*.jar 이 실행되지않아 target파일로 들어간뒤에도 실행되지않아 전체이름을 다 쳤더니 실행되었습니다. 왜 *가 먹히지 않았던걸까요?

  • spring
  • java
미로 댓글 3 좋아요 3 조회수 484

repository는 entity당 개별로 생성해줘야 하나요?

미해결

실전! 스프링 데이터 JPA

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 강의내용을 보면 Member와 Team 엔티티가 있고 JpaRepository를 상속받은 repository 또한 각각 만들어져 있습니다. 단순한 조회는 이미 정의되어있는 메소드로 가능하지만, 다른 테이블(엔티티)와 조인하는 경우에는 직접 정의해서 사용 가능하다는 내용의 강의였는데요 그럼 만약 4개 5개 복잡한 엔티티들과 연관된 쿼리들을 정의하고 싶다면 어느 repositroy에 정의를 해야할지 고민입니다. 여러 엔티티를 1개의 repository로 관리하고자 해도, 상속받을때 <>속에 특정 엔티티를 넣어줘야하는데, 그럼 어떤 엔티티를 넣어야할까요? 코딩에 정답은 없겠지만은 실무에서는 관례쩍으로 어떤식으로 구현을 하는지 궁금합니다.

  • spring
  • JPA
  • java
  • spring-boot
koon0312 댓글 1 좋아요 0 조회수 1088

대상 테이블에 외래키 의 단점

미해결

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

member table만 조회해서 locker값이 있는지 없는지를 모릅니다. 그래서 locker table까지 조회를 해야합니다. 그래서 지연로딩이 불가하고 즉시로딩만 됩니다. 그런데 이렇게 따지면 주테이블에 외래키를 넣어도 locker table만 조회해서는 member값이 있는지 없는지를 모르지 않나요? member table까지를 확인해봐야 아는거잖아요

  • JPA
  • java
김민지 댓글 2 좋아요 0 조회수 591

@joincolumn name 속성

미해결

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

1. team에서는 멤버변수가 member클래스고 joincolumn의 name속성은 team_id잖아요 @joincolumn(name = "team_id") private List<Member> members = new ArrayList<>(); 왜 member_id가 아니라 team_id인건가요?

  • java
  • JPA
김민지 댓글 4 좋아요 1 조회수 958

AOP 적용 질문

해결됨

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

안녕하세요 AOP 중 궁금한점이 생겨 질문드립니다! [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 질문을 쭉 봤는데 해당 내용이 없었습니다. 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 네 [질문 내용] 이부분에서 찍어보면 다음과 같이 EnhancedBySpring~ 이부분이 스프링이 AOP 를 처리하기 위해 프록시로 복제된 객체로, AOP를 사용하게되면 사용된다는 내용으로 이해했습니다. 강의 자료에 보면, 다음과 같은 내용이 있는데, AOP와 관련된 코드들 (예제에서는 시간을 측정하는 코드, 시간측정하는 클래스를 주입하는 코드)을 제거 한 후에도 MemberController 에서 Service 클래스를 sout 으로 찍어볼 경우, 똑같이 EnhancedBySpring~ 하는 객체가 찍혀 나옵니다. 이 부분이 위에 AOP 적용 전 그림 에서 진짜 객체들만 사용한다는 위 그림과 과 맞지 않는데, 그렇다면 Spring 에서는 AOP 관련된 코드가 없어도 자동적으로 AOP를 위해 프록시 객체를 사용하도록 강제(?) 처리 되는건지 궁금합니다.

  • aop
  • spring
  • MVC
  • java
  • spring-boot
Space 댓글 3 좋아요 0 조회수 694

선생님 질문이 있습니다!

미해결

실전! 스프링 데이터 JPA

안녕하세요! 강의 재밌게 수강하고 있습니다! 실례가 안 된다면 혹시 선생님께서 말씀하시는 핵심 비즈니스 로직과 화면 혹은 API에 맞춘 로직의 차이점을 간단하게 설명해주실 수 있으실까요? 저는 화면에 출력하거나 API를 만드는 게 곧 핵심 비즈니스 로직이라고 생각했는데 제가 잘못 생각하고 있었던 거 같아 혹시 도움을 받을 수 있을까 하여 질문 남기게 됐습니다 ㅠ + Trade off는 어떤 의미로 이해하면 좋을까요? ㅠㅠ P.S 비전공자로 여러 강의를 들으면서 선생님 강의 만난 게 최고의 행복인 거 같습니다! 종종 PPL 하시는 JPA 책도 잘 읽고 있는데 언젠가 기회가 되면 선생님께 싸인 받고 싶습니다 ㅋㅋㅋ 존경합니다 선생님!

  • spring
  • spring-boot
  • JPA
  • java
한코딩 댓글 1 좋아요 0 조회수 231

인기 태그

인프런 TOP Writers

주간 인기글