전체보기

💎백엔드 : Backend

REST API

REST : Representational State Transfer 하나의 URI는 하나의 고유한 리소스를 대표하도록 설게된다는 개념에 전송방식을 결합해서 원하는 작업을 지정한다. URI + GET / POST / PUT / DELETE HTTP URI를 통해 제어할 자원을 명시하고, HTTP Method(GET, POST, PUT, DELETE)를 통해 해당 자원(Resource)을 제어하는 명령을 내리는 방식의 아키텍처 기존 Service : 요청에 대한 처리를 한 후 가공된 data를 이용해 특정 플랫폼에 적합한 형태의 View로 만들어서 반환. REST Service : data처리만 한다거나, 처라 후 반환될 data가 있다면 JSON이나 XML형식으로 전달. View에 대해서는 신경쓸 필요가..

🥇코딩테스트:Algorithm

벨만 포드 알고리즘

간선 중심 알고리즘 👉 그래프들을 에지 리스트로 구현 음수 간선이 포함된 상황에서의 최단 거리 문제에 사용. 음수 간선의 순환을 감지할 수 있음. 매번 모든 간선을 전부 확인 최단 거리 리스트에서 업데이트 반복 횟수는 V - 1 시간복잡도 : O(VE), 다익스트 알고리즘에 비해 느리다 음수간선이 있어도 순환이 발생하지 않는다면 최단거리를 계산할 수 있다. (음수간선의 순환이 발생하면 최단거리가 음의 무한인 노드가 발생하게 됨) 동작원리 1. 출발 노드를 설정 2. 최단 거리 테이블을 초기화 3. 다음의 과정을 N-1 번 반복 3-1. 전체 간선 E개를 하나씩 확인 3-2. 각 간선을 거쳐 다른 노드로 가는 비용을 계산하여 최단거리 테이블을 갱신 4. 만약 음수 간선 순환이 발생하는지 체크하고 싶다면 3..

📖데이터베이스:DB

[MySQL] union과 join의 차이

Union은 테이블을 수직 방향으로 합친다 이때 union은 중복 row를 제거하지만, union all 은 중복 row를 제거하지 않는다. Join은 테이블을 수평 방향으로 합친다 프로그래머스 sql 문제 중 " 오프라인/온라인 판매 데이터 통합하기" 문제에서 Union을 사용했다. ONLINE_SALE 테이블 OFFLINSE_SALE 테이블 ONLINE_SALE 테이블과 OFFLINE_SALE 테이블에서 2022년 3월의 오프라인/온라인 상품 판매 데이터를 추출하는 문제였다. (OFFLINE_SALE 테이블의 USER_ID값은 NULL 로 표시하라는 조건이 있었다.) 두 테이블의 결과를 합치기 위해 UNION을, 오프라인 테이블의 USER_ID를 NULL 로 나타내기 위해 NULL as user_id..

💎백엔드 : Backend

MyBatis

MyBatis Java Object와 SQL문 사이의 자동 Mapping 기능을 지원하는 ORM Framework MyBatis는 SQL을 별도의 파일(XML 혹은 자)로 분래해서 관리 Object 와 SQL 사이의 parameter mapping 작업을 자동으로 해 줌. 자바와 SQL을 연결만 해준다! JAVA - MyBatis - MySQL myBatis → Java와 myBatis → spring 따로 있음 JDBC Driver Loading (Driver Class) DB연결(Connection객체 생성) (url, id, pwd) SQL 실행 준비 SQL문장 Statement생성 SQL 실행 DB 속 종료 💡 위 방식에서 파란색 부분은 MyBatis가 알아서 해주고, 초록색 부분만 xml에 설정..

📖데이터베이스:DB

[MySQL] GROUP BY ... HAVING COUNT(*)

💡알게된 점 : GROUP BY의 HAVING 조건에 COUNT(*) 를 사용할 수 있다. 다음과 같은 테이블에서, 동일한 회원(USER_ID)이 동일한 상품(PRODUCT_ID)을 재구매한 데이터를 구하려면 SELECT USER_ID, PRODUCT_ID, COUNT(*) FROM ONLINE_SALE GROUP BY USER_ID, PRODUCT_ID HAVING COUNT(*) >= 2; 와 같이 하면 된다. 실행결과

🍔언어:Language

java

java를 공부하며 기록한 내용입니다.JAVA의 동작과정 객체지향 언어의 장점1. 상속 기능을 통해 코드의 재사용성을 높일 수 있다.2. 일상생활 모습의 구조가 객체에 자연스럽게 녹아들어 있기 때문에 생각하고 있는 것을 그대로 자연스럽게 구현할 수 있다.3. 잘 설계된 클래스를 만들어서 독립된 객체를 사용함으로써 개발의 생산성을 향상시킬 수 있음. 객체지향 언어의 단점1. 객체가 처리하려는 것에 대한 정확한 이해가 필요하기에 설계단계부터 많은 시간이 소모된다.2. 객체지향 언어는 대체적으로 실행속도가 느리다.3. 다중상속이 지원되는 c++의 경우에는 너무 복잡해져 코딩의 난이도가 상승할 수 있다. 자바 프로그램 실행과정1. 자바컴파일러(javac)에 의해서 .java 소스코드를 자바 바이트코드(.clas..

🖥️컴퓨터과학:CS

[운영체제]5장 - 프로세스 관리

프로세스 : 실행 중인 프로그램 프로세스의 문맥(context) : 프로세스가 현재 어떤 상태에서 수행되고 있는지 정확히 규명하기 위해 필요한 정보. CPU의 수행 상태를 나타내는 하드웨어 문맥 Program Counter 각종 register 프로세스의 주소 공간 code, data, stack 프로세스 관련 커널 자료 구조 PCB Kernel stack 프로세스의 상태 실행(running) CPU를 잡고 instruction을 수행중인 상태 준비(ready) CPU만 보유하면 당장 명령을 실행할 수 있는 상태(메모리 등 다른 조근을 모두 만족하고 있음) 봉쇄(blocked, wait, sleep) CPU를 주어도 당장 instruction을 수행할 수 없는 상태 프로세스가 요청한 입출력 작업이 진행중..

📖데이터베이스:DB

[MySQL] not a GROUP BY expression

group by에 집계함수를 사용하려면 select 절에서 집계함수를 쓰는 컬럼을 제외한 모든 컬럼은 group by 의 인자로 써줘야 함! SELECT I.REST_ID, I.REST_NAME, I.FOOD_TYPE, I.FAVORITES, I.ADDRESS, ROUND(AVG(R.REVIEW_SCORE),2) SCORE FROM REST_INFO AS I JOIN REST_REVIEW AS R ON I.REST_ID=R.REST_ID WHERE I.ADDRESS LIKE '서울%' GROUP BY I.REST_ID , I.REST_NAME, I.FOOD_TYPE, I.FAVORITES, I.ADDRESS ORDER BY SCORE desc, I.FAVORITES DESC; 프로그래머스 서울에 위치 식..

mc.thd
'분류 전체보기' 카테고리의 글 목록 (5 Page)