목록Self-Study/Study (82)
New World
프로그램의 구동되어가는 과정 1. 프론트에서 html과 CSS를 통해 브라우저에 그림을 그려준다. 2. 브라우저에 그림을 그려준 후, 필요한 데이터를 백엔드에 요청한다. (request) 3. 백엔드에서 필요한 데이터를 프론트에 맞게 가공하여 전달해준다. (response) 4. 프론트엔드에서 javascript 처럼 백엔드가 보내준 데이터를 통해 구동을 완료해준다. 위와 같은 과정이 프로그램의 한 페이지마다 존재한다. 이러한 일을 한번에 해주기는 어려워 일을 세분화하여 진행한다. 이 일 중 1과 4는 프론트, 2와 3은 백엔드에서 해준다. 다시 말하자면, 프론트와 백의 차이로는 대체로 눈에 보이는 것과 눈에 보이지 않는 것이라고 할 수 있다. 프론트엔드는 사용자가 볼 수 있는 화면, 즉 사용자 인터페이..
배열 - 같은 데이터 타입의 변수들이 하나의 집합 형태로 이루어진 자료구조 - index와 element로 구성됨 - Arrays는 java에서 지원해주는 기본 클래스 1차원 배열 - 가장 기본적인 형태의 고정된 길이를 가진 배열 - 같은 데이터 타입의 변수들이 집합의 형태를 이루고 있음 - 데이터 타입은 기본 타입과 참조 타입 모두 볼 수 있음 1차원 배열 선언 => 선언 후 초기화해줄 것! 데이터형[] 배열이름 = new 데이터형[]; 1차원 배열의 활용 - 요소의 길이를 정해줄 수 있어 for문 또는 while 문 같은 반복문으로 데이터를 다룰 수 있음 2차원 배열 - 배열의 요소로 1차원 배열을 가지는 배열 2차원 배열 선언 데이터형[][] 배열 이름 = new 데이터형[][]; 가변 배열 - 2..
큐 - 선입선출(FIFO) 자료구조 : 먼저 들어온 데이터가 먼저 나가는 구조 - 입력 순서대로 데이터 처리가 필요할 때 사용 ex. 프린터 출력 대기열, BFS 등 큐 기본 연산 - 데이터 추가 (Enqueue) - 데이터 꺼내기 (Dequeue) 값 추가 값 확인 값 제거 큐의 맨 뒤에 값 삽입 큐의 맨 앞에 있는 값 반환 remove() 큐 맨 앞에 있는 값 반환 후 삭제 큐가 비어 있는 경우 NoSuchElementException 에러 add() 꽉 찬 경우 IllegalStateException 에러 element() 빈 경우 NoSuchElementException 에러 poll() 큐 맨 앞에 있는 값 반환 후 삭제 큐가 비어있을 경우 null 반환 offer() 꽉 찬 경우 false 반..
이번 제로베이스에서는 자료 구조 중 스택이라는 것에 대해 배우는 시간이었다. 자료구조에는 흔히 배열, 스택(LIFO), 큐 (FIFO) 가 있다. 그중 스택에 대해 정리해보려 한다. 스택 - LIFO(Last In First Out) : 후입 선출, 마지막에 삽입된 것을 먼저 내보내는 것 - 데이터를 역순으로 처리할 때 사용한다. 스택 연산 CreatS 연산 => 빈 스택을 생성하고 반환, 스택의 크기를 정할 수 있다 (컴파일 시) PUSH 연산 => 스택의 공간에서 삽입을 담당 POP 연산 => 스택의 공간에서 삭제를 담당 스택의 사용 - 시스템 스택 : 함수의 호출과 복귀 순서는 스택의 구조를 응용하여 관리할 수 있다 - 그외 : 역순 문자열 만들기, 수식의 괄호 검사, 수식의 후위 표기법 변환 *스..
패스워드 암호화 방법 - 단순 텍스트 - 단방향 해시함수의 다이제스트 - 솔팅 - 키 스트레칭 대칭키와 비대칭키 차이 대칭키 암호화 비대칭키 암호화 비밀키 암호 공개키 암호 양측이 동일한 키를 가지고 있으며, 암호화와 해제에 동일한 키를 사용하는 방식 공개키는 외부에 공개되어있고, 비밀키는 내부적으로 가지고 있고 서로 각각의 키로 암호화하거나 해제할 수 있는 방식 비밀키가 노출되며 연산성능은 덜 필요해 상대적으로 빠르다. 비교적 안전하며, 대신 연산 성능이 떨어지는 편 web server와 was차이 web server HTTP 프로토콜을 기반으로 하여 웹브라우저의 요청을 서비스하는 기능 ex. apach server, Nginx was DB조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위..
SQL injection 막는법 입력값에 대한 유효성 검사를 해주는 방법과 저장 프로시저를 사용하는 방법이 있다. 저장 프로시저는 사용하고자하는 쿼리에 미리 형식을 지정해 보안성을 높일 수 있다. 데이터베이스 설계부터 구현까지 전체 프로세스는 요구분석, 개념적 설계, 논리적 설계, 물리적 설계, 구현입니다. 먼저 사용자의 DB 사용목적을 파악하고 요구조건 명세서를 작성합니다. 이후 트랜젝션 모델링과 개념 스키마 모델링을 수행하여 ER그램을 그리고 개념스키마를 설계합니다. 논리적 설계에서는 DBMS에 논리적 스키마를 설계하고 트랜젝션 인터페이스를 설계합니다. 그리고 설계된 DB를 실제 시스템 상에 구현하는 단계까지 입니다.
RESTful API (REpresentational State Transfer) 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식으로 자원을 정의하고 자원에 대한 주소를 HTTP Method 를 통해 지정하는 방법 전반에 대한 패턴 REST 6 가지 원칙 Uniform Interface : Stateless : Caching : Client-Server : Hierarchical system : Code on demand : cf) 보다 자세한 내용에 대해서는 Reference 를 참고해주세요. RESTful 하게 API 를 디자인 한다는 것? 리소스는 URI로 표현되는데 가리키는 것은 명사로 표현 행위는 HTTP Method로 표현하고, GET, POST, PUT, PATCH, DELET..
Maven vs Gradle Maven Gradle Apache사에서 만든 빌드툴(build tool) pom.xml파일을 통해 정형화된 빌드 시스템으로 프로젝트의 전체적인 라이프 사이클을 관리 그루비(Groovy)를 기반으로 한 빌드 도구 Ant와Maven과 같은 이전 세대 빌드 도구의 단점을 보완하고 장점을 취합하여 만든 오픈소스로 공개된 빌드 도구 - XML 기반으로 작성 - 생명주기(Lifecycle)와 프로젝트 객체 모델(POM, Project Object Model)이란 개념이 도입 - Ant의 장황한 빌드 스크립트를 개선 - pom.xml에 필요한 라이브러리를 선언하면 자동으로 해당 프로젝트로 불러와 편리 - 상대적으로 학습 장벽이 높다. - 라이브러리가 서로 의존하는 경우 복잡해질 수 있다..