[SQL Developer] 4회차 Study


 - 일시: 1020 10:00 ~ 12:00

 - 위치: 강남역 CMAX Study

 - 주제:


  과목 2 SQL 기본 및 활용

   제1장 SQL 기본

    제5절 WHERE절

    제6절 함수(FUNCTION)

    제7절 GROUP BY, HAVING 절

    제8절 ORDER BY 절

    제9절 조인(JOIN) 절



 1. 정리(키워드)


 2. SQL 자격검정 실전문제 풀이 (32문제)

  * 암기할 내용이 많아 생각보다 많이 틀림...

  - WHERE 절에 사용될 수 있는 연산자

  - NULL에 대한 연산, 함수(NVL, COALESCE), 출력 결과 값

  - CASE 표현, DECODE

  - 집계 함수, NULL 처리



 3. Oracle AWS 제공

  - 장점 : 노트북에 무거운 Oracle 설치 안해도 됨 ! (진도 밀린 쿼리쳐야겠네..)

  * 굳이 AWS 환경이 필요 없다 생각하시면 로컬에 Oracle 설치 후 사용하셔도 전혀 문제 없습니다. ~

  * AWS Oracle 환경은 https://cafe.naver.com/sqlpd 카페 오프라인 스터디 참여후 카페장(월야루)님께서 제공해주시는 내용

  * 로컬에 Oracle 설치 후 http://www.dbguide.net/ 자료실에 SQL 전문가 가이드 책의 실습용 파일을 제공하고 있습니다.




[BoostCourse] 프로젝트 3 . 예약관리 시스템 : 메인페이지



 - 이전 글


 - 다음 글


 - Pass

 - Feedback



FeedBack 중


스크립트 파일 분할 작업 처리

 - 기존에는 script.js라는 파일 하나에 모든 JS가 작성되어있어 수정이 불편

 -> .js 파일의 기능별로 작성하여 불편함을 해소



불필요한 지역변수 선언

 - API 구현 시 return 값으로 Service쪽 메서드를 반환하는 작업에서 무의미한 코드가 존재

 -> return 값으로 서비스 함수를 바로 호출해서 넘기는 방향으로 수정


효율적이지 못한 로그확인 방법

 - API 구현 시 값이 제대로 넘어오는지 확인하기 위해서 System.out.println()을 통해 출력

 -> log4j, jUnit 활용 방법 생각



이래저래 일이 많아서 이제야 통과합니다...

[SQL Developer] 3회차 Study


 - 일시: 1013 10:00 ~ 12:00

 - 위치: 강남역 CMAX Study

 - 주제:

  과목 2 SQL 기본 및 활용

   제1장 SQL 기본

    제1절 관계형 데이터베이스 개요

    제2절 DDL

    제3절 DML

    제4절 TCL


 1. 정리(키워드)


 2. SQL 자격검정 실전문제 풀이 (32문제)

 - 테이블 컬럼 제약조건 (CASCADE)

 - 테이블 관계에서 참조무결성

 - DELETE, TRUNCATE, DROP 개념과 차이점

 - 트랜잭션의 개념

 - auto commit과 rollback과 save point

 

 3. Oracle 설치 및 SQL Developer 설치 및 AWS 연결 설정 확인

  (실습환경 구축)



[2018 10 07 정보처리기사 실기]


 알고리즘 - 25점

1. 순서도(12점)

 - 그레이코드(14년 1회 기사 기출)

 > input(2), input(t+2), binary(t+1), input(j+1), gray(j+1), k=1,4,1 (또는 k=4,1,-1)


2. 자바 (3점)

 - 피보나치 수열 합계 구하기

 > 12


3. c언어 (5점)

 - 주사위, 랜덤

 > n-1, hist[i]


4. c언어 (5점)

 - 스택 (18년 1회 기사 기출과 유사)

 - Next, Pop()


 데이터베이스 - 25점

1. SQL(2점)

 - count(*) 문제

 > 1


2. SQL (5점)

 - SQL 쿼리

 > SELECT 학번 FROM 학생 WHERE 이름 LIKE '이%' ORDER BY 학년 DESC;


3. 릴레이션 용어 (12점)

 - 데이터 모델의 기본 개념

  > 애트리뷰트, 튜플, 도메인, NULL, 차수(디그리), 카디널리티


4. 병행제어 (6점)

 - Exclusive Lock(insert, update, delete), Shared Lock(select)

 > O, O, 타임 스탬프    


* 이 부분에서는 논란이 있는 것 같으니 정확한 개념을 갖고 있어야 할 듯


 신기술 - 25점

1. 용어 (15점)

 - APT(13년 2회 기사 기출), 가용성, 킬스위치(18년 2회 기사 기출)

 > 트러스트존, QKD, APT, 가용성, 킬스위치


2. 용어 (10점)

 - MEMS, 웨버홀리즘(14년 3회 기사 기출)

 > MEMS, 위키노믹스, 웨버홀리즘, 컴패니언 스크린, IMT-2020


 업무프로세스 (15점)

