학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 중첩 클래스를 복습하다가, 동영상 강의 에서 여기 있는 코드를 보고, 정적 중첩 클래스랑, 내부 클래스 이렇게 같이 사용된 적이 있을까? 라는 생각을 하게 되었습니다. 실무 에서 정적 중첩 클래스랑, 내부 클래스 이렇게 두가지 경우가 같이 사용하신 적이 있으신가요? 답변 부탁 드립니다.
package com.study.book.graph; import java.util.*; import java.io.*; public class Baekjoon24479 { private static ArrayList<Integer>[] adjList; private static boolean[] visited; private static int[] answer; private static int visitOrder; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); StringTokenizer st = new StringTokenizer(br.readLine()); int N = Integer.parseInt(st.nextToken()); int M = Integer.parseInt(st.nextToken()); int R = Integer.parseInt(st.nextToken()); adjList = new ArrayList[N + 1]; for (int i = 0; i < adjList.length; i++) { adjList[i] = new ArrayList<>(); } for (int i = 1; i < N + 1; i++) { st = new StringTokenizer(br.readLine()); int x = Integer.parseInt(st.nextToken()); int y = Integer.parseInt(st.nextToken()); adjList[x].add(y); adjList[y].add(x); } for (ArrayList<Integer> list : adjList) { Collections.sort(list); } visited = new boolean[N + 1]; answer = new int[N + 1]; visitOrder = R; dfs(R); for (int i = 1; i <= N; i++) { bw.write(String.valueOf(answer[i])); bw.newLine(); } br.close(); bw.close(); } private static void dfs(int now) { visited[now] = true; answer[now] = visitOrder; visitOrder++; for (int next : adjList[now]) { if (!visited[next]) { dfs(next); } } } } 안녕하세요 개취님! 알고리즘 강의 잘 듣고 있습니다 ㅎㅎ 다름이 아니라, 위 코드로 문제를 풀고 테스트 코드 또한 정상적으로 통과하여 백준에서 제출을 진행했는데, 단순히 "틀렸습니다" 라고만 나와서 어떤 점에서 문제가 있는지 정상적으로 파악이 안되서 문의드립니다! 한번 확인 후 피드백 주시면 감사하겠습니다.
"CascadeType.ALL + orphanRemoval=true 두 옵션을 모두 활성화하면 부모 엔티티를 통해서 자식의 생명 주기를 관리할 수 있음" 위 내용에 대해 질문 있습니다. CascadeType.ALL 옵션만 사용하고 부모를 삭제 해봤는데 자식은 삭제 되지 않았습니다. CascadeType.ALL 옵션에는 CascadeType.REMOVE 옵션이 포함되어 있지 않는건가요? CascadeType.ALL 옵션을 사용하여 부모를 저장 혹은 수정시 자식도 같이 저장과 수정을 할 수 있고 orphanRemoval=true 옵션을 추가해 부모 삭제 시 자식도 다 삭제하게 만들어 자식의 생명주기를 부모의 생명주기에 맞출 수 있어 "부모 엔티티를 통해서 자식의 생명 주기를 관리할 수 있음" 라는 말이 허용이 되는건지 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 중첩 클래스(내부 클래스)를 공부하면서 뭔가? 상속관계랑 비슷한것 같아서 질문을 남깁니다. 김예린 님의 이글 <- 을 보면서 어떻게 설명할까 코드를 만들면서 이거 저것 시도해 보다가, super.name = name; 도 가능 하다는 것을 보고 답변을 포기 했었는데, 중첩 클래스 관련 강의를 들으면서 좀 비슷한것 같은데 라는 생각을 하게 되었습니다. 이유는 자식 클래스에서 name이라는 인스턴스 변수가 없지만 부모클래스의 name이라는 인스턴스 변수를 쓸수 있음 이름이 같을때 super라는 키워드를 통하여서 구분가능. 이것을 통하여서 비슷하다고 생각하였는데. 저의 생각이 잘못 된 건가요? 아니면 좀 비슷하다고 생각해도 되는건가요? 이것에 대해서 잘못 이해를 하고 있다면 교정해 주시면 감사하겠습니다. (내용이 이상해서 수정함 죄송합니다. 이유도 안쓰고 말도 뭔가 안맞았엇네요.) 수정2. 복습하다 보니까. 상속이랑 중첩이랑 틀린게 구분이 가네요. 상속은 private의 정보를 못가져오고 중첩은 private에 있는 정보를 가져올수 있네요.. 어제 어떤 분에게 거북이 마음을 이야기 햇는데, 저가 거북이 마음이 안된것 같네요. 죄송합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 컬렉션 패치 조인은 페이징이 불가능하지만 이 방법은 페이징이 가능하다. 이 말이 이해가 안되는게 batch size 설정 -> orderItemDto에서 컬렉션을 조회할때 in절을 통해서 하나의 쿼리로 가져오기위함 인것이지, 이 orderItemDto에서 페이징처럼 offset을 정해서 가져오고 이런게 불가능한거 아닌가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요 김영한 선생님 이번에 자바를 시작하고, 스프링을 공부하고자 하는 학생입니다. 결론부터 말씀드리자면 spring 입문강의가 도저히 이해가 되지 않아서 공부방향에 대해 여쭙고 싶습니다. 자바는 충분히 학습하여 어느정도 개념이 숙지되어있는 상태입니다. 그래서 spring을 공부하려고 입문편부터 보니, spring의 개념이 무엇인지, 구조가 어떻게 되는지, 모두 이해가 되지 않습니다. 제가 cs가 부족한 탓일까요? 혹은 기본편에서 모든 궁금증이 해결되는 것일까요? 일단 아직 이해는 가지 않은 채, 코드만 따라 적고있습니다. 어떻게 공부하면 좋을지 말씀 주시면 감사하겠습니다.
Member findMember = em.getReference(Member.class, member.getId()); System.out.println(findMember.getClass()); System.out.println(findMember.getId()); System.out.println(findMember.getName()); Member findMember2 = em.find(Member.class, member.getId()); System.out.println(findMember2.getClass()); System.out.println(findMember2.getId()); System.out.println(findMember2.getName()); 강의 내용 중 "정리하면 영속성 컨텍스트에 찾는 엔티티가 이미 있으면 em.getReference()를 호출해도 실제 엔티티를 반환한다. 그리고 반대로 프록시를 이미 조회했으면 em.find()를 해도 프록시가 반환된다." 라는 부분이 있었는데요 em.getReference()를 초기에 사용해서 프록시를 이미 조회하면 영속성 컨텍스트의 1차 캐시에 프록시 객체가 값으로 저장이 되는건지 궁금합니다. 프록시 객체가 값으로 저장이 된다면 위 내용처럼 find()를 해도 이미 영속성 컨텍스트에 프록시 객체가 저장되어 있기에 프록시 객체가 조회가 되는건지 궁금합니다. 1번 내용이 맞다면 처음 em.find() 사용 시 DB에서 조회 후에 실제 객체를 1차 캐시에 저장하는 반면 em.getReference()는 바로 1차 캐시에 프록시 객체를 저장하는건가요?
public class Data{ public int value; }로 만들고 public class FinalRefMain { public static void main(String[] args) { final Data data = new Data(); } } 이렇게 final을 붙여서 선언하는 이유가 무엇인지 이해되지 않습니다.. 참조 대상인 final data를 변경하지 못하는 것이지, 참조하는 대상의 값인 Data 인스턴스의 값은 변경할 수 있다는게 무슨 말인지 강의를 들어도 이해되지 않습니다...
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 스프링 부트 버전이 3.3.2 로 하고 인텔리제이 얼티메이트 쓰고 있고 jdk 17버전으로 하는데 상관없나요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요. 자바 HashSet 구현을 할때 이렇게 링크드 리스트를 이용하여 배열을 만들었는데, 질문이 있습니다. ArrayList 와 LinkedList 중 LikedList 를 사용한 이유는 O(x) 가 더 빠르기 때문인가요 ? 어떠한 장점이 있길래 LinkedList 를 결정한건지 모르겠습니다. 제가 추측하기로는 buckets 내의 각각의 인덱스에 링크드 리스트가 필요하기 때문에 배열 타입을 링크드 리스트로 결정한 것인가요 ?
우리가 ArrayList 에서 LinkedList로 넘어온 이유가 배열 메모리 확보로 인한 낭비로 인해 경우에 따라서 LinkedList 를 사용해야한다고 알고 있는데, set 에서도 ArrayList 처럼 배열 메모리를 확보해두고 배열의 크기를 2배씩 늘리는 식으로 작동하나요 ?
[질문 내용] 상속 단원에 문제와 풀이 관련해서 질문이 있습니다. 영한님께서는 상위 클래스의 필드에 접근하기 위해서 자식 클래스의 생성자 부분에서, super(name, price)을 사용하고 계십니다. 그 이유는 부모 클래스의 생성자가 기본 생성자가 아니기에, super을 생략하지 않고, 적은 것이지요. 여기서. 부모 클래스의 생성자를 기본 생성자로 하고, 자식 클래스의 생성자 부분에서 name과 price를 불러들어와 값을 저장하고 싶을 때 this.name = name; this.price=price; 로 접근해도 괜찮은가요? (부모 클래스의 필드가 public이였을 때)
강사님, 안녕하세요! Event 테스트 관련해서 질문이 있습니다! 현재 진행하고 있는 프로젝트에서 이벤트를 활용해서 책임을 분리하고자 했는데요. 질문을 드리기 전에, 잠깐 이벤트 적용처에 대해 간략히 설명해보자면 아래와 같습니다. 현재 제 애플리케이션은 회원이 가입하게되면, 해당 유저와 1:1 연관관계를 갖는 메인계좌도 같이 생성을 해주어야합니다. 따라서 회원가입 이벤트가 발생하면 메인계좌를 생성 할수 있도록 아래와 같이 이벤트 리스너를 작성해주었습니다. @Slf4j @Component @RequiredArgsConstructor public class MemberSignupEventListener { private final CheckingAccountService checkingAccountService; @TransactionalEventListener(phase = BEFORE_COMMIT) public void createCheckingAccount(MemberSignupEvent event) { log.info("MemberSignupEventListener : 회원 가입 이벤트 발생 수신: 회원아이디 = {}", event.getMemberId()); checkingAccountService.create(event.getMemberId()); } } 첫번째 질문으로는, 이벤트가 publish 되었을 때, 이벤트 리스너가 해당 이벤트를 잘 수신하는 지를 어떻게 테스트할 수 있을 지가 궁금합니다. 제가 아래와 같이 테스트 코드를 작성해보았을 때, @SpringBootTest class MemberSignupEventListenerTest { @Autowired ApplicationEventPublisher eventPublisher; @MockBean MemberSignupEventListener memberSignupEventListener; @Test @DisplayName("회원가입이 이루어지면 회원가입 리스너가 이벤트를 수신한다.") void when_signup_then_create_checkingAccount() { // given Long memberId = 1L; MemberSignupEvent event = MemberSignupEvent.of(memberId); // when eventPublisher.publishEvent(event); // then verify(memberSignupEventListener).createCheckingAccount(any(MemberSignupEvent.class)); } } 실패메시지는 아래와 같았습니다. Wanted but not invoked: memberSignupEventListener bean.createCheckingAccount( <any member.event.MemberSignupEvent> ); -> at member.event.MemberSignupEventListener.createCheckingAccount(MemberSignupEventListener.java:20) Actually, there were zero interactions with this mock. 두번째 질문으로는, 회원가입 요청이 들어왔을 때, 메인계좌까지 잘 생성되는 지 통합테스트를 하고자 하는데, 어떻게 할 수 있을지가 궁금합니다. 통합테스트 코드는 아래와 같이 작성해보았는데요. 회원 레포지토지와 메인계좌 레포지토리에 데이터가 생성됐는 지로 검증하려 했습니다. (http 테스트로는 회원가입 시 회원데이터와 메인계좌가 DB에 생성되는 것을 확인했습니다.) 아래 테스트 같은 경우 메인계좌의 DB 내 존재여부가 false로 나오면서 실패했고, 이벤트 리스너와 메인계좌 생성 메서드 코드 라인을 잘 따라가는 지 디버그를 찍어봐도, 디버그로는 추적할 수가 없었습니다. @TransactionalEventListener(phase = BEFORE_COMMIT) 으로 작성했기 때문에 동기적으로 동작할 것이라 생각했고, 별도의 스레드로 동작하지 않을 것 같은데, 디버그로 왜 추적이 안되는지도 잘 모르겠습니다.. @DisplayName("회원 통합테스트") public class MemberIntegrationTest extends IntegrationTestSupport { private static final String URL = "/member"; @Autowired MemberRepository memberRepository; @Autowired CheckingAccountRepository checkingAccountRepository; @Test @DisplayName("회원 가입") void signup() throws Exception { // given MemberSignupRequest request = MemberSignupRequest.builder() .username("testUser") .password("1234") .build(); // when mockMvc.perform(post(URL) .contentType(APPLICATION_JSON) .content(objectMapper.writeValueAsString(request))) .andExpect(status().isCreated()) .andDo(print()); // then assertThat(memberRepository.existsById(1L)).isTrue(); assertThat(checkingAccountRepository.existsById(1L)).isTrue(); } } 이벤트 관련해서는 어떻게 테스트할 수 있을까요? 실무에서는 보통 어떤 방법으로 진행될까요? - --2024-08-19 수정 내용--- 혹시 jpa.hibernate.ddl-auto를 create-drop으로 해서 그런걸까요..?
실행 단계에서 아래와 같은 오류가 발생했습니다. 어떻게 처리해야 할까요..? ERROR: Connection is broken: "java.net.ConnectException: Connection refused: localhost" [90067-199] Exception in thread "main" org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:275) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:237) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214) at org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.injectServices(DefaultIdentifierGeneratorFactory.java:152) at org.hibernate.service.internal.AbstractServiceRegistryImpl.injectDependencies(AbstractServiceRegistryImpl.java:286) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:243) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214) at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMetadataCollectorImpl.java:179) at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:119) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:904) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:935) 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:9) Caused by: org.hibernate.exception.JDBCConnectionException: Error calling Driver#connect at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:48) at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113) at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.convertSqlException(BasicConnectionCreator.java:118) at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:41) at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.createConnection(BasicConnectionCreator.java:58) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections.addConnections(DriverManagerConnectionProviderImpl.java:363) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections.<init>(DriverManagerConnectionProviderImpl.java:282) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections.<init>(DriverManagerConnectionProviderImpl.java:260) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections$Builder.build(DriverManagerConnectionProviderImpl.java:401) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.buildPool(DriverManagerConnectionProviderImpl.java:112) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:75) at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:100) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:246) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.buildJdbcConnectionAccess(JdbcEnvironmentInitiator.java:145) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:66) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35) at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:94) at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263) ... 14 more Caused by: org.h2.jdbc.JdbcSQLNonTransientConnectionException: Connection is broken: "java.net.ConnectException: Connection refused: localhost" [90067-199] at org.h2.message.DbException.getJdbcSQLException(DbException.java:617) at org.h2.message.DbException.getJdbcSQLException(DbException.java:427) at org.h2.message.DbException.get(DbException.java:194) at org.h2.engine.SessionRemote.connectServer(SessionRemote.java:435) at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:317) at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:169) at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:148) at org.h2.Driver.connect(Driver.java:69) at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:38) ... 29 more Caused by: java.net.ConnectException: Connection refused at java.base/sun.nio.ch.Net.pollConnect(Native Method) at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:672) at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:554) at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:602) at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327) at java.base/java.net.Socket.connect(Socket.java:633) at org.h2.util.NetUtils.createSocket(NetUtils.java:103) at org.h2.util.NetUtils.createSocket(NetUtils.java:83) at org.h2.engine.SessionRemote.initTransfer(SessionRemote.java:115) at org.h2.engine.SessionRemote.connectServer(SessionRemote.java:431) ... 34 more
안녕하세요 선생님 , 자바에 대해 깊이 학습하고자 다시 기초부터 배우고있는 주니어 개발자입니다. 다름이 아니라 현재 목차에서 데이터와 기능들이 분리되어 있는것은 유지보수 관점에서 힘들기때문에 그 둘을 묶기위한 설계가 객체지향이라고 이해를 했는데요. 스프링 관점에서 보면 데이터의 무결성을 지키기위해 데이터(dto) 와 서비스는 분리하는 설계를 하는것으로 알고있습니다. 일반 자바와 스프링은 조금 다른 시각으로 바라봐야 할까요?
안녕하세요 강사님 좋은 강의 감사드립니다. readme파일을 잘 작성하는 것도 과제전형을 진행하는데 중요한 요소라고 들었는데 예제 소스에 작성된 readme 파일 형식으로 실제 과제전형 시에 제출하기에는 조금 부족해보이는데 보통 어떤 형식으로 작성하시는 편이신가요? 또는 이 부분은 꼭 들어갔으면 하는 요소가 있을까요?
강의 따라 하고있습니다만.. ci/cd 지식이 없는경우?? 기존에는 깃만 사용하다가 강의들으면서 처음 사용하게되었습니다. 강의내용 처럼 ci/cd메뉴를 설정하는것을 따라하는 방법이 있을까요? 아래는 제가 깃러너?랑 깃랩 설치한 부분입니다. 따로 추가 설정해야 하는 부분이 있을까요? 동영상의 내용과 비슷하게 진행할수가 없습니다. 깃 런너 설치도 여러번 해야지 설치가 생각보다 잘 안됩니다.. 깃랩을 처음 사용하는 사람이다보니까 런너 부터 연결해서 .gitlab-ci.yml? 그것을 한다음에.. 깃랩에 msa 프로젝트 올려야하는것같은데.. 처음부터 설명이 없으시니까 우왕자왕하게되네요.. 파이프라인 어떻게해야할지 모르겠습니다. 진행이 어렵습니다. 깃랩을 하는데 있어서 CI/CD메뉴가 처음부터 없으면 어떻게해야하면 좋을까요?