study 79

원티드 프리온보딩 - 백엔드 챌린지 (Docker)

Git만큼 사랑받는 개발 툴이 된 Docker stackoverflow 2022 개발자 설문조사에서 앞으로 배우고 싶은 언어에 npm 다음으로 Docker가 올랐다 Docker란 무엇일까? Docker overview Docker overview docs.docker.com Open platform이다 어플리케이션을 인프라에서 분리한다 신속하다 인프라를 어플리케이션을 관리하는 것처럼 관리할 수 있다 코드 배포에 용이하다 컨테이너 기반 가상화 도구 애플리케이션을 컨테이너 라는 단위로 격리하여 실행하고 배포하는 기술 Container란 무엇일까? 컨테이너는 가상화 기술 중 하나 호스트 운영체제 위에 여러 개의 격리된 환경을 생성 각각의 컨테이너 안에서 애플리케이션을 실행 가상화 기술이란 무엇일까? 하나의 물..

study/TIL🐥 2023.04.06

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

평소에 dbvear를 쓰고 회사 mysql 서버에 그냥 연결해서 써서 컴퓨터에서 mysql을 직접 구동한 적이 백만년전.. 토이프로젝트 위해 mysql 구동하고 임시 db를 작성하기 위해 mysql을 실행하던 중 생긴 에러.. https://so-es-immer.tistory.com/entry/ERROR-2002-HY000-socket-tmpmysqlsock-2-%ED%95%B4%EA%B2%B0%ED%95%98%EB%A0%A4%EA%B3%A0-brew-services-start-mysql-%ED%95%A8 ERROR 2002 (HY000): socket '/tmp/mysql.sock' (2) 해결하려고 brew services start mysql 함 http://meonggae.blogspot.com/..

study/TIL🐥 2023.03.07

[Spring] 301, 302 redirect 시키기

웹 크롤링을 하다가 보면 해당 url을 접근하지 못하거나 에러가 생겨 리다이렉트를 해야하는 경우가 발생 * 301과 302의 차이 https://nsinc.tistory.com/168 [HTTP] 301과 302 Redirect의 차이 HTTP Response Status Code는 요청에 대한 웹서버의 응답을 나타내는 코드를 말합니다. 이 코드를 바탕으로 웹브라우저나 검색엔진 크롤러는 요청을 어떻게 처리해야할지 판단하게 됩니다. 유명한 코 nsinc.tistory.com 우리 프로젝트는 크롤링에 필요하기 때문에 302 리다이렉트 필요 /** * 리다이렉트 */ @GetMapping(value="/redirect") public RedirectView redirect(String url) { log.in..

study/TIL🐥 2022.10.31

[Vue.js] Class로 구성된 js 파일 import, 사용하기

모듈화를 하기 위해 class로 구성하는 외부 js 파일의 사용이 필요할 때가 생겼다. 파일 구성은 export defualt class foo { constructor() { this.func(); } func() { } fun2() { } } Vue에서 파일을 따로 빼내서 vue 파일에서 사용할 경우 내보내기(export)를 꼭 해야한다 원하는 Vue파일에서 해당 파일 import를 하고 사용해야 한다 import foo from "foo.js 경로" export defult { data() { return { foo : new foo(); } }, mounted() { this.foo.fun2(); } } class 파일에서 정의한 메소드가 꼭 mounted가 아니라 method에서 호출해도 되고 ..

study/TIL🐥 2022.10.05

[Vue.js] 외부 javascript 구문 추가 방법

외부 플러그인이나 제품을 사용하다가 보면 script 추가 안내문을 받을 수 있다. html을 사용하거나 웹빌드를 사용하면 쉽게 설치할 수 있지만 vue나 react를 사용해 웹 작업을 한다면 제공하는 script문을 추가하기 어렵다. 이 구문을 head 태그 다음에 넣기 위해 수많은 구글링을 하였고 마침내 해결방법을 알아내었다 addScript() { let scripts = [ '필요한 url', ]; for (let i = 0, len = scripts.length; i < len; i++) { let script = document.createElement('script'); script.setAttribute('type', 'text/javascript'); script.setAttribute(..

study/TIL🐥 2022.10.05

[Spring] 스프링 AOP (Spring AOP) 총정리 : 개념, 프록시 기반 AOP, @AOP

스프링 AOP (Aspect Oriented Programing) AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 관점 지향은 쉽게 말해 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하겠다는 것이다. 여기서 모듈화란 어떤 공통된 로직이나 기능을 하나의 단위로 묶는 것을 말한다. 예로들어 핵심적인 관점은 결국 우리가 적용하고자 하는 핵심 비즈니스 로직이 된다. 또한 부가적인 관점은 핵심 로직을 실행하기 위해서 행해지는 데이터베이스 연결, 로깅, 파일 입출력 등을 예로 들 수 있다. AOP에서 각 관점을 기준으로 로직을 모듈화한다는 것은 코드들을 부분적으로 나누어서 모듈화하겠다는 의미다. 이때, 소..

study/TIL🐥 2022.08.23

[JAVA/Spring] [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Unexpected character ('}' (code 125))

Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Unexpected character ('}' (code 125)): was expecting double-quote to start field name; nested exception is com.fasterxml.jackson.core.JsonParseException: Unexpected character ('}' (code 125)): was expecting double-quote to start field name at [Source: (org.springframework.util.StreamUtils$NonClosingIn..

study/TIL🐥 2022.08.05

[Linux] SSH 접속시 UNPROTECTED PRIVATE KEY FILE! 에러 해결

ssh 인증 방법을 public key 로 하면 ssh client 는 개인키(private key) 가 있는 폴더의 권한과 개인 키 파일(보통 id_rsa)의 권한 설정 여부를 확인하고 잘못 설정되었을 경우 다음과 같은 에러 창을 띄우고 동작을 하지 않습니다. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0644 for '/user/ssh/id_rsa' are too open. It is required that your private k..

study/TIL🐥 2022.08.03

[Linux/MacOS] 단축 명령어 생성하기

프로젝트 진행하다가 보면 ssh로 운영 서버를 접속해야 하는 일이 있는데 매번 입력을 할 수 없어서 단축 명령어를 사용하여 빠르고 쉽게 ssh 접속을 하도록 한다 1. 현재 설정되어있는 단축어 보기 >> alias 2. 단축명령어 생성하기 >> alias 단축명령어='단축시킬 명령어' >> alias test='ssh -i !/.ssh/id_ras test@0.0.0.0' 하지만 터미널에서 등록하게 되면 일시적인 등록이 되므로 영구적인 등록을 위해서는 설정 파일에서 등록을 해놔야한다 3. 영구적인 단축명령어 생성하기 3-1. zshrc 편집기 열기 vi ~/.zshrc 3-2. 맨 아래에 등록할 단축 명령어 입력 3-3. zshrc 적용하기 >> source ~/.zshrc

study/Linux 🐧 2022.08.03