- 15년 2회 기사 기출

> EA, ERP, EAI, MOT, VOC


 전산영어 (10점)

 - 15년 2회 기사 기출

 > VPN, VoIP, DRM


 시험 본 사람들의 좋은 소식이 많이 들려온 3회 시험

데이터베이스 한 문제, 신기술에서 2개 정도 그 외에는 익숙한 내용들이었던 것 같다.


* 참고 

http://www.gisafirst.com

[BoostCourse] REST API


 1. REST API의 등장

  - 클라이언트의 종류가 웹 브라우저, 안드로이드 앱, IOS 앱 등 다양해지면서 이러한 클라이언트들에게 정보를 제공하는 방식을 하나로 일원화시키려 했다.

  - 일원화시키는 방식 중에 대표적인 방식이 HTTP 프로토콜로 API를 제공하는 것이다.

  - HTTP 프로토콜로 제공하는 API를 REST API라고 한다.


 2. API의 개념

  - Application Programming Interface의 약자

  - 어떠한 기능을 구현하기 위해 정리해놓은 라이브러리 (function)

  - 응용프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스


 3. REST API란?

  - REST 형식의 API

  - 핵심 컨텐츠 및 기능을 외부 사이트에서 활용할 수 있도록 제공되는 인터페이스


그래서 REST 방식이란건 뭔데? 


 4. REST의 특징 및 스타일 (제약조건)


  - client-server 

  - stateless

  - cache

  - uniform interface **

  - layered system

  - code-on-demand (optional)


 위 해당 사항을 지킨 API만이 RESTful API이다.


** HTTP 프로토콜을 사용하면 위 조건을 충족시킬 수는 있으나 문제는 uniform interface의 조건은 충족하기 어렵다. ** 


uniform interface의 스타일


  - 리소스가 URI로 식별되어야 한다.

  - 리소스를 생성, 수정, 추가하고자 할 때, HTTP메시지에 표현(GET, PUT, POST, DELETE) 을 해서 전송해야 한다.

  - 메시지는 스스로 설명할 수 있어야 한다. (Self-descriptive message)

  - 애플리케이션의 상태는 Hyperlink를 이용해 전이되야 한다. (HATEOAS)


 * HATEOAS: 웹 페이지 자체에 관련된 링크가 있는 것을 말한다.


5. REST 구성

 - 자원(Resource) - URI

 - 행위(Verb) - HTTP METHOD

 - 표현(Representations)


6. REST API 디자인 가이드

 1) URI는 정보의 자원을 표현

 2) 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현한다.


 6-1. REST API 중심 규칙

  1) URI는 정보의 자원을 표현해야 한다. (리소스명은 동사보다는 명사를 사용)

GET /member/delete/1


  2) 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE 등)로 표현

DELETE /members/1


* HTTP Method

 Method

 역할 

 POST 

 POST를 통해 해당 URI를 요청하면 리소스를 생성 

 GET

 GET를 통해 해당 리소스를 조회, 리소스 조회 후 해당 도큐먼트에 대한 자세한 정보를 가져온다. 

 PUT 

 PUT를 통해 해당 리소스를 수정 

 DELETE 

 DELETE를 통해 리소스를 삭제 


* URI는 자원을 표현하는데 집중, 행위에 대한 정의는 HTTP Method를 이용하는 것이 REST API를 설계하는 중심 규칙


 6-2. URI 설계 시 주의할 점

  1) 슬래시 구분자(/)는 계층 관계를 나타내는 데 사용

  2) URI 마지막 문자로 슬래시(/)를 포함하지 않는다.

  3) 하이픈(-)URI 가독성을 높이는데 사용

  4) 밑줄(_)은 URI에 사용하지 않는다.

  5) URI 경로에는 소문자가 적합


 6-3 리소스 간의 관계를 표현하는 방법

  GET /users/{userid}/devices

  GET /users/{userid}/likes/devices


 6-4 자원을 표현하는 Collection과 Document

 http:// restapi.example.com/sports/soccer

 http:// restapi.example.com/sports/soccer/players/13


7. HTTP 응답 상태 코드

상태코드 

 

 200 

클라이언트의 요청을 정상적으로 수행 

 201

클라이언트가 어떠한 리소스 생성을 요청, 해당 리소스가 성공적으로 생성됨
(POST를 통한 리소스 생성 작업 시) 

 400

클라이언트의 요청이 부적절할 경우 사용 

 401 

클라이언트가 인증되지 않은 상태에서 보호된 리소스를 요청했을 때 사용 

(로그인 하지 않은 유저가 로그인 했을 떄, 요청 가능한 리소스를 요청 했을 때)

 403

유저 인증상태와 관계 없이 응답하고 싶지 않은 리소스를 클라이언트가 요청했을 때 사용하는 응답 코드

(403보다는 400이나 404을 사용할 것을 권고, 403 자체가 리소스가 존재한다는 뜻이기 때문)

 405

