티스토리

마이너의 일상
검색하기

블로그 홈

마이너의 일상

tomining.tistory.com/m

email : tomining83@gmail.com

구독자
2
방명록 방문하기

주요 글 목록

  • wget으로 파일 받을 때 파일 수정시간은? wget으로 파일을 받으면 파일이 생성되는 것이니 파일 수정시간(mtime)은 다운로드 받은 시간으로 이해하고 있었는데, 기본값은 서버에서 내려주는 Last-modified 시간이다.참고: https://cmd.inp.nsk.su/old/cmd2/manuals/gnudocs/gnudocs/wget/wget_17.html The usage of time-stamping is simple. Say you would like to download a file so that it keeps its date of modification.wget -S http://www.gnu.ai.mit.edu/ A simple ls -l shows that the time stamp on the local file equals.. 공감수 5 댓글수 3 2024. 9. 25.
  • [Real MySQL 8.0] #4 아키텍처 Real MySQL 8.0 (1권)을 읽고 요약한 자료입니다. 4.1 MySQL 엔진 아키텍처4.1.1 MySQL의 전체 구조MySQL 엔진커넥션 핸들러, SQL 파서, 전처리기, 옵티마이저 등요청된 SQL 문장을 분석 최적화스토리지 엔진(동시에) 여러 스토리지 엔진을 사용할 수 있다.MyISAM, InnoDB, Memory 4.1.2 MySQL 스레딩 구조SELECT thread_id,name , type,processlist_user , processlist_host FROM performance_schema.threadsORDER BY type,thread_id;마지막 'thread/ sql/ one_connection' 스레드만 실제 사용자의 요청을 처리하는 Foreground Thre.. 공감수 3 댓글수 7 2024. 9. 8.
  • MongoDB.local Seoul 2024 MongoDB.local Seoul 2024를 다녀올 기회가 생겼다. 개별 신청은 받지 않고 법인이 등록되어 있어야 가능한 것으로 이해했는데, 다행히 잘 신청이 받아들여졌다. 행사 전날까지 코엑스로만 알고 있었는데, 당일날 아침 장소가 잠실 롯데월드호텔인 것을 알고 부랴부랴 가는 길을 찾아 본 건 비밀이다. ㅎ  입구를 찾느라 시간을 다소 보냈지만, 들어서자 행사를 알리는 세로형 플랜카드가 눈에 띄었다. 호텔에서 하는 행사라 깔끔히 정돈된 느낌이었다. 다소 늦게가서 그런지 외부에는 사람들이 많지 않았다. 얼른 접수대에서 접수하고 도시락 쿠폰을 받아 입장했다. (나중에 사진을 공유하겠지만 도시락이 맘에 안 들면 그냥 나가서 식당에서 점심을 해결할 생각이었다) Big Data Assistant  실내가 꽤 .. 공감수 2 댓글수 1 2024. 9. 5.
  • [자연어 처리 입문 NLP] #11 BERT를 다양한 자연어처리 Task에 응용해보자 SQuAD (Stanford Question Answering Dataset)100K(10만개) 질답으로 구성된 데이터 셋https://rajpurkar.github.io/SQuAD-explorer/v1.1 vs v2.01.1: 100K(10만개) 질답v2.0: 기존 1.1에서 50K(5만개)의 답을 할 수 없는 데이터를 추가 성능 평가 방식EM (Exact Match): 정확히 일치하는지 체크F1 Score: 정답과 일치하는 비율실습bert_squad_v1.1_exampleKorQuAD (Korean Question Answering Dataset)SQuAD 한국어 버전, LG CNS에서 구축1,560 개의 Wikipedia article에 대해 10,645 건의 문단과 66,181 개의 질의응답 쌍으.. 공감수 0 댓글수 0 2024. 8. 30.
  • [자연어 처리 입문 NLP] #10 BERT(Bidirectional Encoder Represnetations from Transformers) 모델 소개 Inflearn에서 NLP 강좌인 "예제로 배우는 딥러닝 자연어 처리 입문 NLP with TensorFlow - RNN부터 BERT까지" 강좌를 들으며 정리한 글입니다. 섹션3까지는 사전 준비 과정이라 별도로 정리하지 않았습니다.BERTBidirectional Encoder Representations from Transfomers2018년 공개된 논문(이 논문 이후로) NLP Task에서도 빅 모델의 시대를 연 모델전이 학습 (Transfer Learning)Transfer Learning(= Fine-Tuning)는 이미 학습된 NN 파라메터를 새로운 Task에 맞게 다시 미세 조정하는 것을 의미컴퓨터 비전 문제에서는 ImageNet 등의 데이터 셋에서 미리 Pre-Traning => 풀고자 하는 .. 공감수 0 댓글수 0 2024. 8. 30.
  • [자연어 처리 입문 NLP] #9 Transformer - 최신 NLP의 기술의 기반이 되는 핵심 모델을 학습해보자 Inflearn에서 NLP 강좌인 "예제로 배우는 딥러닝 자연어 처리 입문 NLP with TensorFlow - RNN부터 BERT까지" 강좌를 들으며 정리한 글입니다. 섹션3까지는 사전 준비 과정이라 별도로 정리하지 않았습니다.TransformerBERT 등 기본 모델이 됨ANN (1950s) => CNN / LSTM (1980s) => Transformer(2017)딥러닝 구조 중 하나seq2seq 모델 기반 + (RNN이 아닌) Attention 기법을 적용장점특징들의 시간적, 공간적 연관관계에 대한 선행을 가정하지 않음RNN처럼 순차적인 형태가 아닌 병렬적 계산 가능멀리 떨어진 정보들에 대한 연관관계를 학습시계열 처리에서도 도전적인 문제Attention Vector를 길게 잡아서 멀리 있는 정보.. 공감수 0 댓글수 0 2024. 8. 30.
  • [자연어 처리 입문 NLP] #8 기계번역(Neural Machine Translation) - 딥러닝을 이용해 번역을 수행해보자 Inflearn에서 NLP 강좌인 "예제로 배우는 딥러닝 자연어 처리 입문 NLP with TensorFlow - RNN부터 BERT까지" 강좌를 들으며 정리한 글입니다. 섹션3까지는 사전 준비 과정이라 별도로 정리하지 않았습니다.기계 번역(Machine Translation) 방법론 변화규칙 기반 기계번역 (Rule Based Machine Translation)규칙을 벗어난 번역은 대응이 어려움새로운 언어를 추가할 때마다 규칙을 새로 규정 필요통계 기반 기계번역 (Statistical Machine Translation)통계적인 특징을 기반규칙 기반에 비해 성능은 나으나 일반화 성능이 떨어지는 문제점이 있음신경망 기계번역 (Neural Machine Translation)딥러닝 이용예외 상황에서 안정.. 공감수 0 댓글수 0 2024. 8. 30.
  • [자연어 처리 입문 NLP] #7 임베딩(Embedding) - 단어를 의미있는 벡터로 변경해보자 Inflearn에서 NLP 강좌인 "예제로 배우는 딥러닝 자연어 처리 입문 NLP with TensorFlow - RNN부터 BERT까지" 강좌를 들으며 정리한 글입니다. 섹션3까지는 사전 준비 과정이라 별도로 정리하지 않았습니다.One-hot Encoding 문제점데이터 형태가 Sparse 하다 (1인 경우보다 0인 경우가 많다)유사한 의미를 가진 단어 간의 연관성도 표현할 수 없다. Embeding 개념Sparse 한 One-hot Encoding 의 데이터 표현을 Dense 한 표현형태로 변환하는 기법 Embeding Vector 적절한 값을 찾아야...초기값을 가져다 사용할 수도 있고학습 과정에서 찾아갈 수도 있음 (fine tuning)Embedding 장점차원 축속 효과 (Vector 계산으로.. 공감수 0 댓글수 0 2024. 8. 30.
  • [자연어 처리 입문 NLP] #6 언어모델(Language Modelling) - 다음에 올 단어를 예측해보자 Inflearn에서 NLP 강좌인 "예제로 배우는 딥러닝 자연어 처리 입문 NLP with TensorFlow - RNN부터 BERT까지" 강좌를 들으며 정리한 글입니다. 섹션3까지는 사전 준비 과정이라 별도로 정리하지 않았습니다. N-gram 언어모델(강의에 기본적인 설명이 있는데, 정리에서는 skip)...N-gram 언어모델의 문제점특정 단어 조합의 경우 데이터셋에 한번도 존재하지 않아서 계산식의 분모나 분자가 0이 될 수 있음이를 방지하기 위해 Laplacian Smoothing 을 하기도 함.최근에는 딥러닝에 기반한 언어 모델이 주로 사용ANN (인공신경망) => 1950년 ML순환 신경망(RNN)CNN - 이미지 구분용RNN - NLP에서 주로 활용하는 신경망 Unfold RNN(좌측) Hid.. 공감수 0 댓글수 0 2024. 8. 30.
  • [자연어 처리 입문 NLP] #5 자연어 처리를 위한 기초 지식 Inflearn에서 NLP 강좌인 "예제로 배우는 딥러닝 자연어 처리 입문 NLP with TensorFlow - RNN부터 BERT까지" 강좌를 들으며 정리한 글입니다. 섹션3까지는 사전 준비 과정이라 별도로 정리하지 않았습니다.Tokenizing & One-hot EncodingTokenizing전체 테스트를 원하는 구분 단위로 나누는 것 One-hot Encoding범주형 값(Categorical Value)을 이진화된 값(Binary Value)으로 바꿔서 표현하는 것Integer Encoding 문제점은 정수 값으로부터 잘못된 경향성을 학습하게 될 수도 있음“개”(=1) 와 “말”(=3)의 평균(1+3/2=2)은 “고양이”(=2)이다. => 명백히 잘못된 학습(전통적으로) 단어 하나를 One-h.. 공감수 1 댓글수 0 2024. 8. 30.
  • [자연어 처리 입문 NLP] #4 자연어 처리란? Inflearn에서 NLP 강좌인 "예제로 배우는 딥러닝 자연어 처리 입문 NLP with TensorFlow - RNN부터 BERT까지" 강좌를 들으며 정리한 글입니다. 섹션3까지는 사전 준비 과정이라 별도로 정리하지 않았습니다.NLP 문제영역Machine Translation: 기계 번역, 파파고 같은 언어 번역Sentiment Analysis: 문장의 감정상태를 분석영화 리뷰 코메트를 보고 긍정/부정 구분Spam Filtering스패머도 고도화 되어 창과 방패의 싸움에 NLP가 활용Image CaptioningText Summarization: 내용 요약🌟 Question Answering고객상담 봇에 활용Dialogue Generation 딥러닝 모델로 진화(2020년 기준)이때 BERT와 GP.. 공감수 0 댓글수 0 2024. 8. 30.
  • Lambda Architecture Yes24 에서 Lambda Architecture 검색 해 보니 가장 최근 책이 2018년 04월 책그 만큼 오래전에 나온 개념이며, 대세로 MVC 처럼 많이 사용되는 구조 Ingestion LayerStreaming Layer (Real-Time Layer or Speed Layer)Batch LayerServing Layer각 Layer에 따라 활용되는 기술 스텍도 많이 다르다. 아래 Youtube 사례를 참고하면 그 특징을 참고할 수 있다. Youtube 사례https://www.youtube.com/watch?v=mJsLK-iPagc⏱ Chapter Timestamps ==================== 00:00 - Intro 00:30 - Agenda 01:08 - Batch vs Stre.. 공감수 0 댓글수 0 2024. 6. 15.
  • Zeppelin 에서 checkbox input form 다루기 제플린에서 Input (Text, Password, Select, Checkbox)를 사용할 수 있다. 이를 Dynamic Form 이라고 부른다.크게 2가지 방법이 있다.Using form Templates (scope: paragraph)Using form Templates (scope: note) => 1번과 동일하나 '$'를 하나 더 붙이면 된다.Creates Programmatically (scope: paragraph)3번의 경우 scala or python으로 활용하기에 input을 받아서 변환하기가 용이하다. 1번 form template을 활용하는 경우 편리한 부분도 있지만 3번만큼 자유도가 있진 않다. 사용하면서 삽질한 사례가 있어 소개해 본다.Checkbox로 Dynamic Form을.. 공감수 0 댓글수 0 2024. 6. 5.
  • KOBA 2024 후기 KOBA2024를 우연하 갈 수 있는 기회를 회사에서 얻게 되었다.처음 들어보는 전시회(뭐라 지칭해야 할 지도 모르겠다)인데, 벌써 32회란다. 사전 정보 하나도 없이 무작정 가 보기로 했다. 사실 관련 업무를 하고 있는 것도 아니기에 부담은 하나도 없었다.  5/22일(수)에 갔는데, "방송국 관계자들이 대부분이겠지" 하는 단순한 생각이었는데, 일반인, 학생들이 엄청 많았다. 크리에이터처럼 보이는 사람들도 꽤나 보였다. 참고로 관련 지식이 전혀 없었기에 리뷰는 근거없는 100% 개인 느낌을 기반하고 있음을 밝혀둔다. (8K HDR 직캠이 있다고 해서) 가장 먼저 방문한 곳은 KBS 부스였다. TV도 물론이지만 영상 해상도는 놀랍긴 했다. 가까이에서 확인해도 그 선명도는 대단했고, 격렬한 움직임에도 흐트.. 공감수 2 댓글수 0 2024. 5. 25.
  • Kotlin: [Internal Error] java.lang.NoSuchFieldError: FILE_HASHING_STRATEGY Intellij 에서 오랜만에 Kotlin 프로젝트를 빌드하다 아래와 같은 오류를 만났다.Kotlin: [Internal Error] java.lang.NoSuchFieldError: FILE_HASHING_STRATEGY at org.jetbrains.kotlin.jps.targets.KotlinJvmModuleBuildTarget.updateChunkMappings(KotlinJvmModuleBuildTarget.kt:362) 처음 보는 오류이다.믿었던 ChatGPT-4o 는 이상한 말만 늘어놨다.더보기오류 `java.lang.NoSuchFieldError: FILE_HASHING_STRATEGY`는 주로 Gradle과 Kotlin 버전의 호환성 문제로 발생합니다. 이 문제를 해결하기 위해 다음 단계.. 공감수 0 댓글수 0 2024. 5. 24.
  • 데이터 리터러시 #6 데이터 과학자의 가설 사고 6장을 읽고 정리해 본 내용이다.  5장까지 데이터를 배경을 보고 분류하고 패턴/경향을 파악하여 의사결정트리를 만들어 예측을 해 봤다면 6장에서는 판별문제가 아닌 수치 예측을 다루고 있다. 1. 수치 데이터의 관계성을 확인하자.1, 3, 5, 7, ?  물음표에는 어떤 숫자가 들어올까? (아마도 어렵지 않을 것이다.) 정답은 9이다. 단순히 2씩 증가하는 등차수열이다. 꼭 등차/등비가 아닌 수식을 기반한 패턴을 가질 수도 있다. 이처럼 수치의 패턴을 파악할 때 앞/뒤 관계성을 잘 파악해야 한다. 하지만 주어진 데이터로부터는 관계성을 찾는 것이 어려울 수도 있다. (아래 그림 참고) 센서 X값이 0~3까지는 거의 유사하나 4부터 점점 벌어지더니 엄청난 차이를 보이고 있다. 만약 .. 공감수 0 댓글수 0 2024. 5. 11.
  • 데이터 리터러시 #5 데이터 과학자의 가설 사고 5장을 읽고 정리해 본 내용이다.  5장에서는 데이터에서 법칙을 발견하고 판별 문제를 다뤄본다. 이 때 의사결정 트리 모델을 적용해 보고 정밀도를 판단해 보는 내용을 다루고 있다. 1. 데이터에서 법칙을 발견한다.  K, L, M씨 의 생존 상황을 예상해 보자. 아마도 조금만 고민하면 정답인지 모르더라도 나름의 규칙으로 답을 낼 수 있을 거라고 예상해 본다. 어떻게 생각했는가? 단순히 여객 클래스 -> 연령대 -> 성별 순서로 살펴 보았다. (타이타닉 영화를 본 경험이 있어 그 부분도 문제 풀이에 한 몫 했다) K씨는 1등 객실이라 생존했을 것으로 예상했다. L씨의 경우 어린이라서 생존, M씨는 3등 객실에 성인이라 사망했을 것으로 예상된다. 사실 어느정도 지식이 있는 상황이기.. 공감수 0 댓글수 0 2024. 5. 9.
  • 데이터 리터러시 #4 데이터 과학자의 가설 사고 4장을 읽고 정리해 본 내용이다.  3장에서 데이터 비교는 Apple to Apple 처럼 비슷한 분류의 데이터 사이에 이뤄져야 한다고 언급했다. 그렇다면 비슷한 데이터들끼리 분류가 필요하다. 4장에서는 데이터를 어떻게 분류하고 그룹핑하는지 소개하고 있다.특징이 비슷한 데이터로 그룹을 만드는 방법목적에 따라 데이터를 분류하는 일의 중요성데이터를 기계적으로 분류하는 방법데이터를 분류하는 순서특징이 비슷한 데이터를 그룹화하자.  어느 카페에서 커피와 디저트 주문 횟수를 시각화 한 사례이다. 대략 손님을 그룹핑하면 우측 그림처럼 될 것이다. (책에는 3가지 선택지를 가진 퀴즈로 소개하는데, 간단한 부분이라 생략하고 정답만 소개한다) 그룹1, 2, 3으로 나눠진 기준은 무엇일까?그룹1.. 공감수 0 댓글수 0 2024. 4. 27.
  • 데이터 리터러시 #3 데이터 과학자의 가설 사고 3장을 읽고 정리해 본 내용이다.  3장에서는 데이터를 설명하는 방법에 대해서 소개를 한다. 데이터 설명을 위해서 수치를 시각화하고 비교하는 연습이 필요하다. 시각화 데이터를 시각화 하는 방법은 너무나도 다양하다. 시각화 영역만을 다루는 업무가 있을 정도로 전문적인 영역이며, 데이터 패턴, 특징, 경향을 파악하는데에도 큰 도움을 줄 뿐만 아니라 데이터를 보는 사람에게 강력한 첫인상을 남기기도 하고 때로는 심각한 편향을 일으키기도 한다.  (책에서 소개하고 있는) 막대 그래프, 꺽은선 그래프, 산포도, 원 그래프는 시각화를 잘 모르는 사람들도 주변에서 많이 보았을 것이다. 아주 기본적인 그래프라서 따로 설명하지 않으려고 한다. (궁금한 사람은 구글에 검색만 해 봐도 많은 이미지들.. 공감수 0 댓글수 1 2024. 4. 25.
  • 데이터 리터러시 #2 데이터 과학자의 가설 사고 2장을 읽고 정리해 본 내용이다. 2장에서는 데이터를 읽는 방법을 소개하고 있다.EDA(Exploratory Data Analysis, 탐색적 데이터 분석) 과정을 의미하기도 한다.도메인 -> 특징&경향 -> 세부내용 -> 관계 파악목적 즉, 데이터의 도메인을 생각하고 특징과 경향(평균, 중간값, 분포 등)을 파악하고 세부내용(상이값, 이상값 등)을 살펴보고 데이터 사이의 관계(상관관계, 인과관계)에 대해서 살펴보는 과정이다. 1. 생각하면서 데이터를 읽자 데이터를 읽을 때에는 배경 즉, 데이터 도메인을 알아야 한다. 영화 판매 데이터를 본다고 할 때 영화의 lifecycle 을 전혀 모르고는 데이터를 정확히 파악하기 어렵다. (실제로 데이터 과학자들은 실생활 데이터를 볼 때 .. 공감수 0 댓글수 0 2024. 4. 24.
  • 데이터 리터러시 #1 데이터 과학자의 가설 사고 1장을 읽고 정리해 본 내용이다. 데이터 리터러시를 배우기 위해 기초적인 소양으로 아래 3가지를 언급하고 있다. 데이터를 읽는 힘 데이터를 설명하는 힘 데이터를 다루는 힘 책의 목차를 보면 아래와 같이 이뤄지고 있다. 데이터를 읽고 -> 설명하고 -> 분류하고 -> 규칙을 발견 (insight) -> 예측한다. 데이터 과학자란? 데이터에서 가치를 창출하고, 비즈니스 과제에 답을 찾는 프로세셔널 데이터 과학자는 결국 읽고, 설명하고, 분류하고 그 속에서 Insight 를 찾고 예측하는 모든 능력을 보유해야 한다. 공감수 0 댓글수 0 2024. 4. 17.
  • Spark Memory Tuning Case-Study Spark 기본 구조 Spark Memory JVM 내부 Reserved Memory Spark Memory Execution Memory (operation) Storage Memory (cache): RDD Persistance JVM 외부 OffHeap Memory External Process Memory 5GB 기준 메모리 영역 예제 Q) 빠르다고 해서 Spark 를 사용하는데, 느려요~??? Memory 는 충분한가? 무한정 늘릴 순 없다 YARN (Resource Manager) 적절히 분배해 주는가? => Spark Properties 정해진 메모리를 효율적으로 사용하고 있는가? spark.executor.memory 늘려준다 spark.executor.cores 조정 (얼마가 적당할까?).. 공감수 0 댓글수 0 2024. 4. 14.
  • ffmpeg 에서 partial file Error demuxing input file 0 오류 ffmpeg 을 통해 영상으로 부터 이미지를 추출 하려고 하는데, 아래와 같이 오류가 발생했다. (ffmpeg -version 은 아래와 같다) ffmpeg version 6.0 Copyright (c) 2000-2023 the FFmpeg developers built with Apple clang version 14.0.3 (clang-1403.0.22.14.1) configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/6.0_1 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enabl.. 공감수 0 댓글수 0 2023. 11. 23.
  • REST Api 로 Zeppelin Note 실행하기 글 작성 시점 기준 0.10.1 버전이 최신 버전으로 해당 버전 기준으로 작성한다. Zeppelin 은 REST API 를 제공하고 있다. (docs) Note 목록 조회, 생성, 삭제, 실행 등 기본적인 기능은 모두 제공하고 있다. 기본적으로 HTTP 호출을 할 수 있다면 어렵지 않게 접근할 수 있다. 만약 Zeppelin 에 인증이 붙어있다면 어떻게 해야 할까? login 처리가 필요하며 아래와 같은 헤더 (쿠키) 정보가 필요하다 Set-Cookie: ZEPPELINJSESSIONID={SessionId 값} 다양한 방식으로 구현할 수 있지만, 아래 샘플은 curl 을 활용한 방식으로 작성해 봤다. STATUS_CHECK_COUNT=20 SLEEP_TIME=5 COOKIE_FILE=cookies.tx.. 공감수 0 댓글수 0 2023. 11. 23.
  • REST Api 로 Zeppelin Note 실행하기 글 작성 시점 기준 0.10.1 버전이 최신 버전으로 해당 버전 기준으로 작성한다. Zeppelin 은 REST API 를 제공하고 있다. (docs) Note 목록 조회, 생성, 삭제, 실행 등 기본적인 기능은 모두 제공하고 있다. 기본적으로 HTTP 호출을 할 수 있다면 어렵지 않게 접근할 수 있다. 만약 Zeppelin 에 인증이 붙어있다면 어떻게 해야 할까? login 처리가 필요하며 아래와 같은 헤더 (쿠키) 정보가 필요하다 Set-Cookie: ZEPPELINJSESSIONID={SessionId 값} 다양한 방식으로 구현할 수 있지만, 아래 샘플은 curl 을 활용한 방식으로 작성해 봤다. STATUS_CHECK_COUNT=20 SLEEP_TIME=5 COOKIE_FILE=cookies.tx.. 공감수 1 댓글수 0 2023. 10. 27.
  • Spark Dataframe 에서 특정 컬럼 타입 변경 Spark 에서 Schema 를 지정해 Dataframe 을 생성한다면 좋겠지만 csv 등 schemaless 하게 Dataframe 을 생성한 경우 타입을 변경해야 할 일이 있을 수 있다. 기본적으로 아래와 같이 캐스팅 하면 된다. df.withColumn(columnName, col(columnName).cast("type"))​ 만약 변경해야 하는 컬럼이 여러 개라면? import org.apache.spark.sql.DataFrame import org.apache.spark.sql.functions._ val DEFAULT_COLUMN_TYPES_MAP = Map( "SEQ" -> "decimal(9,0)", "AMT" -> "decimal(9,0)" ) object DataFrameExtens.. 공감수 1 댓글수 0 2023. 10. 27.
  • [코딩인터뷰] 면접관의 입장 중간 이상의 어려운 문제를 출제하라 여러 가지 난관을 거쳐야 하는 문제를 찾으라 알기 어려운 지식이 아닌 풀기 어려운 문제를 출제하라 겁을 주는 문제는 피하라 수학 또는 확률, Raw Level 지식(메모리할당), 시스템 디자인 또는 확장성 P33. 문제참고 지원자를 긍정적으로 대하라 행동 질문을 철저히 하라 지원자에게 조언하라 지원자가 과거에 무엇을 했는지 이해하기 어렵다고 해서 중요한 일을 하지 않았다고 판단하지 마라 만약 지원자가 했던 일이 대단치 않다고 생각되면 더 깊게 캐물어라 그들이 생각할 시간을 원한다면 생각할 시간을 주라 “뭘 어떻게 해야 할지 모르겠어”와 “생각 중이야”를 구별할 수 있어야 한다 방식을 정하라 Sanity Check: 기본적인 질문, 최소한의 레벨 체크 Quality: 좀.. 공감수 0 댓글수 0 2019. 12. 20.
  • Java에서 문자열에 포함된 HTML 태그들 제거하기 개요 개발을 진행하다 보면 문자열에서 HTML 관련 태그를 모두 삭제하고자 하는 경우가 있다. HTML 내용에는 예외 상황이 많기 때문에 정규식으로 완벽히 지우기는 어렵긴 하다. 그래서 공통 코드로 하나 만들어 보았다. 개발 public class HtmlUtils { private enum HtmlTagPatterns { SCRIPTS("]*>.*?", Pattern.DOTALL), STYLE("", Pattern.DOTALL), TAGS("]+|[a-zA-Z!-:]+)>"), N_TAGS(" 공감수 0 댓글수 0 2018. 2. 8.
  • bash shell 로 날짜별 script 수행해보기 START_YMD ~ END_YMD 까지 일자별 script 수행 #! /bin/bash START_YMD=$(date -d $1 +"%Y%m%d")END_YMD=$(date -d $2 +"%Y%m%d")END_YMD_S=$(date -d $2 +"%s") echo "startDate: $START_YMD" echo "endDate: $END_YMD" if [ $START_YMD -ge $END_YMD ]; then echo "start ~ from parameter are invalid." fi CURRENT="$START_YMD"CURRENT_S=$(date -d $CURRENT +"%s") while [ $CURRENT_S -le $END_YMD_S ]; do echo $CURRENT # run s.. 공감수 1 댓글수 0 2018. 1. 23.
  • Collectors.toMap() 시 IllegalStateException 오류 Collectors.toMap 사용시 중복 key가 존재하는 경우 IllegalStateException 이 발생한다. @Testpublic void duplicateKeyError() { List categories = Lists.newArrayList( Category.builder().categoryId("KO_01").languageCode("ko").build(), Category.builder().categoryId("KO_02").languageCode("ko").build() ); Map categoryMap = categories.stream().collect(toMap(Category::getLanguageCode, Function.identity())); assertThat(categ.. 공감수 0 댓글수 0 2017. 12. 26.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.