CodeGym /행동 /SQL SELF /CodeGym 플러그인 설치하기

CodeGym 플러그인 설치하기

SQL SELF
레벨 4 , 레슨 4
사용 가능

플러그인은 Intellij IDEA, WebStorm 또는 PyCharm 개발 환경에 통합돼서, CodeGym 코스의 과제를 IDE에서 바로 풀 수 있게 해줘. 예를 들어, 코드 작성, 제출, "기본" 해답과 비교 등등 여러 가지를 할 수 있어. 플러그인에서 과제 푼 진행 상황은 네 CodeGym 계정이랑 동기화돼서, 웹사이트랑 IDE에서 똑같이 보여.

CodeGym 플러그인은 Jetbrains 마켓플레이스에서 바로 IDE에서 다운로드할 수 있어. 아래에서는 WebStorm을 예로 들지만, 다른 IDE도 똑같이 하면 돼.

플러그인을 사용하려면 Jetbrains IDE 2023.1 이상 버전이 필요해.

  1. "설정" 메뉴로 들어가. Windows/Linux는 File - Settings, MacOS는 WebStorm - Preferences야. 만약 설정 메뉴가 안 보이면, 아무 프로젝트나 열거나 새로 만들어봐.

  2. 나온 창의 왼쪽 메뉴에서 Plugins를 선택하고, Marketplace 탭을 열어. 검색창에 codegym라고 입력해.

  3. 플러그인을 선택하고 Install 버튼을 눌러.
  4. WebStorm을 재시작(IDE 재시작)해서 플러그인을 사용할 수 있어.

플러그인 설치 완료!

계정 로그인 및 과제 불러오기

  1. 조금 바뀐 인터페이스와 계정 로그인 버튼이 상단 가로 메뉴에 보여.

    버튼을 누르면 계정 로그인 창이 뜨고, 거기서 네 비밀 키를 입력해야 해:

    비밀 키는 설정 → 보안 및 로그인에서 찾을 수 있어.

  2. 새 과제를 열려면, 왼쪽 세로 메뉴에서 Tasks를 누르고, 왼쪽 패널에서 과제 카드를 클릭한 다음 열기를 눌러:

  3. 새 과제를 열면, 여러 개의 중요한 파일이 있는 작업 공간이 보여:
    • Solution — 이게 네가 SQL 쿼리를 작성할 메인 작업 파일이야.
    • init.sql — 이건 로컬 데이터베이스 준비용 보조 스크립트야. 필요한 테이블 생성과 데이터 입력 방법이 들어있어.
    • 과제 조건 탭.
  4. Solution 파일은 웹사이트랑 똑같아. 해답을 작성하고 검증/Validate 버튼을 누르면 돼.

로컬에서 해답 실행하기

  1. 먼저, 네 로컬 데이터베이스에 과제용 테이블과 데이터를 만들어야 해. init.sql 파일을 열고, 마우스 오른쪽 클릭해서 Run 'init.sql'을 선택해.
  2. 나온 "Edit Configuration" 창에서, 스크립트를 실행할 위치를 지정해야 해. "Target data source / schema" 섹션에서 +를 눌러서 네가 설정한 연결을 선택하고, 원하는 스키마(예: university)를 골라. 선택 후 Run을 눌러.
  3. 성공적으로 실행되면, 아래 콘솔에 메시지가 떠. "Database" 패널(두 개의 화살표 버튼)에서 데이터베이스 뷰를 새로고침하면, 새 테이블(예: products)이 네 스키마에 보여야 해.
  4. 이제 데이터베이스가 준비됐으니, solution.sql 파일로 돌아가. SQL 쿼리를 작성하고, 에디터 위 드롭다운에서 네 스키마를 선택한 다음 초록색 "Run" 버튼을 눌러. 쿼리가 로컬 데이터베이스에서 실행되고 결과를 볼 수 있어.

init.sql 재실행 또는 의존성 문제 해결

작업을 진행하면서 로컬 데이터베이스를 준비하기 위해 init.sql 스크립트를 자주 실행하게 됩니다. 하지만 테이블이 이미 생성된 상태에서 두 번째로 실행하면 어떻게 될까요?

이러한 스크립트에서 흔히 볼 수 있는 DROP TABLE IF EXISTS employees; 명령어는 새 테이블을 만들기 전에 기존 테이블을 삭제하여 이 문제를 해결해야 할 것 같지만, 항상 그런 것은 아닙니다. 테이블 삭제를 막는 오류가 발생할 수 있습니다. 이는 다른 데이터베이스 객체, 예를 들어 다른 테이블의 외래 키(Foreign Keys)나 자동 증가(auto-increment) 필드에 사용되는 시퀀스(sequences)가 해당 테이블을 참조할 때 발생합니다. 시스템은 이러한 연결을 보호하여 "부모" 테이블이 삭제되는 것을 방지합니다.

CASCADE 옵션

이러한 경우를 위해 PostgreSQL에는 DROP 명령어를 위한 확장 기능인 CASCADE 옵션이 있습니다. 이 옵션은 서버에게 "이 테이블을 삭제하고, 이 테이블에 의존하는 모든 객체도 자동으로 삭제하라"고 지시합니다. 이를 통해 삭제하려는 테이블과 관련된 모든 것을 "강제로" 정리할 수 있습니다.

코드 예시


-- 이 방식은 employees 테이블에 참조가 있을 경우 오류를 발생시킬 수 있습니다
DROP TABLE IF EXISTS employees;

-- 학습용 스크립트를 위한 대안
-- employees 테이블과 그에 종속된 모든 객체(키, 시퀀스)를 삭제합니다.
-- IF EXISTS는 테이블이 아직 존재하지 않을 경우 오류를 방지합니다.
DROP TABLE IF EXISTS employees CASCADE;

-- 이 후 안전하게 테이블을 다시 생성할 수 있습니다
CREATE TABLE employees (
    id SERIAL PRIMARY KEY,
    full_name TEXT NOT NULL
    -- ... 다른 열들
);

중요! 학습 목적으로 또는 DB 구조를 자주 다시 만들어야 하는 로컬 개발 환경에서 CASCADE는 최고의 도우미입니다. 하지만 실제 운영 데이터베이스에서는 이 명령어가 의도치 않은 중요 관련 데이터 및 객체의 삭제로 이어질 수 있으므로 매우 신중하게 사용해야 합니다.

과제 동기화: 사이트 ↔ 플러그인

과제 목록과 상태는 자동으로 5분마다, 또는 어떤 과제든 검증(서버 CodeGym) 제출 후에 갱신돼.

그래서 웹사이트에서 과제를 풀면, 플러그인에서도 해결된 과제 목록에 보여. 지금 바로 상태 정보를 새로고침하고 싶으면, 오른쪽 위에 있는 네 아바타를 클릭하고, 드롭다운 메뉴에서 과제 동기화를 선택해:

플러그인 초보자 모드

이건 WebStorm이나 다른 개발 환경에 익숙하지 않은(혹은 거의 경험 없는) 사람들을 위한 간단 버전이야. WebStorm의 몇몇 기능이 숨겨져 있어. 이 모드를 끄려면, 오른쪽 위에 있는 네 아바타를 클릭하고, 드롭다운 메뉴에서 설정을 선택해:

PRO 모드에서 플러그인 네비게이션 패널 숨기기

설정(⚙️) 메뉴를 누르고, "플러그인 네비게이션 패널 표시" 체크를 해제하면 돼:

코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION