오프라인상태 windows server에서 redis설치.

서버:  windows Server 2019

1. WSL 활성화

1.1 wsl 활성화 :  dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

1.2 vm 활성화: dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

1.3 윈도우 서버 재부팅

2. Ubuntu 설치(Ubuntu_2204.1.7.0_x64)

2.1 Ubuntu_2204.1.7.0_x64.appx -> Ubuntu_2204.1.7.0_x64.zip 확장자 변경 및 압출풀기

2.2 Ubuntu_2204.1.7.0_x64/Ubuntu.exe 실행

2.3 Ubuntu 계정설정

3. Ubuntu 파일 옮기기

3.1 /home/{user}/redis에 redis-stable.tar.gz파일 복사(cli에서 explorer.exe . 실행 시 ubuntu 폴더 열림)

3.2 \var\cache\apt\archives 에 .deb파일 복사(.deb파일은 인터넷되는 pc에서 redis 설치 진행 과정 그대로 따라한 후 \var\cache\apt\archives  폴더에 생성되는 .deb 파일 모두 복사해서 offline windows server로 가져온 상황)

3.3 Ubuntu 재기동 후 redis-stable.tar.gz 및 archives 파일 정상 접근가능한지 확인 및 권한주기

3.4  \var\cache\apt\archives경로에서 dpkg -i *.deb(패키지 수동설치) 

4. Redis 설치

4.1에서 압축을 푼  /home/{user}/redis/redis-stable 경로에서 make명령어 수행(/home/{user}/redis/redis-stable/src를 complile. 이때 필요한 ubuntu package는 make, build-essential)

4.1.1 make 명령어 안되는 경우 make 패키지 제대로 설치 x

4.1.2 make 명령어 수행중 adlist.o 오류 -> gcc 패치키 제대로 설치x

4.1.3 make 명령어 수행중 jemalloc 오류 -> make distclean 실행 후 make 명령어 재실행

4.2 /home/{user}/redis/redis-stable/utils경로에서 sh install_server.sh 실행

4.2.1 셋팅값 설정(전부 default. executable path  아래 경로 설정해줌)

Please select the redis port for this instance: [6379]

Please select the redis config file name [/etc/redis/6379.conf]

Please select the redis log file name [/var/log/redis_6379.log]

Please select the data directory for this instance [/var/lib/redis/6379]

Please select the redis executable path [] /home/{user}/redis/redis-stable/src/redis-server

5.Redis실행

/redis/redis-stable/src경로 redis-server 실행

 

프로젝트 초기 셋팅을 위해

yarn intall --offline 진행 중 unable to verify the first certificate 오류 발생

yarn-error.log 내용

 Error: unable to verify the first certificate

      at TLSSocket.onConnectSecure (_tls_wrap.js:1501:34)

      at TLSSocket.emit (events.js:315:20)

      at TLSSocket._finishInit (_tls_wrap.js:936:8)

      at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:710:12)

 

해결방법

yarn config set strict-ssl false -g 

프로젝트 중 

소스에 이상이 없는데 0 line

Internal compiler error: Classcast exception에러가 뜬다. 

내가 알아본 결과는 lombok과 eclipse사이의 호환성 문제였다.

해결책1. lombok버전 맞추기 ex) 1.16.20 -> 1.16.18

해결책2. @Getter, @Setter등 lombok 어노테이션 제거. 특히 @Getter, @Setter관련 문제라 @Data로 바꾸면 된다는 글도 있었지만, 해당 소스 담당자는 Getter, Setter를 직접 선언해서 했다.

 

if (list != null || list.size() > 0) {

 ...

} else {

 ...

}


프로젝트중 이런 코드를 사용하는 것을 발견...

list의 null여부를 체크하고 있는데, 위의 코드는 list가 []로 선언되어 있으면, 뒤의 list.size() > 0 조건은 판단하지 않고, true영역의 코드를 실행 시킨다.

