목록프로그래밍 (202)
봉봉의 개인 블로그
토큰(Token) 토큰 기반 인증은 모던 웹서비스에서 정말 많이 사용되고 있다. API를 사용하는 웹서비스를 개발한다면, 토큰을 사용해 유저들의 인증 작업을 처리하는 것이 가장 좋은 방법이다. 토큰 기반 인증 시스템을 선택하는데에는 여러가지 이유가 있지만, 그중 주요한 이유들은 아래와 같다. Stateless 서버 Stateless 서버를 이해하려면 먼저 stateful 서버가 무엇인지 알아야한다. stateful 서버는 클라이언트에게서 요청을 받을 때마다, 클라이언트의 상태를 계속해서 유지하고, 이 정보를 서비스 제공에 이용한다. stateful 서버의 예제로는 세션을 유지하는 웹서버가 있다. 예로 유저가 로그인하면, 세션에 로그인되었다고 저장을 해주고, 서비스를 제공할 때 그 데이터를 사용한다. 여기..
Java Data Type / Primitive Type / Reference Type Java Data Type Java에는 기본형(Primitive Type)과 참조형(Reference Type)이 있다. 일반적으로는 아래와 같다. Java Data Type - Primitive Type - Boolean Type (boolean) - Numeric Type - Integer Type (short, int, long) - Floating Point Type (float, double) - Character Type (char) - Reference Type - Class Type - Interface Type - Array Type - Enum Type - etc. Primitive Type 기본형은..
디버그/리팩토링 디버그란? 컴퓨터 프로그램의 정확성이나 논리적인 오류를 찾아내고 테스트하는 것을 의미하고 이 과정을 디버깅이라고 한다. 컴퓨터에서는 이 오류를 버그라고 지칭하고 벌레를 없애다 라는 뜻으로 디버깅이라는 용어를 사용한다. 디버거란? 디버거는 디버그 행위를 돕는 도구이다. 오류를 발견하는데 있어서 코드를 단계적으로 실행하거나 메모리에 저장된 값을 살펴보는 등 많은 기능을 지원한다. 리팩토링 사용자에게 노출되는, 출력되는 값은 그대로 유지하면서 내부 논리나 구조를 바꾸고 개선하는 유지보수 행위이다. 결과의 변경 없이 코드의 구조를 재조정하는 것을 의미한다. 주로 가독성을 높이고 유지보수를 편하게 하는데에 그 목적이 있다. 디버깅과는 다름 개념이다. 하지만 리팩토링은 버그를 찾도록 도와준다. 새로..
MSA(Microservice Architecture) 마이크로서비스 아키텍쳐 Monolithic Architecture 기존 legacy System의 경우 monolithic architecture를 따르는 large 어플리케이션들은 다음과 같은 개발/운영상의 문제들에 직면하게 된다. 일부 모듈의 변경사항 때문에 전체 어플리케이션 개발/운영 프로세스와 패키징에 영향을 준다. 모듈별 특성에 맞는 신기술 또는 구조를 적용하기 어렵다. 모듈별 확장이 어렵다. Microservice Architecture의 특징 Microservice Architecture의 특징은 다음과 같다. 애플리케이션 로직을 각자 책임이 명확한 작은 컴포넌트들로 분해하고 이들을 조합해서 솔루션 제공 각 컴포넌트는 작은 책임 영역을 ..
GIT - SVN 명령어 비교 조작 GIT SVN 저장소의 복제 git clone svn checkout 커밋 git commit svn commit 커밋의 상세 내용을 확인 git show svn cat 상태 확인 git status svn status 변경 내용 확인 git diff svn diff 로그 확인 git log svn log 추가 git add svn add 이동 git mv svn mv 삭제 git rm svn rm 변경 취소 git checkout/ git reset svn revert (#1) 브랜치 작성 git branch svn copy (#2) 브랜치 전환 git checkout svn switch 병합 git merge svn merge 태그 작성 git tag svn cop..
JAVA JDK 개발 도구 명령어 java , javac, jar, javadoc, jps, jmap, jhat java 자바 애플리케이션(컴파일된 '.class' 바이트 코드 파일)을 실행하는 명령어 사용법 : java "Class명" 예제 : java Helloworld // 클래스명과 동일하게 사용하며 .class는 사용하지 않음 javac 자바 컴파일러 명령어, 자바 코드로 프로그래밍되어 확장자가 ".java"인 파일을 실행 가능한 ".class"파일로 컴파일 사용법 : javac "Java파일명" 예제 : javac Helloworld.java jar 자바에서 사용되는 묶음 파일인 Jar파일을 다루기 위한 명령어 Jar 파일은 클래스 파일들을 편리하고 효율적으로 배포하기 위해 실행에 필요한 여러..
Spring MVC 컨트롤러 (Controller) 기본적 흐름은 client 가 요청을 하면, @Controller 에 진입한다. 컨트롤러는 요청에 대한 작업을 수행하고, 뷰쪽으로 데이터를 전달 컨트롤러(Controller) @Controller를 이용해서 클래스 생성. @RequestMapping을 이용, View의 요청 경로 지정. 요청 처리 Method 구현. View name return 예를 들어 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 @controller public class HomeController { //View Reqeust 경로 지정 @ReqeustMapping(value = "/", method = RequestMethod.GET) puvlic Strin..
리눅스는 ls 를 치면 디렉토리 : 파란색 실행파일 : 녹색 압축파일 : 빨간색 등으로 표시 된다. 기본 세팅 설정 이글은 리눅스 초보자가 익혀야할 12가지 명령어를 기술 1. man 이 명령어를 가장 먼저 제시하는 이유는 여러면의 기초 이기 때문. man은 다른 명령어 대해 알고자 할때 반드시 사용. 기본적으로 man은 사용할 수 있는 다양한 명령어에 대한 기본적인 소개를 위해 온라인 매뉴얼 페이지를 보여줌. 이명령어로 다른 명령어의 기능과 사용법을 이해할 수 있다. 'man man'을 입력하면 man명령어 자체를 소개하는 페이지를 볼수 있음. 사용하려고 하는 명령어가 확실하지 않을때 'man xxx' 방식으로 사용하면, 해당 명령어에 대해 정확히 알 수 있다. 2. ls 또 하나의 기초적인 명령어 현..
단축키 정리 대상 단축키 설 새창 열기 컨트롤 + N 새 쿼리 탭 컨트롤 + T 쿼리 탭 닫기 컨트롤 + F4 실행중인 작업 취소 ESC 이전 탭 컨트롤 + 쉬프트 + 탭 이전 탭으로 이동 다음 탭 컨트롤 + 탭 다음 탭으로 이동 실행 F9 쿼리탭의 전체 쿼리가 실행 선택 실행 컨트롤 + F9 현재 쿼리 실행 컨트롤 + 쉬프트 + F9 현재 쿼리의 실행 계획 컨트롤 + F7 단축키 추 다른 이름으로 저장 F12 쿼리를 다른 이름으로 저 선택 영역을 파일로 저장 컨트롤 + 쉬프트 + S 청소 컨트롤 + W 쿼리편집기 내용 전부 지우기 내용 찾기 컨트롤 + F 내용 바꾸기 컨트롤 + R 다음 찾기 또는 바꾸기 F3 SQL 재구성 컨트롤 + F8 더 읽기 쉽게 할 수 있도록 활성화된 편집기에서 어수선한 SQL..
이클립스에서 svn을 사용하는 방법 프로젝트 우클릭 > Team 기본적 사용을 위한 간단한 svn 설명 Synchronize with Repository - 서버내용과 싱크를 맞춤 Commit - 소수의 수정사항을 반영 Update to HEAD - 서버의 소스를 내려받음 (소스가 겹치지 않으려면 수시로 받는것이 좋음) Update to Version - 특정시점의 소스로 전체 소수 변경 Show History - 사람들이 UPDATE 한 내역을 확인가능. 상세확인가능. Revert - 현재 작업했던 내용 취소후, 서버소스로 바꿔줌. -출처 https://caliou.tistory.com/6