묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍
(추석 챌린지) 복습 정리내용
[질문 내용]람다 (lambda)람다는 익명 함수이다. 따라서 이름 없이 함수를 표현한다.(매개변수) -> {본문}용어 - 람다 vs 람다식(Lambda Expression)람다 : 익명 함수를 지칭하는 일반적 용어. (개념)람다식 : (매개변수) → {본문} 형태로 람다를 구현하는 구체적인 문법 표현을 지칭람다도 익명 클래스처럼 클래스가 만들어지고, 인스턴스가 생성된다.함수형 인터페이스함수형 인터페이스는 정확히 하나의 추상메서드를 가지는 인터페이스를 말한다.람다는 추상 메서드가 하나인 함수형 인터페이스에만 할당할 수 있다.단일 추상 메서드를 줄여서 SAM(Single Abstract Method)라 한다.@FunctionalInterface를 통하여 함수형 인터페이스를 보장할 수 있다.추상 메서드가 추가되면 컴파일 오류 발생 !(Ex) @Override를 통해 재정의된 함수임을 알 수 있듯이.고차함수(Higher-Order Function)고차 함수란, 함수를 값처럼 다루는 함수를 뜻함함수를 인자로 받는 함수(메서드)함수를 반환하는 함수(메서드)기본 함수형 인터페이스다음은 자바가 기본으로 제공하는 대표적 함수형 인터페이스이다.Function : 입력 O, 반환 OConsumer : 입력 O, 반환 XSupplier : 입력 X, 반환 ORunnable : 입력 X, 반환 X특화 함수형 인터페이스Function으로 구현가능하나, 테스트 용도인 인터페이스라는 것을 명확히 하기 위해 사용Predicate : 입력 O, 반환 boolean조건 검사, 필터링 용도Operator (UnaryOperator, BinaryOperator) : 입력 O, 반환 O동일한 타입의 연산 수행, 입력과 같은 타입을 반환하는 연산 용도 추석 완강 챌린지 중 질문드리고 싶으나, 아직 완벽히 이해된 단계가 아니어서 부득이 복습하며 정리한 내용을 질문으로 작성했습니다. ㅠㅠ틀린 부분 있다면 지적 부탁드립니다!
-
해결됨코드로 배우는 스프링 웹 프로젝트 - Basic
<c:out>을 사용하는 이유에 대해서
<c:out>을 사용하면 HTML의 특수문자가 포함되있을 경우 HTML을 해석하지 않고 출력한다는데.HTML은 특수문자를 태그로서 가지고있는 마크업 언어인데... 이게 무슨말인지 이해를 잘 못하겠어요...인터넷의 다른 블로그 글을 봐도 거의다 똑같은 설명이라... 그냥 있는 그대로 출력을 한다는건지 HTML태그 안의 내용을 출력한다는건지 아리쏭 합니다..그리고 Spring에서 Beans으로 등록한다는 의미가 스프링에서 자체적으로 관리를 한다?고 이해하고 있는데...자바를 배우고 바로 spring으로 넘어와서 그런지 servlet의 개념도 어렵습니다...어디서 부터 손봐야할지 모르곘어요.... 죄송함니다..
-
미해결코딩으로 학습하는 GoF의 디자인 패턴
@Builder에 대해 사소한 질문
강의 잘 듣고 있습니다!강의를 듣던 중 궁금한것이 있는데요.예를 들어 결제 API를 만든다면: - 금액, 결제수단: 필수- 할인쿠폰, 메모: 선택 @Builder를 사용할 때 필수 파라미터 처리가 궁금합니다. 결제 API 같은 걸 만든다면 금액은 필수인데, @NonNull은 런타임 체크로 알고 있는데요. 프로그램을 실행해야 에러를 확인할 수 있었습니다. 필수 항목을 빠뜨리면 컴파일 에러가 나게 할 수는 없나요? 실무에서는 런타임 체크로 충분한가요, 아니면 중요한 객체는 컴파일 타임 체크를 위해 직접 구현해야 할까요?
-
미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
FlatFileItemWriter의 FieldExtractor 커스텀 관련
킬구형 텍스트 강의임에도 몰입감 있는 구성에 연휴에 재밌게 공부하고 있어. 고마워FlatFileItemWriter에 대한 흐름을 정리하고 질문 해볼게1. sourceType() 메서드 내 객체 타입에 따라 FieldExtractor 구현체가 결정된다.2. (Bug가 fix되기 전까지) sourceType() 메서드 내 객체 타입이 Record일 경우 names() 메서드 호출은 무시되고, Record 타입의 모든 property가 쓰일 수밖에 없다.3. 그렇기에 Record 타입에서 필드 하나를 제외하고 파일을 쓰고싶다면, fieldExtractor()를 사용한 커스텀 구성을 통하여 필드 하나를 제외해야 한다.내가 강의를 보면서 정리한 흐름이고, 아래는 그 정리 중 나온 질문이야Q1. BeanWrapperFieldExtractor일 경우 필드 하나를 제외하고 싶다면, names()에서 해당 필드만 제외해도 되나? Q2. 만약 위와 같은 방법이 된다면, RecordFieldExtractor 관련 Bug가 fix 된 후에 FieldExtractor를 직접 커스텀하는 경우가 별로 없지 않을까 싶은데.. 혹시 내가 생각하지 못한 부분이 있을까?고마워 킬구형아
-
미해결김영한의 실전 자바 - 중급 2편
실전 자바 중급 - 2편 후 추천 강의
안녕하십니까 ?현재, 실전 자바 중급 2편을 듣고 있는 2년차 개발자입니다. 평소에 아무런 생각없이 사용하고 있던 자료 구조들에 대해 공부하게 되니까, 어떻게 사용해야하는 지와 왜 해당 자료구조가 시간복잡도 상 좋은 지에 대해 알 수 있어서, 새롭게 느끼고 있습니다. 혹시, 자바 관련해서 강의를 더 듣는 다면, 어떤 강의가 실무에 도움될지 궁금해서 여쭙습니다. 혹시나 더 추천하는 강의가 있으실까여?
-
미해결Java/Spring 주니어 개발자를 위한 오답노트
주니어 개발자가 더 나아가기 위한 조언을 부탁 드려도 될까요?
선배 개발자로서 알려주시는 강의 내용들이 정말 좋았는데요, 그와 더불어 앞으로 주니어 백엔드 개발자로서 어떤 역량을 조금 더 집중해서 키우면 좋을지 조언을 부탁드리고 싶습니다.또, 아직 이를 수도 있지만 이직을 준비할 때 도움이 될 만한 공부 방향이나 추천해주실 만한 책이 있다면 알려주시면 감사하겠습니다. 강의 중간중간 소개해주시는 책들이 많아서 최근에 또 추천해주실 책이 생기셨는지 궁금합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
실무에서도 EntityManager를 이용해서 많이 작업하는 편일까요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]Spring Data JPA에 있는 인터페이스를 사용하는 경우가 많이 보이는데 강의에서는 EntityManager를 주입받아서 직접 구현하는 방식으로 설명해주신 이유가 궁금합니다.
-
해결됨토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
실무적용 관련 질문드립니다
회사 규모상 프로젝트를 혼자서 개발하는 경우, 강의의 내용을 적용해서 도메인 문서를 만드는 것이 개발에 대한 정리나 추후 다른 사람이 봤을 때 도움이 될 수는 있으나, 당장 시간에 쫓기기도 하고 다른 사람의 피드백 없이 혼자서 정리하다 보면 잘 정리하기 힘들다는 생각이 되는데요. 이런 상황에서의 정리는 오히려 도움이 안될 수도 있다는 생각이 드는데, 토비님께서는 어떻게 생각하시는지 궁금합니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
JPA 프록시
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]JPA 공부 중 프록시 객체부분에서 혼란이 있습니다.em.getReference()로 가져온 객체는 실제 엔티티가 아니고 프록시라는데, == 비교 시 언제 같고 언제 다른가요?프록시 객체는 언제 실제 엔티티로 초기화되나요? (예: 필드 접근 시점? 트랜잭션 종료 시점?)만약 영속성 컨텍스트에 이미 로드된 엔티티가 있을 때, em.getReference()를 호출하면 어떤 객체를 반환하나요?
-
해결됨자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
Kotlin과 Java의 현업에서의 활용
안녕하세요. Kotlin과 Java의 현업에서의 활용에 있어 궁금한 내용이 있어 질문드려요. 서버를 개발하실 때 Kotlin과 SpringBoot를 활용한다고 수업시간에 지나가면서 잠깐 말씀해주셨는데요. 혹시 Kotlin + SpringBoot의 프로젝트 작업을 진행하실 때 전혀 Java를 사용하지 않고 활용하시는지 아니면 Java와 Kotlin을 같이 사용하는 지 현업에서 실제 어떻게 활용하시는지 궁금합니다. 그리고 Gradle에서implementation("org.apache.commons:commons-lang3:3.0") 와 같은 외부 라이브러리를 Kotlin + SpringBoot 프로젝트에서 사용할 때 Java로 가져와서 사용하는지 아니면 Kotlin으로 따로 제작된 코드를 사용하는지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
java static class와 kotlin class
[질문 내용]kotlin으로 실습을 진행하고 있는데, java의 static class에서 static은 무슨 의미인가요? kotlin에서의 그냥 class와 같은 역할인 걸까요?
-
해결됨6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법
실무 레거시코드에 낙관적 락, 비관적 락 적용 시도
안녕하세요 현재 섹션 5_4-9. 낙관적 락, 비관적 락 부분을 듣고 있는데요.현재 공공SI 고도화 개발팀에서 개발을 하고 있는데 동시성 제어 부분이 있는것 같아서 질문드립니다.레거시 코드로 Oracle/ iBatis DAO / XML 환경이며담당자가 신청에 대해서 접수하는 기능에서소스분석을 통해서 봤을 때 기존 소스 흐름은1. 작업확인용 테이블에서 현재 작업중인 목록이 있는지 확인(Select)2-1. 작업중 목록이 없다면 작업확인용 테이블에 작업중으로 insert2-2. 작업중 목록이 있다면 Exception 발생(작업중입니다.)3. 해당 신청건에 대한 insert/update 진행4. 작업확인용 테이블의 insert 했던 값의 상태를 작업완료로 Update* 작업중 상태가 있을 땐 다른 신청건에 대해서도 접수가 불가입니다.강의를 듣고 보았을 때 작업확인용 테이블의 존재 이유가 동시성 제어를 위함으로 보이는데기존 흐름을 봤을 때비관적락 > 배타락으로 적용하는것이 맞다고 생각이 드는데 맞는 접근일까요?또한 비관적 락 적용시 작업확인용 테이블의 존재가 필요없어지는 걸까요?해당부분을 건드리기에 부담이 가서 기존 방식대로 개발을 해놓은 상태이긴 한데강의를 듣고 적용해볼 수 있지 않을까 생각이 들어 질문드립니다!
-
미해결김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍
람다 궁금한 점
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 강의를 아직 다 듣지 못해서 뒤에 관련 내용이 나올 수도 있지만 궁금해서 질문드립니다.같은 람다식이 여러번 실행될 때마다 새 인스턴스가 생성되는 건가요, 아니면 JVM이 내부적으로 같은 람다식을 한 번 생성해서 재사용하는 건가요?감사합니다!
-
해결됨멀티 모듈 아키텍처로 구현하는 은행 서버 핵심 기능 [ Kotlin & Spring ]
CQRS 설계 팁
대규모 트래픽 환경에서 Write Service의 부하를 줄이기 위한 CQRS 설계 팁이 있을까요?
-
미해결김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍
스트림과 for문 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요,스트림과 for문을 어느 경우에 선택해서 사용해야 할까요?실무에서 스트림과 for문을 기준이 없이 남발하게 되면 오히려 코드 품질이나 성능이 악화될 수 있나요?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
완강 후 학습 방향에 대한 질문
쿠케님 안녕하세요!우선 좋은 강의 제작해주셔서 정말 감사합니다. 강의 들으면서 대규모 시스템을 설계할 때는 어느 것을 신경써야 하고, 또 주의해야 하는지 많은 인사이트를 얻고 있어요. 추석 연휴 동안 제 나름대로 열심히 들어서 이제 한 개 섹션만 남았는데, 완강을 한 뒤에 강의에서 얻은 것들을 토대로 대규모 트래픽을 가정한 서비스를 설계하고, 개발해보려고 합니다. 강의로만 듣고 넘기기에는 아까운 내용들이 많아서 확실하게 제 것으로 만들어야겠다 싶더라고요. 일하면서 써먹으면 더없이 좋겠지만 아쉽게도 그럴 환경은 안 되어서요.. ㅎㅎ 그래서 나름대로 구상을 해보면서 강의를 듣고 있는데, 문득 강의에서 다룬 아키텍처와 기술을 한 번에 다 도입하는 건 오히려 학습 효율을 떨어뜨리는 선택이 아닐까 싶은 생각이 들어서요. 실무에서 Redis 정도는 사용해봤지만, 분산 데이터베이스나 MSA도, Kafka나 CQRS도 이 강의에서 처음 사용해봤습니다. 개념은 대충 주워 듣긴 했지만, 제대로 공부해본 적도 없고요. 결론적으로 하나씩 해보는 게 낫겠다 싶은데, 강의에서 다룬 내용 중 어느 것을 먼저 학습하는 게 좋을지 쿠케님께 조언을 구하고 싶어요. 물론 정답이 없는 문제지만, 지금 당장 제가 일하는 환경에서는 써먹을 일이 별로 없는 내용들이다 보니 무엇을 먼저 하는 게 좋을지 선택하기가 어렵네요. 감사합니다.
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
메모리 가시성 문제가 발생하는 이유
멀티스레드 환경에서 메모리 가시성 문제가 발생하는 이유를, CPU 캐시와 메인 메모리 간의 데이터 갱신 시점 차이 때문이라고 이해했습니다.그렇다면 이 현상은 하드웨어 수준의 문제로 봐야 할까요, 아니면 JVM의 메모리 관리 방식이 영향을 주는 걸까요?또한, 이런 문제가 자바가 컴파일 언어이기 때문에 발생하는지도 궁금합니다.
-
미해결김영한의 실전 자바 - 기본편
3강 18. null 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요 3강 18. null 강의를 보는 중 궁금한 점이 있어 질문 드립니다.해당 강의 GC 섹션에서 말씀하신 참조하지 않는 인스턴스라는 부분이null -> x001 -> null이렇게 인스턴스에 값을 할당하는 과정에서 다시 null을 할당하며 x001 이라는 참조 값이 사라져서 x001 값이 GC가 된다는 게 맞을까요? 아니면 해당 인스턴스 자체가 GC가 되는 걸까요? 강의 잘 보고있습니다. 감사합니다!
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
데몬스레드가 어떨 때 사용이 되는지 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]데몬스레드의 특징은 이해했는데, 어떨 때 사용이 되는 건지 궁금합니다. 그리고 현업에서도 보통 데몬 스레드를 사용할 일이 있나요?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
최적화 순서
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.강사님, 최적화를 진행할 때 보통 어떤 순서로 고민하시나요?예를 들어 트래픽이 몰릴 때 먼저 어디를 확인하고, 어떤 기준으로 개선 방향을 정하시는지가 궁금합니다.