전체 글
[Linux] 리눅스 필수 명령어
1. pwd(Print Work Directory)작업중인 디렉토리 경로 조회2. ls(List Segments)현재 디렉토리의 파일과 폴더를 표시3. cd(Change Directory)현재 디렉토리를 변경4. mkdir(Make Directory)폴더 생성5. cp(Copy)파일 또는 폴더를 복사할 때 사용6. mv(Move)파일 또는 폴더의 위치를 옮길 때 사용, 이름 변경시 사용7. rm(Remove)파일 또는 폴더를 삭제할 때 사용8. cat(Catenate)파일의 내용을 확인할 때 사용9. touch빈 파일을 생성, 파일의 날짜 및 시간 수정시 사용10. echo문자열을 화면에 보여줄 때 사용, 리다이렉션을 사용해 파일 생성 및 추가 작업시 사용11. ip addr / ifc..
[JavaScript] 일반 함수 vs 화살표 함수
일반 함수와 화살표 함수의 차이점1. this 객체 바인딩일반 함수실행 주체에 따른 this가 동적으로 바인딩1) 함수 실행 시 전역(window)객체로 바인딩2. 메소드 실행 시 메소드를 소유하고 있는 객체를 바인딩3. 생성자 실행 시에는 새롭게 만들어진 객체를 바인딩-> 함수가 어떻게 호출되었는지에 따라 this에 바인딩할 객체가 동적으로 결정화살표 함수ES6부터 새로 추가된 익명 함수즉시 실행이 필요할 경우에 사용항상 상위 스코프의 this를 바인딩 (정적 바인딩)또한, call, apply, bind 메소드를 사용하여 this를 변경할 수 없음2. 생성자 함수로 사용 가능 여부일반 함수는 생성자 함수로 사용 가능화살표 함수는 생성자 함수로 사용 불가 -> prototype 프로퍼티 존..
[Curl] 기본 쉘로 API 테스트하기
Curl(Client URL)특정 URL로 데이터 전송 테스트를 할 수 있는 명령줄 도구 및 라이브러리GUI 환경에서 URL 테스트를 Postman에서 한다면 CLI 환경에서는 Curl을 사용하면 쉽게 REST API 테스트 가능Linux 및 Unix, 심지어 Windows에서도 사용 가능 Curl 설치리눅스# 우분투$ sudo apt update$ sudo apt install curl# CentOS$ sudo yum install curl Curl 버전 확인$ curl -VGET 요청# 프로토콜 미지정시, 기본 HTTP 설정# 별도 옵션 미지정시, GET 방식 동작$ curl www.naver.com$ curl -X GET www.naver.com# 위 2개의 명령문은 동일 POST 요청# -d ..
[Java] VO와 DTO의 차이점
VO(Value Object)값 자체를 표현하는 객체변조가능성 메서드 존재 X ex) Setter, DTO와 달리 별도 메서드 추가 가능-> 필드 값이 같다면 두 객체는 같은 객체로 처리-> 실제 인스턴스 비교시 객체 주소값이 서로 다르므로, hashcode() 및 equals()를 재정의(오버라이딩) 필요DTO(Data Transfer Object)단순하게 데이터만 담아 계층 간 전달하는 객체클래스가 갖고 있는 메서드는 getter / setter 만 존재-> 오직 데이터 전달에만 초점VO와 DTO의 차이점 VODTO목적값 자체를 표현계층간 데이터 전달동등성필드값 동일시 같은 객체 취급필드값이 같아도 같은 객체 X가변성불변(수정 불가)Setter 존재시 가변Setter 존재 안할시 불가변로직G..
$(document).ready() 와 window.onload 의 차이점
두 구문을 사용하는 이유는 다음과 같다. 자바스크립트는 인터프리터 언어이므로 DOM이 그려지기 전에자바스크립트로 특정 HTML태그(DOM)를 참조할 경우 스크립트 오류가 뜰 수 있다. 이를 해결 하기 위해 두 개의 구문이 등장하게 되었다. 둘의 차이점을 알아보자. (참고로 window.onload 는 페이지당 한번만 사용 가능하기 때문에,window.addEventListener를 사용하면 이러한 문제점을 해결할 수 있다.) $(document).ready()1. 호출 시점- DOM 트리가 로드될 때 호출2. 특징- DOM만 로드되면 바로 실행(이미지 및 외부 리소스와 무관)- 중복 사용해도 순서대로 모두 실행 window.onload1. 호출 시점- 페이지의 모든 요소들이 로드된 이후에 호출2. 특징-..
[Log] Log4j 와 Logback
자바에서 로깅할 때 쓰는 라이브러리로 logger, log4j, logback, slf4j 등이 있다. 그중에서 많이 쓰는 Log4j와 Logback에 대해서 알아 보자 Log4j주요 특징1. 멀티스레드 환경에서 안전2. 다양한 내보내기 기능(파일, 콘솔, 원격서버, 이메일 등)3. 6가지의 계층 로그 메시지 레벨 주요 클래스1. Logger(Category)- 실제 로그 기능을 수행- 다양한 출력 방식 지원2. Appender- 로그 출력 위치 지정3. Layout- 로그 출력 포맷 지정 로깅 레벨1. FATAL- 크리티컬한 오류2. ERROR- 일반 에러3. WARN- 에러가 아닌 경고4. INFO- 일반 정보5. DEBUG- 상세한 일반 정보6. TRACE- 경로 추적 Logbacklog4j를 바탕..
[React] 리액트 라우터
라우팅사용자가 웹사이트를 접근할 때, URL에 따라 서로 다른 컴포넌트를 화면에 표시해줄 수 있다. 이것을 라우팅이라고 한다.예를 들어서 사용자가 접속한 URL이 www.naver.com?mode=dark 라고 가정해보자.경로(path): www.naver.com쿼리(query): mode=dark경로와 쿼리 부분을 바탕으로 해당 컴포넌트를 렌더링하는 것, 이 과정을 라우팅이라고 한다.리액트에서는 react-router 라이브러리를 이용하여 라우팅을 구현할 수 있다.1. 리액트 라우터 라이브러리 설치npm install react-router-dom 2. 페이지 컴포넌트 정의// Home 컴포넌트import React from 'react';const Home = () => { return ..
[Spring] Bean 순환 참조
먼저 순환 참조의 정의에 대해 알아보자. 위키 백과에서의 순환 참조 정의는 다음과 같다.- 참조하는 대상이 서로 물려 있어서 참조할 수 없게 되는 현상 위에서 설명한 순환 참조라는 것이 스프링에서도 일어날 수 있을까?: 물론이다. 두 개 이상의 자바 클래스가 서로의 Bean을 주입 받을 때 순환 참조 문제가 발생할 수 있다. 클래스 A -> 클래스 B, 클래스 B -> 클래스 C, 클래스 C -> 클래스 A 순으로 참조할 경우,클래스 A에 대한 Bean을 만들 때, 클래스 A는 클래스 B를 참조하므로, 클래스 B의 Bean을 먼저 생성하고,클래스 B는 클래스 C를 참조하기에, 클래스 C의 Bean을 먼저 생성하고, 클래스 C의 Bean을 생성하기 전에,클래스 C는 클래스 A를 생성하므로 먼저 클래스..