클라이언트가 요청한 리소스에서는 사용 불가능한 Method를 이용했을 경우 사용하는 응답 코드 

 301

클라이언트가 요청한 리소스에 대한 URI가 변경되었을 때 사용하는 응답 코드

(응답 시 Location Header에 변경된 URI를 적어 줘야 함)

 500

서버에 문제가 있을 경우 사용하는 응답 코드 


* 참고

https://ko.wikipedia.org/wiki/REST

https://meetup.toast.com/posts/92

https://www.edwith.org/boostcourse-web/lecture/16740/

[SQL Developer] 2회차 Study


- 일시: 1006 10:00 ~ 12:00

- 위치: 강남역 cmax Study

- 주제: 2장 데이터 모델과 성능


[전체]

 1. 기존 인원 중 3사람이 빠져서 충원 요청 (사유: 지난 회차 시험에 합격)

 2. 기출 주제별 빈도수 분석

 3. 기출문제는 정리해서 카페 운영자(월야루)님께서 10월 3주차 때쯤 제공


[2장]

 1. 정리(키워드)

 2. SQL 자격검정 실전문제 풀이 (1챕터 1, 2장) 총 51문제

 3. 정규화, 반정규화에 대한 내용은 확실하게 이해해야 할 듯 (사례가 주어졌을때 어떤 내용인지 알아야 함)



* 다음 주 부터는 쿼리 내용 정리해야 함

* 이론은 이제 자주 읽어서 익히기

[BoostCourse] 프로젝트 3. 예약관리 시스템 : 메인페이지



 - 이전 글


 - 다음 글


 - 기능 구현은 했으나 상세부부분을 수정해서 다시 제출하도록 한다.

 - 구현 방식을 정리

Project3 설정 및 구조 설계.pdf


1. List<DTO> 방식으로 JS에서 리턴받아 String 방식으로 처리했으나 Map 방식으로 API 수정


 - /api/promotions


 - /api/categoeis

- /api/products

 * index 컬럼이 하나 더 있는 이유는 product 데이터를 호출 했을 때 같은 product에 장소만 달라질 수 있다. 

 * 이와 같은 경우 본인은 id를 홀 짝으로 나눠서 <ul class="lst_event_box"> 태그 좌측, 우측으로 나눠 넣었었는데, 장소가 달라도 같은 product이기 때문에 한쪽으로 쏠리는 문제가 발생했다.


 * 그래서 데이터를 좌측, 우측으로 구분해서 넣을 구분자가 필요해, 임의로 쿼리에 rownum을 통해 임시로 만들었다.

 * 같은 product이면서 장소가 다를 경우 id가 같음에도 product 하나하나를 구분할 수 있는 index를 생성


 * 물론 다른 방법이 있을 수도 있다.


2. API 호출과 결과값을 받는 JS 쪽 구조 변경

 - 공통 모듈로 사용할 수 있는 코드로 최대한 작성



3. 자바스크립트 구조 변경 및  Promotions 캐러셀 슬라이드 구현

 - 작성중

 - 찾아본 참조 사이트

  1) https://freefrontend.com/css-carousels/

  2) http://hong.adfeel.info/frontend/%EA%B0%84%EB%8B%A8%ED%95%9C-carousel-%EC%98%88%EC%A0%9C/

  3) https://www.cssscript.com/top-10-javascript-css-carousels/


 - 결국 그냥 내가 하던데로 하게됨... CSS 적용 되게 하기가 힘듬..



자바스크립트 구조

1. commons.js, validations.js, ajax.js

2. scriptStart.js

3. categories.js, promotions.js, products.js







[BoostCourse] 프로젝트 4. 예약관리 시스템 : 상세페이지


 - 이전 글


 - 다음 글


리뷰 결과 -> Fail

다시 제출


1. 슬라이드

  - 캐러샐 방식으로 구현해야 하는데... 다시 하게 되었다...


 2. Java 컨벤션

  - 내가 보기편하려고 띄어쓰기로 여러 줄 맞춰 놓은게 문제가 될 줄이야...


 3. .gitIgnore 파일 생성

  - eclipse workspace에 생성해 놓았다.. 프로젝트 안에 생성해야 하는데 그 위에 생성해 놓았을 줄이야..

 - 코드 리뷰


 * 찾아본 코드 컨벤션

  - 코드 컨벤션에 대한 피드백은 뭐가 맞는지 잘 모르겠다.


https://www.oracle.com/technetwork/java/javase/documentation/codeconventions-141270.html#18761


 5. 주석!?!?



 6. js 파일명.. 



 7. 스크립트쪽 주석

  - 그래.. 가독성이 안좋을 수 있지.. 제출할 땐 지워야 겠네..



 8. 이건...

   - Oracle nvl 함수의 기능을 생각한거였는데 ...

   - null이 아니면 그 문자열 그대로 출력하기 위함

   - 유효성 검사를 위한 함수는 아니었기에 피드백에 의아함을 느낀다..




9. 추가로 공부해야 할 사항

 - JUnit Test를 공부할 것


+ Recent posts