이미 알고는 있었지만, 이를 단축평가(short-circuit)라고 부르는지는 처음 알았다.

결과적으로,

OR연산자를 사용할 땐 true를 리턴할 가능성이 높은 조건을 첫 번째로 작성하고,

AND연산자에선 false를 리턴할 가능성이 높은 조건을 조건을 첫번째로 작성하면 좋다.


이를 이용해 이런식으로도 표현 가능


return name || "없으면 이것";


|| 로 묶여 있어서 앞의 name이 존재한다면 name을 return하고, 뒤의 조건은 신경쓰지 않는다.

name이 없으면 뒤의 string은 무조건 true이므로 "없으면 이것"을 반환한다.



엘리먼트를 조건부로 표시하기 위한 또 다른 옵션은 v-show 디렉티브이다. 사용법은 v-if와 거의 동일

차이점은 v-show가 있는 엘리먼트는 항상 렌더링 되고 DOM에 남아있다.

v-show는 단순히 엘리먼트에 display CSS 속성을 토글한다.

일반적으로 v-if는 토글 비용이 높고 v-show는 초기 렌더링 비용이 더 높다. 

매우 자주 바꾸기를 원한다면 v-show를, 런타임 시 조건이 바뀌지 않으면 v-if

함수 하나가 하나의 기능만 담당.

ex) input 내용입력하고 추가 버튼에서 addInputContents를 하고, input을 비워주는 input = "'을 만들 수 있다.

하지만 단일 책임 원칙 디자인 패턴에 의해 input=""대신 clearInputContents라는 메소드를 만들어 디자인 패턴을 만족 시킬 수 있음.

사실상 내가 줄 수 있는 정보는 3가지이다.

1. 자신감 - 일단 컴퓨터 뭐 별거없다. 부품들 사서 선 연결하고, 나사만 조이면 된다. 

2. 싸게 맞추기 - 다나와 사이트에서 각 부품을 개별적으로 검색해서 사면 싸다. 

3. 생각보다 돈이 더 많이 든다 - 본체만 필요한게 아니라면 추가비용이 엄청 든다.

 

자신감

나는 컴덕마냥 컴퓨터관련 지식이 엄청 많은 편이 아니라, 혼자 셀프 조립을 하는 과정에서의 꿀팁을 소개한다.

일단 컴퓨터 뭐 별거없다. 부품들 사서 선 연결하고, 나사만 조이면 된다.

그냥저냥 게임 and 코딩용으로 조립 컴퓨터를 맞추게 되었다.

꼭 필요한 것 : 케이스, 메인보드, CPU, 케이스, 램, SSD, 그래픽카드(CPU에 내장그래픽 있으면 없어도 됨.)

  1. 케이스 뜯고.
  2. 메인보드에 cpu, 쿨러, SSD(m.2 NVMe) 장착하고.
  3. 케이스에 메인보드 장착하고.
  4. 메인보드에 그래픽카드 장착하고, 케이스에 고정시키고
  5. 파워 관련 케이블, 케이스 관련 케이블 메인보드에 꽂으면 끝난다.

 일반적인 컴퓨터는 이 프로세스를 벗어나지 않는다. 큰 프로세스를 기억하고, 중간에 헷갈리면 유뷰브나 구글 검색을 조금만하면 쉽게 조립할 수 있다. 특히 요즘은 유튜브에서 조립하는 영상이 많아서 각 부품별 조립법을 쉽게 확인할 수 있다. 

