'ITWeb/개발일반'에 해당되는 글 489건

  1. 2021.02.03 [Intellij] 가끔 Dependency Lib 빨갱이 발생
  2. 2021.01.28 [Spring] Springboot @RestController 404 에러 발생 시
  3. 2021.01.27 [Gradle] Dependency Lib 이상 할 때.
  4. 2021.01.27 [Chrome] https 강제 리다이렉팅
  5. 2021.01.21 [IoT] 참고 문서 링크.
  6. 2020.10.22 [Python] pyenv 구성 하기 on Mac
  7. 2020.10.13 [Spring] WebSocket 관련 링크
  8. 2020.09.07 [Bootstrap] Nav 사용 시 Form 태그 위치 주의.
  9. 2020.08.04 [JSON] JSON.parse(), JSON.stringify()
  10. 2020.07.23 [Spring] Spring Security Session Timeout Disable.

[Intellij] 가끔 Dependency Lib 빨갱이 발생

ITWeb/개발일반 2021. 2. 3. 10:55

Intellij 를 이용해서 개발을 진행 하다 보면 가끔 dependency lib 설정과 다운로드가 정상적으로 되어 있음에도 불구 하고 관련 클래스를 못찾거나 lib 을 못찾을 때가 있습니다.

그럴 때는 그냥 리셋 한번 하는게 맘 편할 때가 있습니다.

최근 제가 두 번이나 발생을 해서 기록해 봅니다.

 

[Gradle]
https://docs.gradle.org/current/userguide/what_is_gradle.html

.gradle 폴더 안에 들어 있는 것들 다 삭제 합니다.

 

[Maven]
https://maven.apache.org/what-is-maven.html

.m2 폴더 안에 들어 있는 것들 다 삭제 합니다.

 

:

[Spring] Springboot @RestController 404 에러 발생 시

ITWeb/개발일반 2021. 1. 28. 15:11

분명 유저 불량입니다.

보통 Annotation 선언하고 빨갱이도 없고 정상적으로 실행도 되었는데 REST API 호출 시 404 Not found 가 떨어 지는 경험을 해 보신 분들이 계실 것 같습니다.

 

특히 쥬니어 분들 중에 많을 것 같고요.

 

딱 봐도 Component Scan 이 정상적으로 되지 않았기 때문인데 코드를 보면 아무 문제가 없어 보입니다.

제가 본 이슈는 Main Application Class 파일의 위치가 잘못 되어 있는 것을 확인 했습니다.

 

tree 구조로 예를 들면) 틀린 예

ㄴ com.abc.app

MainApplication.java

ㄴ com.abc.api

ApiRestController.java

 

이렇게 되면 MainApplication 상위에 있는 class 는 scan 이 되지 않습니다.

반드시 MainApplication  하위로 패키지와 클래스를 이동 시켜 주셔야 합니다.

그게 아니라면 별도 @ComponentScan 이용해서 수동 등록을 해주시는 것도 방법 일 것 같습니다.

 

tree 구조로 예를 들면) 맞는 예

ㄴ com.abc.app

MainApplication.java

ㄴ com.abc.app.api

ApiRestController.java

 

:

[Gradle] Dependency Lib 이상 할 때.

ITWeb/개발일반 2021. 1. 27. 14:25

가끔 제 맥북만 이상 할 때가 있습니다.

그래서 간혹 dependency 오류가 발생을 하게 되면..

  1. cd ~/.gradle 에 들어가서 rm -rf * 로 받아 놓은거 삭제 합니다.
  2. 주의 해서 rm -rf * 하세요… ㅋㅋㅋ
  3. 해당 브랜치에 가서 git stash; git pull 해서 최신 코드로 유지를 시켜 주세요.
  4. gradle refresh 해주시면 됩니다.
:

[Chrome] https 강제 리다이렉팅

ITWeb/개발일반 2021. 1. 27. 12:38

http://DOMAIN:PORT 와 같이 접속 해야 할 일이 있는데 크롬에서는 강제로 https 로 redirect 시켜 버립니다.

아래 페이지에서 강제 redirect 를 해제할 도메인을 등록 하고 사용 하면 문제를 해결 할 수 있습니다.

 

chrome://net-internals/#hsts

 

왼쪽 메뉴에서 "Domain Security Policy" 를 클릭 합니다. (위 링크로 들어 가면 바로 나옵니다.)

본문 제일 아래 "Delete domain security policies" 에서 Domain 입력 후 Delete 버튼을 누르면 추가 됩니다.

 

버튼 이름이 Delete 라 이게 된게 맞아? 할 수 있는데 된게 맞습니다.

www.xxxxx.com  이면 xxxxx.com 을 입력

123.xxxxx.com 이면 123.xxxxx.com 을 입력

 

참 쉽죠.

:

[IoT] 참고 문서 링크.

ITWeb/개발일반 2021. 1. 21. 13:13

https://mosquitto.org/
https://ko.wikipedia.org/wiki/CoAP
https://ko.wikipedia.org/wiki/MQTT

 

Message Broker 로 Mosquitto 를 사용 하면 되고, 아니면 Pub/Sub 기반 통신을 지원 하는 Kafka 를 사용 해도 되고...

CoAP 은 저전력 디바이스에서 사용하기 위해서 그냥 일반 HTTP 기반으로 통신 하면 되고...

 

굳이 잘 만들어서 제공 하고 있는 엔진들 많으니까 운영할 인력이 없다면 MSP 사업자들이 제공하는 서비스를 사용해도 됩니다.

잘 사용 하면 비용 많이 안나옵니다.

:

