분류 전체보기 65

REST API와 RPC API 차이

REST API의 기본 개념 리소스(Resource)데이터나 기능을 의미함예: /users, /posts/1, /products/4 HTTP 메서드(Method)로 동작을 구분GET: 데이터 조회POST: 데이터 생성PUT 또는 PATCH: 데이터 수정DELETE: 데이터 삭제 URL 설계는 명사 중심예: GET /users → 사용자 목록 가져오기예: POST /users → 사용자 생성 무상태성(Stateless)서버는 이전 요청 상태를 기억하지 않음모든 요청은 독립적 라이언트 요청에 필요한 모든 정보가 포함되어 있어야 함 (세션 X) JSON을 주로 사용요청이나 응답에서 데이터를 표현할 때 JSON 형식이 보편적 에러와 응답은 명확한 상태 코드 사용 예: 200 OK, 201 Created..

CS 2025.05.09

정보처리기사 필기&실기 기초 개념 모음 | 기출 정리 모음

기출 위주 정리 ✅ 리눅스 파일 권한 설정 [2023 3회 실기] 읽기 (r)4 쓰기 (w) 2 실행 (x) 1 사용자에게 읽기/쓰기/실행 권한,그룹에게는 읽기/실행,그 이외에는 실행 권한을 test.txt 파일에 부여하는 위한 명령어chmod 751 test.txt ✅ ATM [2023 3회 실기]자료를 일정한 크기로 정하여 순서대로 전송하는 자료의 전송 방식셀이라 부르는 고정 길이 패킷을 이용해 처리가 단순하고 고속망에 적합가상 채널 기반의 연결 지향 서비스로, 셀이라 부르는 고정 길이(53바이트) 패킷 사용 ✅ 포인터 Pointer#include int main() { char* p = "KOREA"; printf("%s\n", p); printf("%s\n", p..

CS 2025.04.15

Java 상속(Inheritance) 이해하기 - 업캐스팅, 다운캐스팅

우선, 메서드와 생성자의 정확한 차이부터 짚고 가야한다. 메서드와 생성자 차이구분 메서드 (Method) 생성자 (Constructor) 목적객체가 가진 동작/기능을 정의객체가 생성될 때 초기화이름아무 이름 가능클래스 이름과 동일해야 함반환 타입있어야 함 (void, int, etc)❌ 없음 (void도 안 씀)호출 시점객체가 만들어진 후 호출new 클래스명() 할 때 자동 호출호출 방법객체.메서드()new 클래스()상속/오버라이딩메서드는 오버라이드 가능생성자는 상속/오버라이드 불가 (다만 super()로 호출 가능) 업캐스팅과 다운캐스팅 개념방향설명업캐스팅자식 → 부모자식 객체를 부모 타입으로 참조 (자동)다운캐스팅부모 → 자식부모 타입 참조를 자식 타입으로 형변환 (명시적) 단, 실..

Java 2025.04.14

jqGrid에서 rowspan 하는 방법 - cellattr, gridComplete

방법1. cellattr 사용cellattr은 특정 셀(td)에 속성을 추가할 때 사용 jqGrid가 테이블을 렌더링할 때 개별적으로 td를 생성하기 때문에 직접적으로 rowspan을 부여하는 것은 어려우나, colModel에 cellattr을 설정하여 동적으로 속성을 부여할 수 있다. 방법2. gridComplete 사용그리드가 렌더링된 후 실행되는 이벤트    병합 전    병합 후         cellattr - 2줄 병합하기colModel: [ { name: 'chk', align: 'center', hidden: false, width: 50, edittype: 'checkbox', formatter: 'checkbox', editoptions: ..

JavaScript 2025.02.25

MySQL TimeStamp 시간이 다르게 저장되는 오류 - 9시간 차이

클라우드 로그 확인 중 분명 오전 9시 55분에 좋아요를 눌렀는데       화면에 표시되는 시간은 00시 55분이다..? (2번째 거) 딱 9시간 차이가 났다.        알고 보니 DB URL에 매개변수로 serverTimezone=UTC를 넣은 것이 문제였다. private static final String URL = "jdbc:mysql://0.0.0.0:3306/shop?&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";     1) UTC (Coordinated Universal Time, 협정 세계시) 전 세계 모든 시간대의 기준이 되는 시간  2) KST (Korea Standard Time, 한국 표준시)대한민국의 공식 시..

