챕터1, 2는 각각 개발환경 설정, 자료와 변수를 다루고 있어 사실 크게 흥미있게 보지는 못했다.다만, 그럼에도 내가 잊고 있었던 내용들이 있더라는 걸 눈 앞에서 바로 확인할 수 있는 계기가 됐다.'===', '!==' 연산자와 '==', '!=' 연산자가 다르게 작동
챕터 3 - 조건문짧은 조건문자바스크립트의 경우, true(참)이 확실할 때 추가 연산을 진행하지 않는 것을 이용한 조건문(불 표현식) || 문장1\. 불 표현식이 true인 경우\-> 우변에 관계 없이 true로 확정되었으므로, 우변은 실행하지 않음2\. 불 표현식이
챕터 4 - 반복문파괴적 처리 / 비파괴적 처리실행 후 원래의 자료에 변형이 일어나는 것이 파괴적 처리변형이 없는 것이 비파괴적 처리초반에는 메모리를 아끼기 위해 새로 변수를 할당하지 않고 원래의 값을 바꾸는 파괴적 처리를 사용하는 경우가 많았지만, 자료의 원본 보존이
챕터 5 - 함수forEach배열.forEach(function(value, index, array){ })배열 내 요소를 단순하게 사용map배열.map(function(value, index, array){ })콜백 함수에서 리턴한 값들을 새로운 배열로 만들어줌fil
프로그래머스 혼자 놀기의 달인 https://school.programmers.co.kr/learn/courses/30/lessons/131130 로직 구현 열린 상자인지 아닌지 구분하기 위한, 입력값인 cards와 같은 길이의 open 생성 이후 순서대로 open을
풀스택 미니 프로젝트에서 회원가입 및 로그인 페이지를 맡게 되었다.눈에 보이는 디자인에 자신이 없어 구글링한 css를 가져왔고, 우리가 사용하고자 하는 방향대로 틀을 수정하는 데까지 어제 마쳤다.오늘 해당 틀에 기능을 실제로 구현하면서 값을 잘 읽어오는지 console
flask를 사용하여 app.py 내에서 서버를 다루는 중, 코드가 너무 길어져 blueprint로 역할에 따라 분할하게 되었다.쿠키를 까서 확인하는 함수를 분리된 파일에서 작성하고, 메인 파일에서 불러오려니 오류가 생겼다.메인 파일 내에 있는 login()함수와, 분
느슨한 타입(loosely typed)의 동적(dynamic) 언어변수는 특정 타입으로 할당되지 않는다.모든 타입의 값으로 재할당이 가능하다.JavaScript 형변환자바 스크립트의 형변환은 대부분 적절한 타입으로 자동으로 이루어진다. 위 코드에서 alert는 문자열을
생성요소 추가요소 삭제set 내 요소 확인set 내 개수반복set을 배열로 변환기본문자열을 돌며 가장 처음 찾은 한 번만 변경하고 종료모두 변경 옵션이 때에는, 기존 부분을 따옴표로 감싸지 않아야 함https://developer.mozilla.org/en-U
https://school.programmers.co.kr/learn/courses/30/lessons/17681문제 자체가 그렇게 어렵지 않았어서 코드는 금방 작성했다.그런데, 출력 결과가 항상 console.log("0" == true); //falsec
함수 파트를 일전에 공부한 적 있지만, 오늘 다시 들여다보니 잘 사용하지 않았던 내용들은 기억하지 못하고 있어 주기적으로 재정리가 필요할 것 같다.함수의 매개변수 앞에 마침표 3개를 입력하면 그 매개변수들이 배열로 들어온다. sample(1, 2) //1, 2 sa
매개변수로 전달하는 함수forEach()map()콜백 함수에서 리턴한 값들을 기반으로 새로운 배열을 만드는 함수filter()리턴하는 값이 true인 것들만 모아 새로운 배열을 만드는 함수단순한 형태의 콜백 함수를 쉽게 입력 가능function 키워드 대신 화살표(=>
지난 번에, 콜백 함수란 다른 함수에 매개변수로 전달하는 함수라고 읽었다.다른 책에 있는 표현이 더 정확한 것 같아 옮기자면, '다른 코드(함수 또는 메서드)에 인자로 넘겨줌으로써 제어권을 함께 위임한 함수'를 콜백 함수라고 한다.제어권을 넘겨받은 코드는 콜백 함수 호
함수와 객체(메소드)의 구분이 느슨한 자바스크립트에서, this는 실질적으로 이 둘을 구분하는 거의 유일한 기능이다.this는 기본적으로 실행 컨텍스트가 생성될 때 함께 결정된다.,바꿔 말하면, this는 함수를 호출할 때 결정된다.전역공간 전역 컨텍스트를 생성하는 주
공통점 : 미리 정의한 동작을 수행하는 코드 뭉치차이점함수는 그 자체로 독립적인 기능을 수행메서드는 자신을 호출한 대상 객체에 관한 동작을 수행this에는 호출한 주체에 대한 정보가 담긴다.어떤 함수를 메서드로서 호출하는 경우, 호출 주체는 함수명(프로퍼티명) 앞의 객
실행 컨텍스트 실행 컨텍스트는 실행할 코드에 제공할 환경 정보들을 모아놓은 객체이다. 자동으로 생성되는 전역공간과 eval을 제외하면, 우리가 실행 컨텍스트를 구성하는 방법은 함수를 실행하는 것 뿐이다.
식별자의 유효범위를 안에서부터 바깥으로 차례대로 검색해나가는 것을 말한다.이것을 가능하게 하는 것이 바로 LexicalEnvironment의 두 번째 수집 자료인 outerEnvironmentReference이다.outerEnvironmentReference는 현재 호
여러 자료를 다룰 때 사용하는 데이터 타입이다.배열은 객체를 기반으로 한다.배열은 인덱스로 각 요소에 접근하는데, 객체는 키로 접근한다는 점이 다르다.위의 코드처럼 객체의 각 키:값 쌍은 쉼표(,)로 연결해서 입력할 수 있다.배열처럼 대괄호(\[])로도 속성에 접근할
위와 같이 prototype 객체에 속성과 메소드를 추가하면 모든 객체(와 기본자료형)에서 해당 속성과 메소드를 사용할 수 있다.소수점 이하 몇 자리까지 출력할지 결정할 때 사용한다.toFixed(2)이면 소수점 이하 2자리, toFixed(3)이면 소수점 이하 3자리
n
프로그램 실행 전에 발생하는 오류 (구문 오류)프로그램 실행 중에 발생하는 오류 (예외, 런타임 오류)문자열을 열었는데 닫지 않았거나, 괄호의 짝을 맞추지 않는 경우 등에 발생한다.코드가 분석되지 않기 때문에 실행 되지 않는다.식별자에 오타가 있는 등의 경우에 발생한다
DB 조회 시, 조건을 주고 싶을 때에는 where특정 필드에 대한 설정은 attribute하나하나 주석을 넣어주기 귀찮아 찾아본 Swagger autogen 사용법root 디렉토리에 하단 내용으로 생성하단 코드를 app.js에 추가시킨다.아직 서버가 안 돌아가고, 빨
include를 사용하여 테이블을 조인하는데, 메인 테이블이 아니라 조인되는 테이블의 특정 컬럼을 바탕으로 정렬을 할 필요가 있었다.조건 내부의 order 내에 이중배열 형태로 전달해주면된다.위 코드에서 예를 들자면, order: \[\[Post, "likes", "D
.
도메인 도메인 대부분의 개발자는 비즈니스 프로세스를 개선하거나 자동화하기 위해 일한다. 도메인은 이런 프로세스가 지원하는 활동을 말한다. 예시 구현해야 할 소프트웨어의 대상 한 도메인은 하위 도메인으로 세분화 가능 메인 도메인 : 쇼핑몰 하위 도메인 : 주
기술 매니저님이 레이어를 잘못 나누셨다고 피드백 주셨다 두둥...나누면서도 이게 아닌 것 같은데 싶었는데 그게 어쩜 딱 떨어지더라~다시 정리해본다controller - 요청과 응답만 다룬다!service - 실질적인 로직이다repository - DB와 일한다나는 co
캡슐화, 다형성, 클래스 상속을 지원하는가?데이터 접근 제한을 걸 수 있는가?만족하면 객체 지향적, 만족하지 않으면 절차 지향적이라고 한다.개념적으로나 물리적으로나 객체 내부의 세부적인 사항을 감추는 것정보 은닉, 변경하기 쉬운 객체 생성을 위해 캡슐화를 진행한다.상위
위와 같은 코드에서는 굳이 return이 필요 없다!테스트 코드를 짤 때, 위같은 상황에서의 return 때문에 골머리를 좀 앓았는데, 굳이 쓰지 않아도 된다.그러면 console을 찍었을 때 undefined로 출력된다!!!굳이 return해서 이게 빈 객체일까 un
.
위 코드처럼 .set 뒤로 'Cookie'에 (주의! C가 대문자) '키값=밸류값'으로 할당해주면 된다. 그럼 원래 코드드에서 형태로 읽을 수 있다!
new Error('내용')으로 에러를 생성하면 에러의 name은 무조건 Error, 에러의 message는 내용으로 결정된다.에러.name 혹은 에러.message를 직접 변경하는 경우, 에러를 직접 콘솔에 찍어도 처음 생성했던 상태대로만 출력된다.하지만 .toStr
https://velog.io/@jyo\_\_\_\_c/TIL221216위 글에 이어서...new Error()로 만든 커스텀 에러를 한 번도 출력하지 않은 상태로 name과 message를 바꾼 후에 console.log를 출력하면, 바꾼대로 잘 출력되는 결
미니 프로젝트 중간 피드백을 받던 중, 없는 게시글에 접근을 시도하려고 했을 때의 에러 메시지를 404로 내려주는 게 맞냐는 매니저님의 질문이 있었다.당연히 없는 페이지면 404가 아닌가?라고 생각했었다.404 Not Found서버는 요청받은 리소스를 찾을 수 없습니다
에러 처리를 하긴 했는데 아무리 생각해도 찝찝하다...바디에 담긴 데이터가 아니라 url을 통해 들어온 쿼리스트링이 잘못되었는데 같은 에러 메시지를 보낸다니...똑같이 joi를 쓰더라도 에러를 나눌 수 있는 방법이 없을까ㅠ서치의 부재였는지 아직 답은 못찾았다찾아두면 나
참고자료 https://www.vompressor.com/code-server-nginx/우선 진행 후 상기 링크 따라했다.nginx 설치 후, 기본 설정 제거는 따로 해주진 않았다.해서 도메인 접속해 확인한다.sites-enabled에 default 파일 있
js로 구현하는 예제는 많은데 그대로 따라가려니 typescript 에러가 많이 떠서 생각보다 꽤 오래 헤맸다...로컬 환경에서 테스트 완료한 기반 코드를 기록해둔다.
한 테이블에서 같은 필드를 다른 테이블에서 여러 필드에 참조하고 싶었다.User 테이블의 userId를 Chat 테이블의 Sender와 Owner에게 할당하는 방법을 찾아보았다.기존에 하던대로 @relation을 정의해주었지만 제대로 인식하지 않았다.찾아보던 중, Us
이전에 https 배포와 관련해서 nginx 설치하고 설정하는 글을 쓴 적이 있다.https://velog.io/@jyo\_\_\_\_c/TIL221227그런데 위 글 중에서 이 부분여기! 틀린 것 같다...설정 파일 제거해주었고, 참고한 링크에서 시키는 대로
깃허브 액션을 설정하면서 만난 오류들 해결 방법을 개인적으로 기록한다.detected dubious ownership in repository at '/home/\*\*\*/\*\*\*'에러와 함께 해결 방법 역시 출력된다.insufficient permission f
깃허브 액션을 설정하기 위해 .yml파일 내용을 변경할 때마다 권한이 거부되어 액션이 실행되지 않는 사태가 발생했다. 이를 해결하고자 script에 yml 파일의 권한을 변경하는 설정을 해주었는데, 이번에는 그 외에 아무 변경점이 없음에도 불구하고 변경 사항이 감지된다
REST란?HTTP URI에 자원을 명시하고, HTTP 메소드를 통해 해당 자원에 대한 CRUD 작업을 적용하는 것REST API란?API는 요청과 응답으로 두 애플리케이션이 정해진 양식에 맞춰 통신하는 것을 말한다.REST API는 REST를 기반으로 작성된 API이
DI(Dependency Injection) 란?외부에서 두 객체간의 관계를 결정하는 디자인 패턴이다.클래스 레벨에서는 의존관계가 고정되지 않도록 하고 인터페이스에만 의존한다.런타임 시점에서 의존관계가 외부에 의해 결정된다.의존성 주입의 장점긴밀한 의존 관계가 있는 경
DB에서 인덱스를 잘 사용하면 어떤 장점이 있을까요?DB의 인덱스란, 조회의 성능을 높이기 위해 사용하는 장치이다.조회가 일어날 수 있는 컬럼을 따와 정렬한 상태로 보관하고 있는다.원래는 백만 개의 데이터가 보관된 DB에서 특정 필드가 100인 데이터를 찾아낸다고 할
MSA란?모든 구성요소를 한 프로젝트에 통합하여 하나의 패키징으로 배포하는 형태인 Monolithic Architecture와는 달리 서비스를 작게 나누어 연결한 구조를 말한다.구조가 나뉘어 있어 일부분만 업데이트가 가능해 유연하다는 특징이 있다.분리되어 있기 때문에
제네릭이란?클래스나 메소드 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법을 말한다.컬렉션이란?배열은 삽입 삭제가 불편하고, 고정 길이라는 특성 때문에 데이터의 크기를 예측하기 힘든 경우에는 사용이 어렵다.이런 단점을 극복하기 위해 사용하는 것이 가변 길이의 컨테
순서 있음중복 가능인덱스를 통한 접근 가능순서 없음Key 중복 불가능, Value 중복 가능Key와 Value가 쌍으로 저장되는 특징순서 없음중복 불가능기본적으로 Map의 특성해싱된 key를 가지므로 검색 속도가 매우 빠름
Parameter와 Argument의 차이Parameter는 매개변수, Argument는 인자로 해석된다.parameter는 함수나 메서드를 정의할 때 사용되는 변수의 이름을 뜻한다.argument는 그렇게 정의된 함수나 메서드를 호출할 때 이 변수에 넘겨줄 실제 값이
프로세스와 스레드의 차이프로세스는 실행되고 있는 프로그램을 말한다. 각 프로세스는 실행에 필요한 주소공간, 메모리 등을 다른 프로세스와는 독립적으로 할당받는다.스레드는 프로세스가 갖는 실행의 흐름이다. 프로세스는 최소 하나의 스레드를 갖게 된다. 스레드들은 프로세스의
@SpringBootTest와 @WebMvcTest의 차이점은?@SpringBootTest의 경우에는 프로젝트의 전체 컨텍스트를 로드하여 빈을 주입한다.이러한 점 때문에 속도가 느리지만 통합 테스트를 진행하는 경우에 주로 사용한다.@WebMvcTest는 슬라이스 테스트
트랜잭션이란?트랜잭션은 더이상 쪼개면 안 되는 DB 작업 흐름의 한 단위를 말한다.트랜잭션에는 네 가지 원칙이 있다.원자성이라는 것이 바로 트랜잭션의 '쪼개면 안 되는'의 성질을 말한다.하나의 트랜잭션이 실행되다가 어떤 작업에 이슈가 생긴다면 그 작업 뿐만 아니라 해당
TCP와 UDP의 공통점?인터넷 통신에서 데이터를 주고 받기 위한 방법이다.패킷의 형태로 데이터를 송수신한다.TCP와 UDP의 차이점?TCP는 상호 연결이 필요하다. 데이터 전송 전에 연결을 시도하고, 연결이 되었다는 확인이 필요하다.데이터를 주고 받을 때, 패킷에 약
웹 서버와 WAS의 차이점?웹 서버클라이언트가 웹 브라우저에서 어떤 요청을 했을 때, 그 요청을 받아서 정적인 컨텐츠를 제공하는 서버를 말한다.만일 동적인 컨텐츠를 요청받는 경우에는 직접 처리하지 않고 WAS에 해당 요청을 넘긴다.WAS가 처리한 결과를 받아 다시 클라
Stack과 Queue먼저 들어간 데이터가 더 나중에 나오는 형태의 자료구조긴 원통을 세워놓고 위에서 넣고, 위에서 빼내는 모양을 생각하면 쉽다.브라우저에서의 뒤로가기나 포토샵 등의 실행취소가 stack 구조이다.데이터를 삽입한 순서대로 사용할 수 있는 형태의 자료구조
절차지향 프로그래밍?말 그대로 '절차'를 중심으로 하는 프로그래밍 방법일이 진행되는 순서대로 코드를 작성하면 됨장점코드가 읽히는대로 실행되기 때문에 가독성이 좋을 수 있음컴퓨터의 처리구조와 비슷하기 때문에 실행 속도가 빠름단점코드끼리의 의존성이 높음앞 순서가 일어나면
시간복잡도는 어떤 문제를 해결하기 위하여 짜여진 로직이 수행되는 데에 걸리는 시간이다.절대적인 시간이라기 보다는 연산의 횟수를 나타내는 것이 조금 더 정확하다.시간 복잡도가 낮은 알고리즘이란, 값이 큰 데이터를 처리하게 되더라도 그 결과값을 빠른 시간 안에 내놓을 수
다형성을 구현할 수 있는 방법이다.오버로딩같은 이름의 메소드가 여러 개 있는 것매개변수의 자료형이나 개수가 다른 것으로 어떤 메소드를 호출해야 하는지 구분할 수 있음오버라이딩상위 클래스가 가진 메소드를 하위 클래스에서 아예 재정의하는 것내용을 덮어씌움
RDB관계형 데이터베이스를 의미사전에 엄격하게 정의된 DB 스키마를 요구하는 테이블 기반 구조특징명확한 데이터 구조가 보장됨데이터의 중복이 발생하지 않아 create, update에 유리확장은 다소 어려움undo, redo가 가능NoSQL비관계형 데이터베이스데이터 중복
순차적인 직렬 프로그램을 분할하고, 그 분할된 단위를 병렬로 수행하여 성능을 향상시키는 프로그래밍 기술직렬 프로그램에서 병목 현상이 발생하는 부분을 찾아병렬화가 가능한지 의존성 여부를 분석하고가능하다면 병렬화 패턴을 결정한 후실제로 병렬 프로그래밍을 구현위와 같은 순서
polling일정한 주기로 클라이언트가 서버에 requeest를 보냄불필요한 request가 많아질 수 밖에 없음요청 주기가 짧으면 실시간처럼 보일 수도 있으나 실제 실시간은 아님주기가 짧을수록 서버 부하가 커짐long pollingpolling이지만, 요청에 대한 응
Elastic Search는 검색, 분석을 위한 엔진맨 꼭대기에 있는 cluster, 그 아래로 각 실행흐름인 node, 그 아래 RDB의 테이블과 비슷한 개념으로 생각할 수 있는 index가 존재클러스터는 여러 개가 존재할 수 있으며, 각 클러스터가 논리적으로 분리됨
Async search 오래 걸리는 query나 aggregation에 대해 진행 상황을 모니터링 하거나 부분적인 결과 상황을 확인할 때 사용
개념 추가 클러스터, 노드는 논리적인 개념이지 물리적인 개념이 아님 한 서버에 노드를 여러 개 올릴 수 있지만 서버 스펙이 좋아도 하나만 올릴 것이 권장됨 => 디스크를 공유하는 데에 있어서 속도가 영향을 받음 Shard 샤드는 Lucene의 한 인스턴스이다 = 샤드
mapping에서 분석기 만들어놓고, 필드 타입이랑 분석기를 지정해 줬는데도 document를 넣으면 keyword랑 다를 바 없이 "We love X-Pack"가 그대로 저장되는 것을 확인=> 우리한테 보여줄 때에는 그렇게 보이고, analysis는 내부적으로 실행되
\_source는 따로 설정해주지 않으면 default로 원본 자료의 모든 필드가 이 안에 담겨서 출력"\_source": \["필드명", ...]으로 어떤 필드만 담을지 선택할 수도 있음"\_source": false로 설정하면 해당하는 document의 인덱스 명과
5.3의 5번 solutionmoving_fn이 어떤 역할을 하는지 잘 모르겠음6.1의 7번 solution=> node 3번이 보이지 않음primary 1, 2번이 각각 node1, node2에 배치된것은 확인했는데,replicas는 왜 모두 unassigned인지
aliases 실습 과정 중에서 궁금한 점이 생겼다.위 코드를 순서대로 실행하면, 현재 write 설정된 인덱스는 2초간만 유효하기 때문에 바로 다음 넘버링 인덱스가 생성된다.그런데 이 설정이 계속 유지되는 건 아닌지 다음 넘버링이 나는 2초마다 생길 줄 알았는데, 한
1.2장 solution2번답안에는 PUT으로 되어있는데, POST로 작성해도 문제 없이 돌아가긴 함t2_my_index에서 자료를 보면 하나밖에 안 들어있는데, Index Management 메뉴에서 보면 document가 2개로 뜸하나는 뭘까?blogs 인덱스도 자
constant keyword 필드를 data stream 인덱스에 설정해두면 rollover 될 때마다 가장 처음 들어오는 document에 의해 그 값이 결정됨default로 rollover 되어도 같은 값을 유지하게 할 수 있음\-> 모든 인덱스가 같은 값을 가진
highlight내에서 pre_tags, post_tags로 사용할 태그를 지정할 수 있음\[]로 감싸져 있어서 여러 개의 태그를 담을 수 있을 것이라고 생각했고, 아래처럼 작성해봄그런데 여전히 결과는 <strong>, </strong> 태그로만 감싸져 나오
5.2장 solution 5번runtime이라고 이름을 붙인 aggregation의 결과를 보면, runtime 내에 values가 있고, 또 이 내부에 50.0과 그 결과가 있는 구조임이 결과를 활용해서 정렬을 진행하는 것이 문제의 핵심인데, request를 보면 r
조건에 맞추어 User와 Role 설정하는 문제lab에서 실습하지 않은 내용이지만, 키바나 잘 확인하면 무리 없이 작성 가능query를 사용해 범위를 좁히고, 중첩 구조의 aggregation을 진행하는 문제lab에서 진행하던 것과 상황 설정만 다를 뿐, 거의 같음dy
설정한 role과 user는 어떻게 테스트 할 수 있는지 질문할 것user 생성 시, role을 여러 개 선택할 수 있는 것 같던데 선택한 role 사이에 권한이 충돌하면 어떻게 되는지?task1_role : 문제 조건에 맞는 role 설정task1 이외의 모든 인덱스
작성 후 날리는 쿼리문에서, index를 생성만 한다고 치면 PUT이 맞는데, 생성과 동시에 데이터를 인덱싱 하려면 POST가 맞지 않나 의문또, 따로 타입을 지정하라는 요구사항이 없는데 mapping을 내가 작성해두는게 맞을지?mapping은 source index
Header 해당 문서는 아래 공식 문서를 정리한 내용임 https://www.elastic.co/guide/en/elasticsearch/reference/7.16/modules-cluster.html 샤드 리밸런싱 클러스터의 어느 노드에도 샤드가 몰려있지 않고