전체 글

전체 글

    [MSSQL] sp_executesql을 활용한 동적쿼리 실행하기

    BEGIN DECLARE @result INT; DECLARE @num1 INT = 100; DECLARE @num2 INT = 200; DECLARE @sql_query NVARCHAR(MAX); DECLARE @param NVARCHAR(MAX); SET @sql_query = N'SELECT @temp_result = ' + convert(varchar, @num1) + ' + ' + convert(varchar, @num2); SET @param = N'@temp_result FLOAT OUTPUT'; EXEC sp_executesql @sql_query, @param, @temp_result = @result OUTPUT; END 주의할 점 1. sp_executesql은 VARCHAR가 아닌 ..

    리눅스 fg, bg

    리눅스 fg, bg

    fg에서 실행중인 것을 잠깐 정지할 때 Ctrl+Z하고 jobs 명령어를 하면 정지된 잡들이 보인다. 정지된 상태에서 fg 또는 bg 명령어를 치면 정지된 상태가 명령어에 맞게 돌아간다. jobs 명령어를 통해 정지된 것이 무엇이 있는지 확인했을 때 다음과 같다면? 그리고 두 번째 vim dfdf을 죽이고싶다면? kill -9 %2 명령어를 통해 죽일 수 있다.

    리눅스 정리

    리눅스 정리

    사용자 sudo(Super User DO) su(Switch User) sudo su - root : 루트 계정으로 전환 sudo su - : 루트 계정으로 전환 sudo su : 루트 계정으로 전환하는 것이 아닌 현재 사용자를 유지한 상태에서 루트의 권한만 가짐 리눅스에서는 root 계정으로 직접 로그인 자체가 불가능하다. 따라서 일반 사용자로 로그인을 한 후에 루트 계정으로 전환을 하거나 권한을 얻어서 사용한다. 관리자 계정에서 일반 사용자 계정으로 전환하는 명령어는 exit 리눅스 초기 root 비밀번호는 sudo passwd 명령어를 통해 초기 설정을 해야 한다. 파일 시스템 간단하게만 알아보자 bin : 윈도우에서 c드라이브 내 system 폴더 역할을 한다. 모든 유저가 사용하는 실행 파일을 ..

    [Java] 제네릭(Generic) 타입이란?

    JDK 1.5부터 제네릭 타입이 새로 추가되었다. 1. 제네릭의 장점 1. 컴파일 시 강한 타입 체크를 할 수 있다. 2. 캐스팅을 제거한다. 불필요한 타입 변환을 막을 수 있다. 2. 제네릭 타입 제네릭 타입이란 타입을 파라미터로 가지는 클래스와 인터페이스를 말한다. public class 클래스명 { ... } public interface 인터페이스명 { ... } 3. 멀티 타입 파라미터 제네릭 타입은 두 개 이상의 멀티 타입 파라미터를 사용할 수 있다. 두 개 이상이 올 수 있다. 예를 들어 Map을 생성할 때 아래와 같이 사용한다. Map map = new HashMap(); 4. 제네릭 메서드 제네릭 메서드는 매개 타입과 리턴 타입으로 타입 파라미터를 갖는 메서드를 말한다. public 리턴..

    [스프링] HandlerMethodArgumentResolver에 대해 알아보자

    [스프링] HandlerMethodArgumentResolver에 대해 알아보자

    스프링을 사용할 때 @ModelAttribute, @RequestBody 등 어노테이션을 컨트롤러 단에서 메서드의 매개변수로 넣어서 많이 사용해왔다. 위의 어노테이션들이 메서드의 매개변수로만 쓰이는 이유도 모른채 기계적으로 사용해온 나를 반성한다... 커스텀한 어노테이션을 만들고 이를 메서드의 매개변수에서 활용하면서 관련된 개념을 짚고 넘어가고자 한다. HandlerMethodArgumentResolver HandlerMethodArgumentResolver는 @PathVariable, @RequestParam와 같은 메서드의 여러 인자 값을 처리해주는 역할을 한다. 스프링 프레임워크가 제공하는 인터페이스이다. 참고로 @PathVariable 어노테이션은 PathVariableMethodArgumentR..

    [스프링부트] AWS S3에 파일 업로드 하기

    [스프링부트] AWS S3에 파일 업로드 하기

    회사에서는 자체 프레임워크로 손쉽게 S3에 이미지를 업로드할 수 있고 업로드가 성공 또는 실패했을 때 반환되는 JSON 객체 결과를 그냥 써오기만 했다. 그냥 쓰는 것과 어느정도의 이해를 하고 쓰는 것은 차이가 크기 때문에 정리를 해보고자 한다. 나는 이미지 등의 파일을 선택했을 때 즉시 S3 Bucket으로 이미지가 업로드되도록 해보려 한다. html은 input 한 줄이면 된다. application.properties에 aws 정보를 설정한다. aws.s3.accesskey=[본인의 accesskey] aws.s3.secretkey=[본인의 secretkey] aws.s3.bucket=[s3 bucket name] accesskey, secretkey가 노출되어 타인이 악용한다면 과금될 수 있다. ..

    JWT란 무엇이며 어떤 흐름을 가질까?

    JWT란 무엇이며 어떤 흐름을 가질까?

    토큰 기반 인증 시스템 토큰 기반 인증 시스템은 세션을 사용하는 서버 기반 인증 시스템과 달리 클라이언트가 서버에 접속을 하면 서버에서 해당 클라이언트에게 인증되었다는 의미로 '토큰'을 부여한다. 이 토큰은 유일하며 토큰을 발급받은 클라이언트는 또 다시 서버에 요청을 보낼 때 요청 헤더에 토큰을 심어서 보낸다. 그럼 서버에서는 클라이언트로부터 받은 토큰을 서버에서 제공한 토큰과의 일치 여부를 체크한다. 이번 포스팅은 JWT(Json Web Token)의 개념을 알아보고 토큰 기반 인증 시스템의 관점에서 어떤 플로우를 갖는지 알아보도록 한다. JWT JWT는 서명된 토큰에 중점을 두는 특징이 있다. JWT의 구조 JWT는 일반적으로 아래와 같은 구조를 지닌다. xxxx.yyyy.zzzz .을 기준으로 좌측..

    [네트워크] RSA 암호화 알고리즘이 무엇이며 기존의 문제점을 어떻게 해결할 수 있을까?

    데이터를 송수신할 때는 두 가지의 문제점이 존재한다. 1. 열쇠 전달 문제 2. 넌 누구야? 문제 열쇠 전달 문제 A가 C한테 데이터를 송신할 때 B(해커)가 데이터를 가로채 데이터를 위·변조 시키면 바뀐 데이터를 C는 수신받는 상황이 발생한다. 이러한 상황을 방지하기 위해 A가 C에게 보낼 데이터를 암호화하여 송신하면 중간에 B가 가로채도 데이터가 암호화되어 있기 때문에 위·변조가 불가능하다. 그러나 C도 데이터를 복호화할 방법을 모르기 때문에 사전에 A로부터 복호화하는 방법을 안내 받아야 한다. 그런데 이러한 복호화 방법도 결국 데이터이고 이것도 주고받아야 하기 때문에 모순에 빠지게 된다. 이 데이터를 주고 받는 도중에 B가 개입하여 탈취할 수 있으니! 넌 누구야? 문제 A가 C한테 데이터를 송신할 ..

    [네트워크] MAC 주소를 알아보자

    MAC MAC(Media Access Control)의 약자로 하드웨어에 부여되는 고유한 물리적 주소이다. 랜카드나 다른 네트워크 장비들은 고유의 MAC 주소를 갖고 있다. 네트워크 상에서 데이터를 주고받을 때 TCP/IP를 이용할 때는 고유한 값인 IP 주소를 사용한다. 그리고 이 IP 주소가 MAC 주소로 변환된다. 이렇게 IP -> MAC 주소로 변환되는 과정을 ARP(Address Resolution Protocol)이라 한다. MAC 주소 확인법 cmd창을 킨다. ipconfig /all 물리적 주소가 적힌 부분이 MAC 주소이다.

    [네트워크] OSI 7계층 이해하기

    OSI 7계층이란? OSI 7계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 의미한다. 물리계층(Physical Layer) 두 대의 컴퓨터가 통신을 하려면 0, 1을 주고 받을 수 있으면 된다. A, B의 컴퓨터가 있다고 가정을 하자. A는 B에게 데이터를 전송할 때 0, 1로 이루어진 값을 보내는데 이를 아날로그 신호로 바꿔서 전송한다(Encoding). 그럼 B는 아날로그로 이루어진 값을 받아 0, 1의 나열로 해석한다.(Decoding) 물리적으로 연결된 두 대의 컴퓨터가 0과 1의 나열을 주고받을 수 있게 해주는 모듈을 물리 계층이라 한다. 물리 계층(1계층 모듈)은 하드웨어적으로 구현되어 있다(PHY 칩) 데이터 링크 계층(Data Link Layer) 예림이가 혜림이에게 어떠한..