DB 2025.02.07

Google Cloud Run으로 배포한 서비스를 가비아 도메인과 연결하기

1. 가비아에서 도메인 구매  웹을 넘어 클라우드로. 가비아그룹웨어부터 멀티클라우드까지 하나의 클라우드 허브www.gabia.com 500원짜리 도메인들도 정말 많다. 나는 1년에 500원 도메인을 구매했다.       2. Google Cloud Run에서 TXT 가져오기  https://cloud.google.com/run?hl=ko cloud.google.com     Google Cloud Run 서비스 상단에 커스텀 도메인 관리 클릭       매핑 추가        연결할 서비스 선택        확인된 도메인이 없으니 Verify a new domain 선택 확인할 기본 도메인에는 가비아에서 구매한 xxx.com 주소를 넣어준다,        이후 Search Console을 선택      ..

Cloud 2025.01.10

docker 이미지를 Google Cloud Run에 배포하기

구글 클라우드 무료 크레딧(3개월)을 사용하여 배포해보았다.   Google Cloud Run이란?컨테이너화된 애플리케이션을 서버리스 방식으로 실행할 수 있는 Google Cloud의 완전 관리형 서비스Cloud Run은 애플리케이션을 컨테이너로 패키징하여 실행하고, 이를 관리하는 서버를 자동으로 제공 및 스케일링필요한 만큼만 자원을 소비하므로 사용자는 서버 인프라를 직접 관리할 필요가 없다. Docker 컨테이너로 배포한 앱을 클라우드로 쉽게 배포할 수 있는 서비스이다!     목차Google Cloud Run 서비스 생성DB 연결파일 볼륨 매핑   Google Cloud Run 서비스 생성  0. 아래 링크로 구글 클라우드 접속  Google 클라우드 플랫폼로그인 Google 클라우드 플랫폼으로 이동..

Cloud 2025.01.09

Docker war 파일 못찾음 not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type 에러 해결 방법

며칠 전까지 잘 돌아가던 내 도커 컨테이너 프로젝트가 갑자기 이런 에러를 남발한다..  Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting "/run/desktop/mnt/host/c/GovFrameDev-3.10.0-64bit/workspace/GPTProject/target/ROOT.war" to rootfs at "/usr/local/tomcat/webapps/RO..

Cloud 2025.01.07

Linux 리눅스 초기 root 계정 비밀번호 설정 방법

쉘에서 su 명령어입력  시 password를 입력하라고 뜨는데 아무리 해도 안 된다.. $ su     알고 보니 초기 root 비밀번호를 설정하지 않았던 것!       해결 방법  비밀번호 재설정으로 root 비밀번호를 설정하면 된다.  $ sudo passwd$ 현재 비밀번호 입력$ 새 비밀번호 입력$ 새 비밀번호 확인     비밀번호 업데이트 성공!     다시 root로 접근해보면 $ su     정상 접근된 것을 볼 수 있다.

Linux 2025.01.03

JavaScript ES6 템플릿 리터럴과 JSP에서의 사용

템플릿 리터럴이란? 템플릿 리터럴은 ES6(ECMAScript 2015)에서 도입된 새로운 문자열 리터럴 방식이다. ES6는 JavaScript의 6번째 버전으로, 다양한 새로운 기능들이 추가되었다. 템플릿 리터럴도 그 중 하나이다.템플릿 리터럴(Template literals)은 JavaScript에서 문자열을 다룰 때 사용하는 새로운 방식으로, 백틱(``)을 이용하여 문자열을 만들 수 있다. 이를 통해 문자열 내에 변수나 표현식을 쉽게 삽입할 수 있다.     1. 문자열 내에 변수 삽입템플릿 리터럴을 사용하면 문자열 안에 ${} 구문을 이용해 변수나 표현식을 삽입할 수 있다.let name = "Alice";let greeting = `Hello, ${name}!`; // 변수 'name'을 템플릿..

JavaScript 2024.12.30