지적과 댓글은 언제나 환영합니다! 어느 한 피자가게.. 이 피자가게에는 고용주와 직원이 있다. 피자를 만드는 직원은 고용주가 고용했지만, 정작 손님 명령에 따라 피자를 만든다. 프로그래밍의 많은 부분은 현실세계를 모방하여 만들어진다. 서비스를 제공하는 쪽이 사용하는 쪽에 의존한다. 이를 제어의 역전(IoC, Inverse of Control)라고 부른다. IoC도 피자가게와 같은 맥락을 가진다. IoC는 의존관계를 최소화하기 위해 사용한다. 그렇다면, 의존관계 최소화는 왜 필요할까? 피자와 의존관계 의존관계 설명에 앞서, 피자를 만드는 직원 A와 서빙을 하는 직원 B가 있다고 해보자. A는 누가 주문했는지 몰라도, 피자를 만들 수 있다. B는 피자 레시피를 몰라도, 피자를 전달할 수 있다. 서로 하는 일..
지적과 댓글은 언제나 환영합니다! 시작에 앞서 이야기를 하기 전, 탄생 배경에 대해 알고가면 더욱 좋다. HTTP 프로토콜은 비연결성(Connectionless), 무상태성(Stateless)을 가지기 때문에 클라이언트가 누구인지 저장하지 않는다. 때문에 매 요청마다 사용자, 권한 등을 확인해야 한다. 이러한 특성을 보완하기 위해서 쿠키, 캐시와 같은 개념이 등장헀다. 쿠키(Cookie) 쿠키는 사용자의 브라우저에 저장되고, HTTP 헤더에 포함되는 텍스트 데이터 파일이다. 쿠키는 아래와 같이 1개의 데이터쌍과 4개의 속성으로 구성되어 있다. Set-Cookie: name=value; expires=[Date]; domain=[Domain]; path=[Path]; [Secure] expires : 쿠키..
Visual Studio Code(vscode) 사용법 정리 Ctrl + k + F : 코드 정렬 하기 Ctrl + c : 커서의 위치에서 드래그 없이 그냥 Ctrl +c 하면 한줄 복사 Shift + Alt + ↑ : 위에 행 복사 Shift + Alt + ↓ : 아래 행 복사 Ctrl + d : 단어를 드래그 하고 계속 눌러주면 해당 글자는 선택이 계속 된다. Ctrl + Shift + t : 닫은 창 다시 열기 Ctrl + / : 창 분할 Ctrl + 1,2,3,4... : 창 포커싱 Ctrl + k, s = 키보드 숏컷(단축키) 보기 Ctrl + b / Ctrl + j : 화면 넓게 보기 Ctrl + g : 특정 줄 번호로 이동 Ctrl + h : 텍스트 찾아 바꾸기 Ctrl + pageup/do..
인텔리제이(intelliJ) 사용법 정리 코드 축약어 psvm → public static void main 자동 생성 sout / soutv / soutm → System.out.println() 자동 생성 /** + enter = 자동 주석 생성(javadoc 형식) iter + enter = foreach문 자동 생성 단축키 Shift 2번 : 검색창 띄우기 Shift + F6 : Rename Ctrl + E : 최근 열어본 페이지 목록 Ctrl + Alt + Shift + T : 특정부분만 추출해서 메소드로 만들기 Ctrl + Alt + I : 코드 인덴트 정리 Ctrl + Alt + V : 반환형에 맞게 변수로 추출(extract) Ctrl + Alt + M : 코드 블럭을 메소드로 추출(ext..
지적과 댓글은 언제나 환영합니다! SQL 코딩테스트와 SQLD 문제 풀이를 중점으로 작성했습니다. (문법은 Oracle과 PostgreSQL 기준입니다.) 사용법을 익히는 참고용 정도로 봐주시면 감사하겠습니다. INDEX 1. GROUP 관련 2. JOIN 관련 3. String 관련 4. Date 관련 5. 중복제거(DISTINCT) 관련 6. 빈 값(NULL) 처리 7. 복잡한 쿼리(PL/SQL) 8. DCL(Data Control Language) 관련 9. DDL(Data Definition Language) 관련 10. 기타 CASE 모음 GROUP 관련 -- 두 번 이상 쓰인 이름, 해당 이름이 쓰인 횟수 SELECT NAME , COUNT(NAME) FROM ANIMAL_INS WHERE N..
파이썬 문법 및 유용한 코드를 모아놓은 곳입니다. INDEX 1. 문자열 관련 메소드 2. 리스트 관련 메소드 3. 정규표현식(re모듈) 4. List Comprehention 5. 유용한 함수 문자열 관련 메소드 # 문자열 뒤집기 s = s[::-1] # 문자열 교체(공백 or 특정문자제거) s = s.replace(' ', '') import re s = re.sub(r'[^a-zA-Z0-9]','',s) # 문자열 나눔 s = 'h e l l o' s.split(' ') = ['h','e','l','l','o'] list(s) [char for char in s] # 문자열 연결 list = ['h','e','l','l','o'] ''.join(list) = hello # 문자열 판단 'year20..
지적과 댓글은 언제나 환영합니다! INDEX 1. 문자열 관련 2. Collection 관련 3. 형 변환 관련 5. JSON 관련 4. 유용한 함수 문자열 관련 // 분자열 분리 StringTokenizer st= new StringTokenizer("문자열 입니다", " "); String str = st.nextToken(); // "문자열" String[] arr = str.split(""); // ["문", "자", "열"] Collection 관련 /* Header Library */ import java.util.Collection; import java.util.List; import java.util.ArrayList; import java.util.HashMap; import java...
마크다운 작성법 raw html 코드로 보면 이해가 더욱 쉽습니다. 출처 : 내 repository 1. 글머리 2. 인용문 3. 강조 4. 목록 5. 링크 및 이미지 6. 코드 1. 글머리 샵(#) 1개 # 샵(#) 1개 샵(#) 2개 ## 샵(#) 2개 샵(#) 3개 ### 샵(#) 3개 샵(#) 4개 #### 샵(#) 4개 샵(#) 5개샵 ##### 샵(#) 5개 6개, 이게 마지막 ###### 샵(#) 6개, 이게 마지막 2. 인용문 “꺾쇠로 인용문을 표시한다” > "꺾쇠로 인용문을 표시한다" “꺾쇠 두번으로 중첩된 인용문을 표시한다” > > "꺾쇠 두번으로 중첩된 인용문을 표시한다" 3. 강조 기울임 = 별표 한개, 언더바 한개 로 감싼다 기울임 = _별표 한개_, _언더바 한개_ 로 감싼다 두..