추가로 나도 위와 같은 방식으로 조립을 했는데 어려움을 겪은 부분이 몇가지 있다.

  • 케이스 나사조이기 - 괜찮은 드라이버를 꼭 마련해 두자. 케이스 설명서에 있는 나사 구분 설명서를 꼭 보자. 안그럼 나사를 계속 뺏다 꼇다를 반복한다.
  • 파워 연결하기 - 기본적으로 선이 엄청 많고, 헷갈린다. 하지만 원리는 거~의다 똑같기 때문에 침착하고 자기 자신의 PC부품에 필요한 전원들을 연결해 주면 된다. 메인보드, 그래픽카드, 하드 등 자기 PC에 전기가 필요할 것 같은 것들(?)에 연결하자.
  • 선 정리 - 이 부분은 하면 할 수록 늘기 때문에 처음엔 그냥 할 수 있는 정도로만 하면 될 것 같다.

 

싸게 맞추기

조립에 필요한 PC부품을 다나와PC에서 개별적으로 검색해서 사면 훨씬 싼 가격에 살 수 있다. 나는 7개 필수 부품 중 CPU, 그래픽카드만 다른 곳에서 별도로 주문해서 5만 원정도의 돈을 세이브 했다. 시간이 조금 널널하거나, 가장 싼 가격에 PC를 맞추고 싶다면 나머지 부품들 모두 이런식으로 구매한다면 적어도 내가 산 부품기준 8만원 이상 아낄 수 있다.

  • CPU - AMD 라이젠 5 3500X
  • 메인보드 - ASUS EX A320M-GAMING 대원CTS 
  • RAM - 삼성전자 DDR4 8G PC4-21300 (정품)
  • 그래픽카드 - 이엠텍 지포스 GTX 1660 SUPER STORM X Dual OC D6 6GB (ZOTAC, PALIT, 갤럭시 상관없음)
  • SSD - 삼성전자 PM981a M.2 2280 병행수입 (512GB) SSD 삼성전자 (NVMe m.2가 수치상 SSD보다 훨씬 빠르다)
  • 케이스 - ABKO NCORE 아수라 풀 아크릴 (블랙)
  • 파워 - 마이크로닉스 Classic II 600W +12V Single Rail 85+

다나와에서 내가 산 부품들 견적 - 94만원

 

cpu, 그래픽카드만 따로주문. 나머지는 다나와에서 주문 -  86만원

*나는 부품산지 1~2주 밖에 안됐는데 가격차이가 심해서 8만원 차이난다. 여튼 내가 샀을 때 기준 나는 거의 5만원 정도 아낌.

 

생각보다 돈이 더 많이 든다.

본체만 필요한게 아니라면 추가비용이 엄청 든다.

나 같은 경우도 80~90으로 컴퓨터를 맞추려했다. 하지만 모니터(32), 키보드(6), 마우스(2), 모니터 케이블 등 추가적으로 돈이 들어가서 120 이상 써버렸다.

 특히 모니터의 경우 가격이 매우 비싸기 때문에, 컴퓨터를 맞출 경우 자금을 잘 맞춰놔야 무리없이 진행할 수 있다.

완성하고 대충 연결만 해본 상태.

 

 

springBoot프로젝트를 진행하다가 임시 서버로 가동하는 노트북에 web Access를 할 일이 있었다.

방화벽도 풀고, 이것저것 설정을 다했는데 사이트에 연결할 수 없음(localhost에서 연결을 거부했습니다.)이 뜬다.

이 경우 프로젝트에서 오류Log도 뜨지 않아서 어디가 문제인지 몰랐다.

그러다 localhost:8080를 지우고 127.0.0.1:8080으로 접속했는데 거부당해서 방화벽 문제가 아닌것을 알았다.

문제는 application.yml의 server.address 설정 문제였다.(일반 스프링 프로젝트에서는 tomcat 설정파일에 있음.)

여기에 localhost라고 선언을 했기 때문에 같은 의미인 127.0.0.1:8080은 접속이 안됐다.

만약 127.0.0.1로 접속하려면 server.address를 127.0.0.1로 바꿔 줘야 한다. 

혹은 다른 노트북에서 접근하려면 localhost, 127.0.0.1가 아닌 자신의 ip주소를 적어주면 된다.

+ Recent posts