이야기를 나눠요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
도커 컨테이너 복사에 관해
안녕하세요 강사님, 도커 컨테이너를 한꺼번에 많이 만들 수 있다고 그러셨는데 그럼 똑같은 컨테이너의 설정을 한번에 복사해서 만들게 되면 외부에서 접속시에 어떻게 되나요? 예를 들어 도커안에 몇몇개의 같은 컨테이너에 9999 포트를 허용해놓고 접속을 허용하게 된다면, 외부에서 들어올때 모든 도커의 컨테이너에 접속을 하게되는지 말씀하신 Compose라는 관리 툴로 관리를 하게되는지 궁금합니다. 도커끼리의 네트워크 연결을 안하게 된다면 이와같은 상황에서 어떻게 될까요?
-
솔리디티 깨부수기
추천드립니다!!
고민하시는분은.. 무조건 들어보세요!!!
-
스프링 핵심 원리 - 고급편
콘솔 로그를 테스트하는 방법에 대해 알아봤습니다.
void 메서드는 어떻게 테스트해야할 지 고민해본 적은 있었는데, 콘솔 로그가 원하는대로 나오는지 테스트는 해본적이 없는 것 같습니다. 좋은 것 배워갑니다. class LogTrackerV1Test { @Test void begin_end() throws Exception { // given ListAppender<ILoggingEvent> listAppender = new ListAppender<>(); Logger logger = (Logger) LoggerFactory.getLogger(LogTrackerV1.class); logger.addAppender(listAppender); listAppender.start(); LogTrackerV1 tracker = new LogTrackerV1(); // when TraceStatus status = tracker.begin("hello"); tracker.end(status); // then List<ILoggingEvent> testLogs = listAppender.list; assertThat(testLogs).hasSize(2); assertThat(testLogs.get(0).getFormattedMessage()).matches("\\[[a-z0-9]{1,8}\\]\\shello"); assertThat(testLogs.get(0).getLevel()).isEqualTo(Level.INFO); assertThat(testLogs.get(1).getFormattedMessage()).matches("\\[[a-z0-9]{1,8}\\]\\shello\\stime=[0-9]*ms"); assertThat(testLogs.get(1).getLevel()).isEqualTo(Level.INFO); } @Test void begin_exception() throws Exception { // given ListAppender<ILoggingEvent> listAppender = new ListAppender<>(); Logger logger = (Logger) LoggerFactory.getLogger(LogTrackerV1.class); logger.addAppender(listAppender); listAppender.start(); LogTrackerV1 tracker = new LogTrackerV1(); // when TraceStatus status = tracker.begin("hello"); tracker.exception(status, new IllegalArgumentException()); // then List<ILoggingEvent> testLogs = listAppender.list; assertThat(testLogs).hasSize(2); assertThat(testLogs.get(0).getFormattedMessage()).matches("\\[[a-z0-9]{1,8}\\]\\shello"); assertThat(testLogs.get(0).getLevel()).isEqualTo(Level.INFO); assertThat(testLogs.get(1).getFormattedMessage()).matches("\\[[a-z0-9]{1,8}\\]\\shello\\stime=[0-9]*ms ex=[a-zA-Z.]*"); assertThat(testLogs.get(1).getLevel()).isEqualTo(Level.INFO); } }
-
스프링 핵심 원리 - 고급편
CountDownLatch가 뭔지 궁금해서 찾아봤습니다.
첨듣는 키워드였는데 좋은 것 알아갑니다 ! @Slf4j public class FieldServiceTest { private FieldService service = new FieldService(); @Test void service() throws Exception { log.info("Main start"); int count = 5; CountDownLatch countDownLatch = new CountDownLatch(count); ExecutorService executorService = Executors.newFixedThreadPool(processors()); Stream.generate(() -> { String user = UUID.randomUUID().toString().substring(0, 8); return new Thread(new FieldServiceWorker(countDownLatch, service, user)); }) .limit(count) .collect(Collectors.toList()) .forEach(executorService::submit); countDownLatch.await(); // countDownLatch의 카운트가 0이 될 때까지 대기 log.info("Finished"); } private int processors() { return Runtime.getRuntime().availableProcessors() + 1; } } @Slf4j public class FieldService { private String nameStore; public String service(final String name) { String threadName = Thread.currentThread().getName() + Thread.currentThread().getId(); log.info("{}: 입력 name={}", threadName, name); log.info("{}: 저장 name={} -> nameStore={}", threadName, name, nameStore); nameStore = name; TimeUtils.sleep(1000); log.info("{}: 조회 nameStore={}", threadName, nameStore); return nameStore; } @RequiredArgsConstructor public static class FieldServiceWorker implements Runnable { private final CountDownLatch countDownLatch; private final FieldService service; private final String name; @Override public void run() { service.service(name); TimeUtils.sleep(1000); countDownLatch.countDown(); // countDownLatch의 카운트를 하나 감소시킴. } } }
-
야곰의 iOS 프로그래밍
수료 후 - 아이폰 기본 앱 '미리 알림' 따라하기
해당 강의를 수료하고 Todo 실습의 연장선으로써 아이폰 기본 앱인 '미리 알림' 을 따라해보았습니다. 기간은 하루에 3~4시간 많게는 6시간 정도 했고 한달 넘게 걸렸습니다;; '미리 알림'의 일부 기능만 구현했으며, 몇몇 기능은 부자연스럽거나 원활하지 않습니다만, 수강생분들에게 도움이 되었으면 해서 공유합니다. 공부에 조금이나마 도움이 되길 바랍니다. Github : https://github.com/namgikim/iOS_Practice 파일명 : Reminders.xcodeproj, Reminders, Videos/reminders.mov Xcode Version : 12.0 Simulator : iPhone 11
-
스프링 핵심 원리 - 고급편
김영한 강사님의 신규강의? 이건 못참지
수강하러 가즈아
-
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
final?
final은 안나오는 건가요? override까지만 나옵니다
-
스프링 핵심 원리 - 고급편
강의오픈 축하드립니다.
기대하던 강의가 드디어 오픈되었네요. 항상 좋은 강의 잘듣고 있습니다. 이번 강의도 큰 도움이 될것 같습니다!
-
비전공자를 위한 개발자 취업 올인원 가이드 [통합편]
최고최고
진짜 도움되는 정보 많아요..! 감사합니다!!👍👍
-
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
DirectXTex 빌드시 문제
최근 커밋된 버전을 다운받아 빌드를 하면 특정클래스가 정의되지 않아서 오류가 발생합니다. Rookiss선생님과 같은 버전의 솔루션을 빌드했을때는 오류가 발생하지 않는걸 보니 제 개인의 문제는 아닌거 같아 이렇게 게시글을 적습니다. 직접 다운받아 쓰시는분들은 참고하시는게 좋을거같습니다.
-
[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
vscode 사용하시는분들 한글이 깨지시면
- 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. soup = BeautifulSoup(res.content.decode('euc-kr', 'replace'), 'html.parser') res.content 이후에 decode('euc-kr' , 'replace' )를 입력하시면 해결됩니다.
-
스프링 배치
zsh 쓰시는 분 중 jar 실행 시 에러발생 경우 참고!
java -jar springbatchlecture-0.0.1-SNAPSHOT.jar name=user1 seq(long)=2L data(data)=2021-01-01 dage(double)=16.5 해당 명령어 실행 시 zsh: no matches found: seq(long)=2L이런 에러가 나오는데 옵션을 '로 묶어주면 실행됩니다.java -jar springbatchlecture-0.0.1-SNAPSHOT.jar 'name=user1 seq(long)=2l data(data)=2021/01/01 dage(double)=16.5' --spring.profiles.active=mysql옵션을 추가하면 mysql로 프로파일이 설정된다는 것도 참고해주세용 찡긋열공!
-
[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
문자열 관련 질만
1. 영수는 캔디를 좋아합니다. 2. 철수는 캔디와 과자를 좋아합니다. 3. 영희는 캔디를 먹고 있습니다. 또 다른 예로는 1. 오뚜기 초코맛 과자 2세트 2. 오뚜기 딸기맛 과자 4세트 3. 오뚜기 초코맛 과자+초코맛 사탕 2세트 4. 오뚜기 바나나맛 과자 3세트 위의 예시에서 캔디가 각 문장마다 몇번 나왔는지 그리고 초코라는 글자가 각 문장마다 몇번 들어갔는지 어떻게 코드를 짤 수 있나요?
-
[신규 개정판] 이것이 진짜 크롤링이다 - 기본편
아주 재미 있어요.
데이터 학습
-
모든 개발자를 위한 HTTP 웹 기본 지식
100만원짜리 노트북 고객과 점원
정말 예시 최고네요ㅋㅋ stateful을 이렇게 쉽게 설명 가능하군요!!
-
[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
질문있습니다!
이 강의에서 사용하는 자바스크립트 버전을 알 수 있을까요?
-
Java로 배우는 자료구조
영상 실제 길이랑 인프런 강의에서 보여지는 영상 길이랑 다르네요 ㅎㅎ
문의는 아니고 서로 달라서 학습할 때 헷갈릴수도 있어서 글 올렸습니다. 혹시 영상에 변경사항이 생긴건가요?
-
[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
cardview가 사용안될때
4:50에서 <cardview 했을때 단어 추천이 뜨지 않았음 build.gradle(Module: twice.app)에서 제일아래 dependencies의 implementation의 androidx가 적용이 안되는게 원인 android:support에서 androidx로 라이브러리 지원을 업데이트 하기에 androidx로 migration 필요 IDE의 상단 메뉴바 Refactor -> migrate to AndroidX -> do Refactor 하면 적용 가능 CJM
-
[백문이불여일타] 데이터 분석을 위한 중급 SQL
딱 이 시점에 궁금했던 걸 딱 아셔서 너무 신기..
강사님은 어떻게 테이블 안 보고도 칼럼명을 알지 궁금하던 찰나에 바로 왜 그런지 + 어떻게 하면 칼럼명을 확인할 수 있는지 알려줘서 넘 신기했어요 ㅋㅋ
-
반응형 웹사이트 포트폴리오(Architecture Agency)
강의를 들으면서 갑자기 의문점이 들어서용
안녕하세요 강의를 들으면서 의문점이 순간 들어서요 이 강의를 완강을 하고나서 취업을 할 때 지금 만든 것을 포트폴리오로 넣어도 되는건가요? 아무래도 인강이다 보니 회사입장에서는 코딩웍스가 워낙 유명하다 보니 똑같은 포폴이 많이 보여질 거 같아서 누가 봐도 인강이구나 라고 느끼지 않을까 싶습니다 ㅠㅠ 포트폴리오를 어떻게 만들어야 할지 고민이 매우 많은데 혹시 괜찮으시면