AI에게 코드를 작성해 달라고 요청하면 웹사이트나 간단한 웹 도구를 생각보다 쉽게 만들 수 있습니다.
하지만 기능이 하나둘 늘어나기 시작하면 새로운 문제가 생깁니다.
- 학생들의 기록을 저장하고 다시 불러오려면 어떻게 해야 할까?
- 웹사이트와 데이터는 어떤 방식으로 연결될까?
- 로그인 기능은 어떻게 구현해야 안전할까?
- 기능이 많아져도 코드를 쉽게 수정할 수 있는 구조는 무엇일까?
이러한 문제를 해결하려면 단순히 코드를 생성하는 방법을 넘어 웹 서비스의 기본적인 설계 원리를 이해해야 합니다.
이번 글에서는 AI를 활용해 웹 도구를 개발할 때 알아두면 좋은 네 가지 개념을 정리해 보겠습니다.
① 데이터베이스 아키텍처
② RESTful API
③ 인증과 권한 관리
④ 디자인 패턴
개발자가 아니더라도 이해할 수 있도록 체육 수업에서 활용하는 '체육 1일 미션도장판'과 학생선수 관리 도구를 예시로 설명하겠습니다.
목차
- ⭐ 데이터베이스 아키텍처란 무엇일까?
- ⭐ RESTful API는 어떤 역할을 할까?
- ⭐ 인증과 권한 관리는 왜 필요할까?
- 디자인 패턴은 왜 알아야 할까?
- 네 가지 개념은 어떻게 연결될까?
- AI에게 웹 도구 개발을 요청하는 방법
- 오늘의 학습 정리
- 자주 묻는 질문(FAQ)
1. ⭐ 데이터베이스 아키텍처란 무엇일까?
1-1. 데이터베이스는 무엇일까?
웹 도구를 만들다 보면 기록을 저장해야 하는 상황이 생깁니다.
예를 들어 체육 1일 미션도장판을 만든다고 가정해 보겠습니다.
학생들이 미션을 성공할 때마다 도장을 찍고, 수업이 끝난 뒤에도 그 기록을 다시 확인하고 싶습니다.
이때 필요한 것이 데이터를 저장하고 관리하는 공간입니다.
데이터베이스(Database) 는 데이터를 체계적으로 저장하고, 검색하고, 수정하고, 삭제할 수 있도록 관리하는 시스템입니다.
엑셀을 떠올리면 이해하기 쉽습니다.
학번미션 이름성공 횟수기록 날짜
| 20601 | 연속 패스 | 10 | 2026-10-14 |
| 20602 | 목표 지점 맞히기 | 5 | 2026-10-14 |
| 20603 | 연속 패스 | 8 | 2026-10-14 |
이처럼 데이터를 표 형태로 정리할 수 있습니다.
물론 실제 데이터베이스는 엑셀과 다릅니다. 여러 사용자의 접근을 관리하고, 데이터 간의 관계를 표현하며, 많은 양의 데이터를 효율적으로 처리할 수 있습니다.
1-2. 데이터베이스 아키텍처는 무엇일까?
데이터베이스가 데이터를 저장하는 시스템이라면, 데이터베이스 아키텍처(Database Architecture) 는 데이터가 어디에 저장되고 어떤 구성 요소를 통해 처리되는지를 결정하는 전체 구조입니다.
쉽게 말해 웹 도구의 데이터를 어떻게 저장하고 관리할지 설계하는 것입니다.
예를 들어 다음과 같은 구조를 생각할 수 있습니다.
- 프런트엔드: 사용자가 보는 화면
- 백엔드: 데이터 처리와 업무 규칙을 담당하는 서버
- 데이터베이스: 실제 데이터를 저장하는 공간
사용자가 미션 성공 버튼을 누르면 다음과 같은 과정이 진행될 수 있습니다.
① 사용자가 웹 화면에서 미션 성공 버튼을 누릅니다.
② 프런트엔드가 서버에 기록 저장을 요청합니다.
③ 백엔드가 요청 내용을 확인하고 처리합니다.
④ 데이터베이스에 기록이 저장됩니다.
⑤ 처리 결과가 사용자 화면에 표시됩니다.
이러한 구조를 이해하면 데이터가 저장되지 않는 문제가 발생했을 때 어디를 점검해야 할지 판단하기 쉬워집니다.
1-3. 모든 웹 도구에 데이터베이스가 필요할까?
반드시 그렇지는 않습니다.
웹 도구의 목적과 데이터의 중요도에 따라 저장 방식을 다르게 선택할 수 있습니다.
저장 방식특징적합한 상황
| 메모리 | 프로그램이 실행되는 동안 데이터를 유지 | 임시 계산 |
| localStorage | 브라우저에 데이터를 저장 | 개인용 간단한 기록 도구 |
| 파일 저장 | JSON 등의 파일에 데이터를 저장 | 데이터 내보내기와 백업 |
| 서버 데이터베이스 | 서버에서 데이터를 관리 | 여러 사용자 간 데이터 공유 |
| 클라우드 데이터베이스 | 원격 서비스에서 데이터를 관리 | 여러 기기에서 접근하는 웹 서비스 |
예를 들어 HTML 파일 하나로 작동하는 미션도장판은 브라우저의 localStorage를 활용할 수 있습니다.
이 방식은 서버를 구축하지 않아도 되므로 간단한 도구를 만드는 데 유용합니다.
다만 브라우저에 저장된 데이터는 기본적으로 다른 기기나 브라우저와 자동으로 공유되지 않습니다. 사용자가 브라우저 데이터를 삭제하면 기록이 사라질 수도 있습니다.
반면 여러 교사가 같은 학급 데이터를 공유하거나, 기기를 바꾸어도 기록을 확인해야 한다면 서버 데이터베이스를 고려할 수 있습니다.
핵심은 무조건 복잡한 데이터베이스를 사용하는 것이 아니라, 만들려는 웹 도구에 적합한 저장 구조를 선택하는 것입니다.
2. ⭐ RESTful API는 어떤 역할을 할까?
2-1. API는 무엇일까?
API(Application Programming Interface)는 서로 다른 프로그램이 정해진 규칙에 따라 기능이나 데이터를 주고받을 수 있도록 하는 인터페이스입니다.
쉽게 말하면 프로그램끼리 소통하는 약속입니다.
예를 들어 학생선수 관리 웹 도구를 만든다고 가정해 보겠습니다.
화면에는 학생 목록이 표시되어 있고, 사용자는 학생을 추가하거나 출석인정결석 사용 기록을 입력할 수 있습니다.
이때 화면과 서버가 서로 다른 방식으로 동작하더라도 API를 통해 데이터를 주고받을 수 있습니다.
프런트엔드는 서버에 다음과 같은 요청을 보낼 수 있습니다.
- 학생 목록을 보여 주세요.
- 새로운 학생을 등록해 주세요.
- 특정 학생의 정보를 수정해 주세요.
- 잘못 등록한 기록을 삭제해 주세요.
이러한 요청을 처리할 수 있도록 약속된 규칙을 만드는 것이 API 설계의 중요한 역할입니다.
2-2. RESTful API는 무엇일까?
REST(Representational State Transfer)는 웹에서 자원을 다루기 위한 아키텍처 스타일입니다.
RESTful API는 이러한 REST의 원칙을 따르도록 설계한 API를 의미합니다.
REST에서는 일반적으로 학생, 학급, 출석 기록과 같은 대상을 자원(Resource)으로 다룹니다.
그리고 HTTP 메서드와 URL을 조합해 해당 자원을 조회하거나 변경합니다.
예를 들어 다음과 같이 설계할 수 있습니다.
HTTP 메서드요청 주소 예시역할
| GET | /students | 학생 목록 조회 |
| GET | /students/20601 | 특정 학생 조회 |
| POST | /students | 새 학생 등록 |
| PUT | /students/20601 | 학생 정보 전체 수정 |
| PATCH | /students/20601 | 학생 정보 일부 수정 |
| DELETE | /students/20601 | 학생 정보 삭제 |
※ 위 주소는 개념을 설명하기 위한 예시이며, 실제 서비스에서 작동하는 주소는 아닙니다.
이 표에서 기억해야 할 것은 두 가지입니다.
첫째, URL은 어떤 자원을 다루는지 나타냅니다.
둘째, HTTP 메서드는 그 자원에 어떤 작업을 수행할지 나타냅니다.
예를 들어 /students는 학생이라는 자원을 나타내고, GET은 학생 목록을 조회한다는 의미입니다.
2-3. 실제 웹 도구에서는 어떻게 활용할까?
학생선수 관리 도구를 만든다면 다음과 같은 기능을 생각할 수 있습니다.
학생 등록
사용자가 학생의 학번과 이름을 입력하고 저장 버튼을 누릅니다.
프런트엔드는 서버에 POST /students 요청을 보냅니다.
서버는 입력값을 확인하고, 문제가 없다면 학생 정보를 데이터베이스에 저장합니다.
출석 기록 조회
사용자가 특정 학생의 출석 기록을 확인합니다.
프런트엔드는 GET /students/20601/attendance-records와 같은 요청을 보냅니다.
서버는 해당 학생의 기록을 조회해 응답합니다.
출석 기록 수정
사용자가 잘못 입력한 기록을 수정합니다.
프런트엔드는 해당 기록을 수정하는 API를 호출하고, 서버는 권한과 입력값을 확인한 뒤 데이터를 변경합니다.
이처럼 API를 이용하면 화면과 데이터 처리 기능을 분리할 수 있습니다.
2-4. AI에게 API를 요청할 때 알아두면 좋은 점
AI에게 단순히 'API를 만들어 줘'라고 요청하는 것보다 필요한 기능과 규칙을 구체적으로 설명하는 편이 좋습니다.
예를 들어 다음과 같이 요청할 수 있습니다.
학생선수 관리 웹 도구의 RESTful API를 설계해 줘.
학생 목록 조회, 학생 등록, 학생 정보 수정, 학생 삭제 기능이 필요해.
각 API의 HTTP 메서드, URL, 요청 데이터, 응답 데이터, 오류 응답을 표로 정리해 줘.
학생 정보가 잘못 입력되거나 권한이 없는 사용자가 요청하는 경우도 고려해 줘.
이렇게 요청하면 단순히 코드를 생성하는 것을 넘어 전체 기능의 구조를 먼저 검토할 수 있습니다.
3. ⭐ 인증과 권한 관리는 왜 필요할까?
3-1. 인증과 권한은 서로 다르다
로그인 기능을 구현할 때 자주 등장하는 개념이 인증(Authentication)과 인가(Authorization)입니다.
두 개념은 비슷해 보이지만 역할이 다릅니다.
인증(Authentication) 은 사용자가 누구인지 확인하는 과정입니다.
인가(Authorization) 는 인증된 사용자가 특정 기능이나 데이터에 접근할 수 있는지 확인하는 과정입니다.
예를 들어 교사용 학생선수 관리 웹 도구를 생각해 보겠습니다.
교사가 아이디와 비밀번호를 입력하고 로그인합니다.
시스템은 해당 사용자가 등록된 사용자인지 확인합니다. 이것이 인증입니다.
로그인한 교사가 자기 학교의 학생 기록을 조회할 수 있는지 확인합니다. 이것은 인가에 해당합니다.
로그인에 성공했다고 해서 모든 데이터에 접근할 수 있는 것은 아닙니다.
3-2. 인증 흐름은 어떻게 진행될까?
웹 서비스의 인증 흐름은 사용하는 기술에 따라 달라집니다.
일반적인 웹 서비스에서는 다음과 같은 과정이 이루어질 수 있습니다.
① 사용자가 로그인 정보를 입력합니다.
② 프런트엔드가 로그인 요청을 서버로 보냅니다.
③ 서버가 사용자의 정보를 검증합니다.
④ 인증에 성공하면 서버가 세션을 생성하거나 토큰을 발급합니다.
⑤ 브라우저는 이후 요청에서 세션 쿠키 또는 토큰 등을 이용해 인증 상태를 전달합니다.
⑥ 서버는 요청을 처리하기 전에 인증 상태와 접근 권한을 확인합니다.
⑦ 권한이 확인되면 요청한 기능을 수행합니다.
여기서 세션과 토큰은 인증 상태를 유지하고 확인하는 데 사용되는 서로 다른 방식입니다.
세션 기반 인증에서는 서버가 세션 정보를 관리하고, 브라우저는 일반적으로 세션 식별자를 쿠키로 전달합니다.
토큰 기반 인증에서는 서버가 발급한 토큰을 이용해 요청의 인증 정보를 전달할 수 있습니다.
다만 토큰을 사용한다고 해서 자동으로 더 안전해지는 것은 아닙니다. 토큰의 저장 위치, 만료 시간, 폐기 방식과 전송 보안 등을 함께 고려해야 합니다.
3-3. 학생 정보가 포함된 웹 도구라면?
학생선수 관리 도구에는 학번, 이름, 출결 기록 등 보호가 필요한 정보가 포함될 수 있습니다.
이러한 데이터를 다루는 웹 도구를 개발한다면 단순히 로그인 버튼을 만드는 것만으로는 부족합니다.
다음 사항을 함께 설계해야 합니다.
- 로그인한 사용자만 허용된 기능을 이용하도록 설정하기
- 사용자의 역할에 따라 접근할 수 있는 기능 구분하기
- 서버에서 모든 중요한 요청의 권한 확인하기
- 비밀번호를 평문으로 저장하지 않고 안전한 비밀번호 해시 방식 사용하기
- HTTPS를 통해 데이터를 안전하게 전송하기
- 인증 정보와 비밀키를 소스 코드에 노출하지 않기
- 필요한 데이터만 수집하고 접근 기록을 적절히 관리하기
특히 브라우저에서 버튼을 숨기거나 화면 접근을 제한하는 것만으로는 충분하지 않습니다.
개발자 도구 등을 통해 직접 API를 호출할 수도 있기 때문입니다.
중요한 권한 검사는 반드시 서버 측에서도 이루어져야 합니다.
또한 학생 정보를 실제로 저장하는 서비스라면 관련 개인정보 보호 기준과 학교의 정보보안 지침을 확인해야 합니다.
4. 디자인 패턴은 왜 알아야 할까?
4-1. 디자인 패턴은 화면 디자인이 아니다
디자인 패턴(Design Pattern)이라는 용어를 처음 접하면 웹사이트의 색상이나 버튼 디자인을 떠올릴 수 있습니다.
하지만 소프트웨어 개발에서 디자인 패턴은 반복적으로 나타나는 설계 문제를 해결하기 위한 일반적인 설계 방식입니다.
쉽게 말해 프로그램을 어떤 구조로 만들면 수정과 확장이 쉬워지는지에 관한 경험을 정리한 것입니다.
예를 들어 처음에는 학생 목록을 보여 주는 기능만 만들었다고 가정해 보겠습니다.
이후 다음과 같은 기능을 추가하고 싶어질 수 있습니다.
- 학생 등록
- 학생 정보 수정
- 출석 기록 관리
- 기록 검색
- 엑셀 파일 내보내기
- 사용자별 권한 관리
모든 기능을 하나의 코드에 작성하면 처음에는 간단하지만, 기능이 늘어날수록 코드를 수정하기 어려워질 수 있습니다.
이때 프로그램의 역할을 나누고 각 기능이 서로 지나치게 의존하지 않도록 설계하는 것이 중요합니다.
4-2. 처음 알아두면 좋은 세 가지 설계 개념
① 관심사의 분리(Separation of Concerns)
서로 다른 역할을 하는 기능을 구분하는 원칙입니다.
예를 들어 화면을 표시하는 코드와 데이터를 저장하는 코드를 분리할 수 있습니다.
이렇게 하면 화면 디자인을 바꾸더라도 데이터 처리 코드 전체를 수정할 필요가 줄어듭니다.
② 단일 책임 원칙(Single Responsibility Principle)
하나의 모듈이나 클래스가 지나치게 많은 역할을 맡지 않도록 하는 설계 원칙입니다.
예를 들어 학생 정보를 조회하는 기능, 출석 기록을 계산하는 기능, 화면을 표시하는 기능을 구분할 수 있습니다.
다만 기능을 무조건 잘게 나누는 것이 좋은 것은 아닙니다. 프로젝트의 규모와 복잡성에 맞게 구분해야 합니다.
③ 저장소 패턴(Repository Pattern)
데이터를 가져오거나 저장하는 작업을 별도의 구성 요소로 분리하는 설계 방식입니다.
예를 들어 학생 정보를 저장하는 방식을 localStorage에서 서버 데이터베이스로 바꾸고 싶다고 가정해 보겠습니다.
데이터 접근 코드가 여러 화면에 흩어져 있다면 수정할 곳이 많아집니다.
반면 데이터 접근 기능을 별도로 분리해 두었다면 데이터 저장 방식을 바꾸는 작업을 보다 체계적으로 진행할 수 있습니다.
저장소 패턴이 모든 프로젝트에 반드시 필요한 것은 아니지만, 데이터 저장 방식이 바뀔 가능성이 있거나 여러 기능에서 같은 데이터를 다루는 경우 고려할 만합니다.
4-3. 디자인 패턴을 처음부터 모두 알아야 할까?
그럴 필요는 없습니다.
디자인 패턴은 종류가 많고, 모든 패턴이 모든 프로젝트에 적합한 것도 아닙니다.
AI를 활용해 간단한 웹 도구를 만드는 초기 단계라면 다음 순서로 학습하는 것이 좋습니다.
- 화면과 데이터 처리 기능을 분리하는 방법 이해하기
- 반복되는 코드를 함수로 정리하기
- 데이터 저장과 조회 기능을 별도로 관리하기
- 기능이 늘어날 때 필요한 설계 패턴을 찾아보기
처음부터 복잡한 설계 구조를 적용하면 오히려 코드가 어려워질 수 있습니다.
좋은 설계는 무조건 복잡한 설계가 아니라, 필요한 기능을 이해하기 쉽고 안전하게 유지할 수 있는 설계입니다.
5. 네 가지 개념은 어떻게 연결될까?
지금까지 살펴본 네 가지 개념은 서로 별개의 지식처럼 보이지만 실제 웹 서비스에서는 긴밀하게 연결됩니다.
학생선수 관리 웹 도구를 예로 들어 보겠습니다.
5-1. 전체 구조 살펴보기
① 프런트엔드
교사가 학생 목록과 출석 기록을 확인하는 화면입니다.
② RESTful API
프런트엔드와 서버가 학생 정보와 출석 기록을 주고받는 규칙입니다.
③ 인증 및 권한 관리
로그인한 사용자가 누구인지 확인하고, 해당 사용자가 어떤 학생 정보를 조회하거나 수정할 수 있는지 검사합니다.
④ 백엔드
요청을 받아 입력값과 권한을 검증하고, 필요한 업무 규칙을 적용합니다.
⑤ 데이터베이스
학생 정보와 출석 기록을 저장하고 관리합니다.
⑥ 설계 패턴
각 기능의 역할을 적절하게 나누어 코드가 복잡해지는 것을 방지합니다.
이를 실제 동작 과정에 적용하면 다음과 같습니다.
교사가 로그인한 뒤 특정 학생의 출석 기록을 조회합니다.
프런트엔드는 API를 통해 서버에 기록 조회를 요청합니다.
서버는 사용자의 인증 상태와 접근 권한을 확인합니다.
권한이 있다면 데이터베이스에서 해당 학생의 기록을 조회하고, 결과를 프런트엔드에 전달합니다.
화면은 전달받은 데이터를 표 형태로 보여 줍니다.
이 과정에서 데이터베이스는 데이터를 저장하고, API는 요청과 응답의 규칙을 제공하며, 인증과 권한 관리는 접근을 통제합니다.
디자인 패턴은 이러한 기능을 유지보수하기 좋은 구조로 구성하는 데 도움을 줍니다.
5-2. 처음부터 모든 구조를 만들 필요는 없다
중요한 것은 웹 도구의 규모에 맞는 구조를 선택하는 것입니다.
예를 들어 개인적으로 사용하는 간단한 미션도장판이라면 브라우저 저장 기능만으로도 충분할 수 있습니다.
하지만 여러 교사가 로그인해 학생 기록을 공유해야 하는 서비스라면 서버, 데이터베이스, API, 인증과 권한 관리가 필요할 가능성이 높습니다.
따라서 개발을 시작하기 전에 다음 질문을 해 보면 좋습니다.
- 데이터가 저장되어야 하는가?
- 다른 기기에서도 같은 데이터를 확인해야 하는가?
- 여러 사용자가 동시에 이용하는가?
- 사용자마다 접근 권한이 달라야 하는가?
- 나중에 새로운 기능을 추가할 가능성이 높은가?
이 질문에 대한 답이 전체적인 기술 구조를 결정하는 출발점이 됩니다.
6. AI에게 웹 도구 개발을 요청하는 방법
지금까지 살펴본 개념을 실제 AI 활용에 적용해 보겠습니다.
AI를 활용한 웹 개발에서 중요한 것은 모든 코드를 직접 작성하는 능력만이 아닙니다.
필요한 기능을 구체적으로 설명하고, AI가 제안한 구조가 적절한지 검토하며, 결과를 테스트할 수 있는 능력도 중요합니다.
6-1. 개발 전에 전체 구조부터 요청하기
예를 들어 학생선수 관리 웹 도구를 만들고 싶다면 다음과 같이 요청할 수 있습니다.
나는 학교에서 사용할 학생선수 관리 웹 도구를 만들고 싶어.
주요 기능은 학생 등록, 학생 목록 조회, 출석인정결석 사용 기록 관리, 잔여 일수 계산이야.
먼저 코드를 작성하지 말고 다음 내용을 설계해 줘.
- 전체 시스템 아키텍처
- 프런트엔드와 백엔드의 역할
- 데이터베이스 구조
- RESTful API 목록
- 로그인과 권한 관리 방식
- 기능별 모듈 구성
- 데이터 보안과 백업 방법
각 항목에서 왜 해당 설계가 필요한지 초보자도 이해할 수 있도록 설명해 줘.
또한 개인용 웹 도구로 시작하는 경우와 여러 교사가 함께 사용하는 서비스로 확장하는 경우의 차이도 비교해 줘.
이렇게 요청하면 개발을 시작하기 전에 필요한 구성 요소와 설계 방향을 파악할 수 있습니다.
6-2. AI가 작성한 코드도 검증하기
AI가 생성한 코드가 항상 정확하거나 안전한 것은 아닙니다.
따라서 다음 사항을 확인해야 합니다.
- 데이터가 실제로 저장되는가?
- 페이지를 새로고침해도 기록이 유지되는가?
- 다른 사용자의 데이터에 접근할 수 없는가?
- 권한이 없는 요청이 서버에서 차단되는가?
- 잘못된 데이터를 입력했을 때 적절한 오류가 발생하는가?
- 기존 기능을 수정한 뒤 다른 기능이 정상적으로 작동하는가?
- 백업한 데이터를 복원할 수 있는가?
특히 데이터베이스와 인증 기능은 단순히 화면에서 정상적으로 작동하는 것만 확인해서는 안 됩니다.
서버의 권한 검사, 데이터 검증, 오류 처리까지 함께 확인해야 합니다.
6-3. 개발 순서를 작게 나누기
처음부터 모든 기능을 한 번에 구현하려고 하면 오류의 원인을 파악하기 어려워질 수 있습니다.
따라서 다음과 같이 단계를 나누는 편이 좋습니다.
단계개발 목표
| 1단계 | 필요한 기능과 데이터 항목 정리 |
| 2단계 | 화면 구성과 사용자 흐름 설계 |
| 3단계 | 데이터 저장 방식 결정 |
| 4단계 | 핵심 기능 구현 |
| 5단계 | API와 서버 기능 연결 |
| 6단계 | 인증 및 권한 관리 구현 |
| 7단계 | 기능별 테스트와 오류 수정 |
| 8단계 | 백업·복원과 보안 점검 |
모든 프로젝트가 이 순서를 그대로 따르는 것은 아닙니다.
이미 사용하는 개발 환경이나 서비스에 따라 순서는 달라질 수 있습니다.
중요한 것은 기능을 작게 나누어 하나씩 구현하고, 각 단계가 정상적으로 작동하는지 확인하는 것입니다.
7. 오늘의 학습 정리
이번 6편에서는 AI 웹 도구를 개발할 때 알아두면 좋은 네 가지 개념을 살펴보았습니다.
개념핵심 질문기억할 내용
| 데이터베이스 아키텍처 | 데이터를 어디에 저장하고 어떻게 관리할까? | 데이터 저장 구조와 구성 요소를 설계한다. |
| RESTful API | 화면과 서버는 어떻게 소통할까? | 자원과 HTTP 메서드를 활용해 요청과 응답을 설계한다. |
| 인증과 권한 관리 | 누가 접속했고 무엇을 할 수 있을까? | 사용자 확인과 접근 권한 검사는 서로 다르다. |
| 디자인 패턴 | 기능이 늘어나도 코드를 쉽게 관리하려면? | 역할을 적절하게 분리하고 반복되는 설계 문제를 해결한다. |
이 개념들을 이해한다고 해서 곧바로 전문 개발자가 되는 것은 아닙니다.
하지만 AI가 작성한 코드를 무작정 사용하는 대신, 전체 구조를 이해하고 더 구체적인 개발 요청을 할 수 있게 됩니다.
특히 간단한 개인용 웹 도구와 여러 사용자가 함께 사용하는 웹 서비스를 구분할 수 있다는 점에서 의미가 있습니다.
처음에는 단순한 HTML 파일로 시작하더라도, 필요한 기능이 늘어나면 데이터베이스와 API를 활용하는 서비스로 발전시킬 수 있습니다.
AI를 잘 활용한다는 것은 코드를 대신 작성하게 하는 데서 끝나지 않습니다. 무엇을 만들지 정의하고, 어떤 구조가 필요한지 판단하며, 결과가 올바른지 검증하는 능력까지 갖추는 것입니다.
8. 자주 묻는 질문(FAQ)
Q1. 코딩을 잘하지 못해도 데이터베이스와 API를 공부해야 할까요?
네. 모든 코드를 직접 작성할 필요는 없지만, 데이터가 어떻게 저장되고 프로그램끼리 어떻게 연결되는지 이해하면 AI에게 더 구체적인 개발 요청을 할 수 있습니다.
Q2. HTML 파일 하나로 만든 웹 도구에도 RESTful API가 필요한가요?
반드시 필요한 것은 아닙니다. 브라우저 안에서만 작동하는 간단한 웹 도구라면 API 서버 없이 구현할 수 있습니다. 다만 외부 서버와 데이터를 주고받거나 여러 사용자 간 데이터를 공유하려면 API가 필요할 수 있습니다.
Q3. 데이터베이스와 localStorage는 무엇이 다른가요?
localStorage는 브라우저에 데이터를 저장하는 기능입니다. 일반적인 서버 데이터베이스는 서버에서 데이터를 관리하며, 적절한 서버와 권한 구조를 갖추면 여러 사용자가 데이터를 공유할 수 있습니다.
Q4. 로그인 기능만 만들면 학생 데이터를 안전하게 보호할 수 있나요?
아닙니다. 로그인 외에도 서버 측 권한 검사, 안전한 비밀번호 처리, HTTPS, 데이터 최소 수집, 백업과 복구 등 다양한 요소를 고려해야 합니다.
Q5. 디자인 패턴은 언제부터 공부하면 좋을까요?
처음에는 화면과 데이터 처리 기능을 분리하는 것부터 시작하면 좋습니다. 기능이 늘어나면서 코드 수정이 어려워질 때 필요한 설계 패턴을 하나씩 학습해도 충분합니다.
'★ 프로그래밍 > - 프로그램' 카테고리의 다른 글
| AI 웹앱 만들기 공부 7편|바이브코딩 보안 취약점 3가지와 배포 전 점검 방법 (0) | 2026.10.21 |
|---|---|
| AI로 체육 미션도장판 만들기 4편|학급 설정 기능 추가하고 다른 선생님도 사용하도록 확장하기 (0) | 2026.10.14 |
| AI 웹도구 만들기 공부 5편|나이스 Open API란? 학교정보를 내 웹앱으로 가져오는 방법 (1) | 2026.10.02 |
| AI로 체육 미션도장판 만들기 3편|체육 미션도장판 개발 실패 기록 (0) | 2026.09.29 |
| AI로 체육 미션도장판 만들기 2편|체육 미션도장판 업데이트, 학생별 5회 기록 입력 기능 추가하기 (0) | 2026.09.23 |