git ssh로 받은 프로젝트를 https 방식으로 변경하기.

IT 지식/Git|2019. 3. 20. 21:19

회사에서 ssh 방식으로 git을 사용하고 있었으나 정책상 ssh가 막혀서 https로 전환해야 했다.


근데 사실 ssh로만 주로 사용했지 이를 바꿔서 진행해본적이 없어서 난감했다.(기존에 작업중이던거 어떻게 ...)


그래서 알아보던중 같은팀 개발자분이 힌트를 주셔서 그대로 해보니 해결되었다. ㅋㅋ


간단하게 정리해보자.


- 프로젝트 내에 .git의 config파일 열어서 수정

터미널을 이용하든 편집기를 이용해서 config파일을 열어본다.

그럼 밑줄 친 부분과 같이 ssh주소로 되어있는데 이를 repository의 https 주소로 바꿔주고 저장한다.


그리고 다시한번 git 명령어를 시도해보면 다음과 같이 계정 정보를 입력하라고 나오는데 이곳에는 해당 레포지토리가 있는 github이나 gitlab의 계정정보를 입력하면된다.


그럼 끝!

아주 간단하다.


댓글()
  1. 지지리 2019.08.04 21:44 댓글주소  수정/삭제  댓글쓰기

    좋은 정보네요

Elasticsearch에서 Paging시 max_result_window 초과시 조회가 안되는 이슈

엘라스틱 서치에서 데이터를 paging 하여 조회할때 from과 size를 사용한다. 

from은 시작 지점을 이야기하고 size는 그 시작 지점으로 부터 몇 개의 데이터를 보여주어야 하는 건지 설정할 때 사용 되는 값이다. 그래서 계산 방법은 다음과 같다.

from : (page - 1) * size 

size : size


그럼  만약 3개씩 보여주는 페이지에서 2번째 페이지를 보여주기 위해서는 from은 3, size는 3으로 설정하면 된다.

1
2
3
4
5
6
7
8
9
GET wedul/_search
{
  "from": 3, 
  "size": 3, 
  "query": {
    "match_all": {}
  }
}
 
cs


그럼 만약 wedul 페이지를 접근하다가 다음과 같이 Document의 숫자가 10000을 넘어가게 되면 어떻게 될까? 쿼리를 사용해서 조회를 해보자.

1
2
3
4
5
6
7
8
9
GET wedul/_search
{
  "from": 9999, 
  "size": 3, 
  "query": {
    "match_all": {}
  }
}
 
cs


정상적인 결과가 나오지 않고 query_phase_execution_exception에러가 발생하고 다음과 같은 에러문구를 출력한다.

1
Result window is too large, from + size must be less than or equal to: [10000] but was [10002]. See the scroll api for a more efficient way to request large data sets. This limit can be set by changing the [index.max_result_window] index level setting.
cs


이유가 몰까? 이유를 잘 몰라서 엘라스틱 서치 공식홈페이지 문서를 뒤져봤다. 

엘라스틱서치에서 인덱스를 생성할 때 기본적으로 하나의 노드에 5 섯개의 shard가 생성되고 그 shard는 데이터를 나누어서 저장한다. 물론 그 데이터를 복제하고 있는 primary shard도 1로 설정되는데 이는 primary shard가 한개라는 뜻이 아니라 각 shard 마다 복제 shard가 한 개씩 존재한다는 의미이다, 

다시 본점으로 돌아가서 노드에 분리되어있는 파티션 shard들에 데이터가 분산되어 들어간다. 그래서 만약 5섯개의 shard가 있는 노드에 위치한 index에서 1 ~ 10 개의 데이터를 찾는다면 각 shard에서 10개의 데이터를 찾고 모아서 정렬작업을 한 후 50개의 데이터에서 1 ~ 10까지의 데이터를  반환한다.

그럼 10000개의 데이터라면? 각 shard에서 10000개의 데이터를 가져와서 모으고 그것을 정렬할 것이다. 그래서 총 50000개 이상의 데이터를 모아야 하고 그것을 정렬해야하기 때문에 성능적인 문제를 야기할 수 있다. 그래서 엘라스틱서치의 기본 검색 제한 document의 값은 10000이고 이 설정값 이름은 max_result_window이다.