[Python] pyenv 구성 하기 on Mac

ITWeb/개발일반 2020. 10. 22. 11:51

기존 Mac 에 설치 되어 있던 2.7.x 를 사용하지 않으려면 User 계정의 .bash_profile 이나 .zshrc 등에 alias 설정을 통해서 3.x 만 사용 하도록 하면 됩니다.

 

$ vi .zshrc

alias python=/usr/bin/python3
alias pip=/usr/bin/pip3


python 으로 개발 시 버전별로 다르게 해야 하는 경우가 많이 발생 합니다.

예전에는 virtualenv 를 사용 했었는데 pyenv 라는 좋은 툴이 있으니 이걸 그냥 사용하는게 좋겠죠.

 

# 설치하기

$ brew install pyenv
$ brew upgrade pyenv

# bash 환경

$ vi ~/.bash_profile
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"


eval "$(pyenv init -)"


$ source ~/.bash_profile

# zsh 환경
$ vi .zprofile or .zshrc
PYENV_ROOT="$HOME/.pyenv"
PATH="$PYENV_ROOT/bin:${PATH}"

export PYENV_ROOT
export PATH

eval "$(pyenv init -)"

 

$ source ~/.zprofile

$ pyenv install --list
$ brew install zlib
$ pyenv install 3.8.6
$ pyenv versions

# pyenv commands
https://github.com/pyenv/pyenv/blob/master/COMMANDS.md#pyenv-commands

# 버전 변경 쉘
$ pyenv shell 3.8.6
$ python3.8.6 --version

or

$ python --version

# shell 변경
$ python --version
Python 3.8.1


$ pyenv shell 3.8.6
$ python --version
Python 3.8.6


$ pyenv shell --unset
$ python --version
Python 3.8.1

# virtualenv 설치
$ brew install pyenv-virtualenv

# bash 환경
$ vi ~/.bash_profile

eval "$(pyenv virtualenv-init -)"

 

$ source ~/.bash_profile

# zsh 환경
$ vi .zprofile or .zshrc

eval "$(pyenv virtualenv-init -)"

 

$ source ~/.zprofile

# virtualenv 생성
$ pyenv virtualenv 3.8.6 helloworld
$ pyenv activate helloworld
(helloworld) $
$ pyenv deactivate helloworld

# virtualenv 삭제
$ pyenv virtualenvs
$ pyenv uninstall helloworld

 

:

[Spring] WebSocket 관련 링크

ITWeb/개발일반 2020. 10. 13. 12:08
https://spring.io/guides/gs/messaging-stomp-websocket/

https://stomp.github.io/stomp-specification-1.2.html

https://github.com/sockjs/sockjs-client

WebSocket 관련 개발 참고 문서 입니다.

:

[Bootstrap] Nav 사용 시 Form 태그 위치 주의.

ITWeb/개발일반 2020. 9. 7. 12:21

기억하기 위해 기록 합니다.

 

[참고문서]

bootstrap ui nav document

 

정상 동작 코드)

<nav>
  <div class="nav nav-tabs nav-pills" id="nav-tab" role="tablist">
    <a class="nav-item nav-link active" id="nav-terraform-configuration" data-toggle="tab" href="#terraform-configuration" role="tab" aria-controls="terraform-configuration" aria-selected="true">Step 1 - Terraform</a>
...중략...    
  </div>
</nav>

<div class="tab-content" id="nav-tabContent">
  
  <div class="tab-pane fade show active" id="terraform-configuration" role="tabpanel" aria-labelledby="nav-terraform-configuration">
    <form name="terraformForm">
...중략...
		</form>
	</div>

	<div class="tab-pane fade" id="kibana-installation" role="tabpanel" aria-labelledby="nav-kibana-installation">
...중략...
	</div>
</div>

 

비정상 동작 코드)

<nav>
  <div class="nav nav-tabs nav-pills" id="nav-tab" role="tablist">
    <a class="nav-item nav-link active" id="nav-terraform-configuration" data-toggle="tab" href="#terraform-configuration" role="tab" aria-controls="terraform-configuration" aria-selected="true">Step 1 - Terraform</a>
...중략...    
  </div>
</nav>

<div class="tab-content" id="nav-tabContent">
	
	<form name="terraformForm">
  <div class="tab-pane fade show active" id="terraform-configuration" role="tabpanel" aria-labelledby="nav-terraform-configuration">
...중략...
	</div>
	</form>

	<div class="tab-pane fade" id="kibana-installation" role="tabpanel" aria-labelledby="nav-kibana-installation">
...중략...
	</div>
</div>

위 코드의 차이점은 <form> 태그의 위치 입니다.

 

정상적으로 동작 하는 코드에서는

- <div> tab-content 내부에 tab 영역에 해당 하는 <div> 안쪽에 선언이 되어 있고,

- 비정상적으로 동작하는 코드에서는 밖에 선언이 되어 있습니다.

 

:

[JSON] JSON.parse(), JSON.stringify()

ITWeb/개발일반 2020. 8. 4. 16:49

[참고문서]

https://www.w3schools.com/js/js_json_parse.asp

https://www.w3schools.com/js/js_json_stringify.asp

 

String to JSON Object)

JSON_OBJECT = JSON.parse("JSON String");

 

JSON Object to String)

JSON_STRING = JSON.stringify(JSON_OBJECT);

 

:

[Spring] Spring Security Session Timeout Disable.

ITWeb/개발일반 2020. 7. 23. 07:55

application.yml 또는 properties 파일 내 아래와 같이 선언 하시면 됩니다.

server:
  servlet:
    session:
      timeout: 0

 

: