전체 글 16

Solr 기초

Solr란? : 검색 엔진 솔루션 : 인덱스를 만들어서 빠른 검색이 가능하도록 한다. 어떤 식으로 빠르게 하지? Inverted Index 를 통해서! Inverted Index란, 다음과 같이 ID와 Tags의 순서가 inverted된 구조의 인덱스! 전통적 방식의 DB 또는 데이터 스토리지 → Inverted Index ID Tags Tags ID 1 banana banana 1, 3 2 market market 2 3 delicious banana declious 3,4 4 delicious - Solr가 사용하는 검색 알고리즘: TF-IDF TF : Term Frequency 검색 키워드를 더 많이 포함하는 검색결과(Document)가 더 높은 점수를 득점하는 알고리즘. (이 득점에 의해 검색결과..

카테고리 없음 2021.12.28

Kubernetes 공부 - 기초

1. Object에 대해서 더보기 Pods 란? : 하나 이상의 컨테이너 그룹. : 공유 컨텍스트 위에서 여러 컨테이너가 작동함. (하나의 Host를 공유한다고 보면 됨!) : 재생성 될 때마다 IP가 변경된다. (외부로부터 접속 가능한 IP는 아님!! : 외부로부터 접속 가능한 IP는 Service를 통해야 한다.) 기본적으로 Pod는 쿠버네티스 클러스터 내부 IP를 통해서만 접근할 수 있다. 외부로부터 Pod에 접근 가능하도록 하려면, Service를 통해 노출시켜야만 한다. 컨테이너란? 도커를 생각하면 쉬울 듯! 도커를 실행하면 하나의 컨테이너가 작동. 컨테이너는 기본 호스트 인프라에서 애플리케이션을 분리한다 Deployments 란? 쿠버네티스의 컨트롤러! 어떤 식으로 앱을 배포를 Deployme..

카테고리 없음 2021.12.22

target="_blank" 다른 탭으로 링크 이동하기

몰랐던 프론트 세계..! 업무 중에 새로운 탭을 열어서 링크 이동시켜달라는 사양이 있어서, '아! 이건 아주 간단히 되겠구나~~'하고 PR을 날렸지만.. Approve받기 실패한.. 가슴 아프지만, 내일의 나를 위해 기록해두자! 우선, 새로운 탭을 열고 '링크' 이동을 하기 위한 속성으로는 `_blank` 가 있다. 이거 자체로 '새 탭으로 이동' 은 가능하다! 문제는 Security(보안) 그리고 SEO(Search Engine Optimizer)! 결론부터 말하자면, `_blank` 속성은 반드시 아래의 속성과 같이 써야한다. 3가지 속성을 모두 쓰는 것이 좋다! 보안 관련된 속성부터 보자면, `noopener`, `noreferrer`! window.opener `noopener`를 사용하지 않으면..

개발 2021.11.12

[WIP] SQL 코딩 기초

[WIP] INDEX 인덱스 인덱스 설정을 한다고 해서 무조건 쿼리가 빨라지는 것은 아니다. - 쿼리의 성능은 인덱스 구성과 함께 어떤 식으로 쿼리를 실행하고 있는지가 포인트. # 1) SELECT user_id FROM user WHERE user_country = 'KOREA' AND user_city = 'SEOUL'; # 2) SELECT user_id FROM user WHERE user_country = 'KOREA' AND modified_time > '2021-11-07' AND user_city = 'SEOUL'; * 1) 의 경우, 성능개선을 위해 인덱스는 쿼리 조건문 순서대로 설정해야 한다. CREATE INDEX CountryCity ON User (user_country, user..

카테고리 없음 2021.11.07

Splunk 기초

Index Index란, 데이터를 종류별로 구분해서 관리할 수 있도록하는 하나의 태그 기능이라고 보면 됨. Splunk의 모든 데이터는 Index가 설정되고, 유저가 아무 설정도 하지 않았을 때에는 default 설정(main index)에 저장. 내부 구조는 아래와 같이 bucket(ex: Hot bucket) 단위로 데이터를 구분해서 관리한다. ※ Tip: Splunk 용어로 하나의 데이터(로그)를 Event라고 부른다. Search Host 호스트! Source 소스의 파일 또는 스프림명칭! 어디로부터 오는 이벤트인지 특정할 수 있는 개념. doc -> The source is the name of the file, stream, or other input from which a particular..

카테고리 없음 2021.10.17

Maven 기초 : Maven 동작 및 개념 정리

최근 이직에 성공했고, 여태까지 gradle만 사용하다가 maven을 사용하게 되서 공부를 하게 되었습니다! 여러 프로젝트에서 활발하게 쓰이는 툴이기도 하고, 초보(newbie)의 관점에서 작성하면 '신입개발자분들이나 공부를 시작하신 분들에게 도움이 되지 않을까?'라는 생각이 들어서 블로깅을 하게되었습니다. 먼저 Maven이 어떻게 동작하는지 그림으로 볼까요? 간단히, 아래와 같은 흐름으로 작동합니다. 설정파일(pom.xml)을 확인하고 로컬 컴퓨터(Local Repository)에 의존하는 라이브러리를 가지고 있는지 확인하고 로컬 컴퓨터(Local Repository)에 의존하는 라이브러리가 없다면, Remote Repository(ex: https://mvnrepository.com, 사내 라이브러리..

카테고리 없음 2021.08.20

Jest 사용법 (Usage)

Jest 와 Enzyme는 프론트엔드 Unit test, Integration test 에 사용되는 프레임워크와 라이브러리입니다. 오늘은 Jest를 이용해서 테스트를 하기 위한 기본 사용법에 대해서 정리해보겠습니다. Jest의 기본 문법부터 알아볼까요! expect().toBe() 등과 같은 assertion 함수들이 많이 존재하지만, 여기에서 다 다루기에는 양도 방대하고, 필요에 따라서 검색을 통해 알아가는게 더 효율적이라 생각이 들어서 공식문서 링크만 공유하겠습니다. 그림으로 동작하는 방식만 간단히 정리해볼까요? Jest의 실행 방법은? 공식문서에는 커맨드라인에서 실행하는 법도 나와있지만, 보통은 아래와 같이 package.json에 등록한 후 사용합니다! { "scripts": { "test": "..

개발 2021.05.30

프론트엔드 vs. 백엔드 테스트

사이드 프로젝트로 Next.js 를 TypeScript로 쓰면서 TDD방식으로 진행하려고 이것저것 찾아보면서 공부하고 있던 중에 '백엔드에서 테스트를 대하는 방식과 프론트에서 테스트를 보는 관점이 좀 다르다' 라고 느껴서 공부를 시작하게 되었고, 정리한 내용을 공유하겠습니다. 참고로 프론트엔드쪽의 테스트는 아직 미경험이기 때문에 부족한 점이 많습니다! 지금은 이론적으로 공부한 것들을 정리하지만 나중에 실제로 경험해 본 후기를 공유할 수 있도록 할게요! 우선 테스트 비용적인 측면에서 유명한 Mike Cohn씨의 테스트 피라미드를 봐볼까요? 요소들을 살펴보면 아래와 같습니다. UI test : 브라우저에 표시되고 있는 어플리케이션의 구조 및 컨텐츠를 테스트 Service test : UI를 제외한 전체적인 ..

개발 2021.05.22

Java 접근 제한자 (Access Modifier)

오늘은 평소에 사소하게 넘어갈 수 있는 부분인 Java의 접근 제한자에 대해서 얘기해보겠습니다. 제가 이 주제에 대해 블로깅을 하기로 결정한 이유는 '내가 여태까지 사용해온 접근제한자 활용 패턴이 잘못 됐을 수도 있겠다. 더해서 우리 팀의 코드를 봤을 때 정말 접근제한자를 제대로 활용하고 있는지 모르겠다.' 라는 생각이 들었기 때문입니다. 이 글은 Clean Architecture 라는 책의 Simon Brown씨 기고문에 있는 '컴포넌트 기반 패키지' 를 읽고 깨닫고 느낀점을 기반으로 작성했습니다. 우선 접근 제한자는 무엇일까요? 접근 제한자는 OOP 의 특징으로 캡슐화를 지원하기 위한 기능입니다. 예를 들어, 'A 클래스의 메소드를 다른 클래스에서 사용하지 못하게 하고 싶다' 할 때, 자바에서는 pr..

개발 2021.05.15

concourse 테스트

이번에는 CICD 툴 중에서 concourse 를 테스트 해보겠습니다. CICD 기초 개념에 대해서는 flowertaekk.tistory.com/17 에 정리가 있으니 확인해주세요! 공식문서는 concourse-ci.org/docs.html (한국어는 없지만, 화이팅!) Docs - Concourse CI Concourse is a pipeline-based continuous thing-doer. The word "pipeline" is all the rage in CI these days, so being more specific about this term is kind of important; Concourse's pipelines are significantly different from the..

개발 2021.05.05