이 값은 아래의 쿼리를 사용해서 원하는 대로 50000까지 설정할 수 있다. 하지만 근본적으로 10000을 넘게 조회하게되면 많은 리소스 사용으로 성능문제를 야기할 수 있기 때문에 함부로 설정값을 바꿀것이아니라 검색을 10000개가 한번에 되지 않도록 검색조건을 잘 분할해서 지정해야한다.

1
2
3
4
PUT your_index_name/_settings
  "max_result_window" : 500000 
}
cs


참조 

https://www.elastic.co/guide/en/elasticsearch/guide/current/pagination.html

https://www.elastic.co/guide/en/elasticsearch/guide/current/_fetch_phase.html

댓글()

Spring에서 task executor를 사용하여 비동기 설정시 xml 오류 해결

web/Spring|2018. 6. 19. 21:39

Spring에서 Async 개발을 진행하기 위해서 task executor를 사용해야했다.


그래서 servlet-context.xml에 task-executor 관련 내용을 쓰겠다고 설정하려고 하였다. 설정내용은 다음과 같았다.


1
2
3
4
5
6
7
8
9
10
11
12
xmlns:task=http://www.springframework.org/schema/task
 
 
// xsi:schemaLocation 
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-4.1.xsd
 
// pool 사이즈 설정
<task:executor id="myexecutor" pool-size="5"  />
<task:annotation-driven executor="myexecutor"/>
 
 
cs


다음과 같이 설정을 진행하였는데, cvc-complex-type.2.4.c: The matching wildcard is strict... 와 xml document from servletcontext resources context initialization failed, no declaration can be found for element 'task:executor' 와 같은 오류가 발생하였다.


이는 삽질을 하였는데 문제는 위에 코드 내용에서 6번째 라인에 있었다.

6번째 라인에 spring-task-4.1.xsd 부분이 문제였는데 spring 버전이 3.2 인데 task 버전이 4.1로 기재해서 문제가 발생했다.


다음과 같이 변경해주니 문제가 해결되었다.  


1
http://www.springframework.org/schema/task/spring-task-4.1.xsd
cs


댓글()

Mybatis에서 쿼리 작성 시 부등호 사용하면 발생하는 Error 수정

web/Spring|2018. 6. 12. 13:36

Mybatis에서 사용하는 쿼리중에 < > 와 같은 부등호가 들어가게 되면 에러가 발생한다.


[에러내용]

"The content of elements must consist of well-formed character data or markup."


이를 해결하기 위해서는 부등호를 사용하는 쿼리는 

<![CDATA[ ]]>을 감싸주어야 한다.


1
2
3
4
5
6
7
8
9
10
<select id="test resulttype="dto">
<![CDATA[
SELECT
    jumin
FROM
    member
WHERE 
    id > 1
]]>
</select>
cs


댓글()

webpack 모듈 실행시 babel waring 문제 수정

web/webpack|2018. 6. 8. 22:16

어느 순간 webpack으로 모듈화를 진행하는 도중에 다음과 같은 경고가 발생했다.


[BABEL] Note: The code generator has deoptimised the styling of "/Users/jeongcheol/Documents/workspace/wedulpos/src/main/front/lib/fontawesome/js/fontawesome-all.min.js" as it exceeds the ma

x of "500KB".


그냥 단순 경고라고 생각해서 크게 생각하지 않고 넘겼는데, 자꾸 나타나서 알아보았다.


[원인]

 이것은 "불필요한 공백 문자 및 줄 종결자를 포함하지 말라"는 Babel 컴파일러의 compact 옵션과 관련된다. 그래서 이를 해결하기 위해서는 babel의 compact옵션을 꺼주면 해결된다.



loaders: [
    { test: /\.js$/, loader: 'babel', query: {compact: false} }
]


댓글()
  1. ymkang 2019.12.18 16:28 댓글주소  수정/삭제  댓글쓰기

    좋은 정보 감사합니다 ㅎㅎ

Git Atom에서 Merge 오류

IT 지식/Git|2018. 5. 27. 21:23

git에서 master에 브랜치를 merge하려고 할 때 다음과 같은 오류가 발생했다.

[명령어]
git checkout master 
git merge {branch이름}


[결과]
cannot stat ' ' : Permission denied

[해결방법]
Atom에서 terminal을 이용해서 작업을 해서 그런 것 같다. Atom을 끄고 진행하니 정상적으로 동작하였다.

댓글()