분류 전체보기

·Database/MySQL
7.2 조인 조인이란 두 개 이상의 테이블을 서로 묶어서 하나의 결과 집합으로 만들어 내는 것을 말한다. 데이터베이스의 테이블은 중복과 공간 방비를 피하고 데이터의 무결성을 위해서 여러 개의 테이블로 분리하여 저장한다. 그리고 이 분리된 테이블은 서로 관계를 맺고 있다. 조인을 통해 여러 테이블에 분산되어 있는 데이터를 효율적으로 관리하고 조회할 수 있다. 7.2.1 INNER JOIN(내부 조인) 조인 중에서 가장 많이 사용되는 조인이다. 두 개의 테이블을 결합하여 두 테이블 간의 일치하는 행만 반환한다. *교집합 buytbl, usertbl테이블에서 buytbl 테이블에 있는 userid 중 값이 KBS인 값을 갖는 해당 열을 출력한다. 각 테이블에 동일한 열 이름이 존재하기 때문에 '테이블이름.열 ..
·Database/MySQL
7.1 MySQL의 데이터 형식 7.1.1 MySQL에서 지원하는 데이터 형식의 종류 숫자형 형식 숫자형 데이터 형식은 정수, 실수 등의 숫자를 표현한다. DECIMAL 데이터 형식은 정확한 수치를 저장하게 되고, FLOAT, DOUBLE은 근사치의 숫자를 저장한다. ex) DECIMAL(5,2)이면 -999.99 ~ +999.99까지의 숫자 범위를 지정할 수 있다. FLOAT, DOUBLE은 상당히 큰 숫자를 저장할 수 있다는 장점이 있다. 부호 없는 정수를 지정할 때는 UNSIGNED 예약어를 뒤에 붙여준다. 부호 없는 정수로 지정하면 음수 숫자 범위가 양수 숫자 범위에 합쳐지게 된다. ex) TYNYINT는 0 ~ 255, INT는 0 ~ 약 42억 문자 데이터 형식 CHAR 형식은 고정길이 문자형..
#!/usr/bin/python3 from flask import Flask, request, render_template, make_response, redirect, url_for app = Flask(__name__) try: FLAG = open('./flag.txt', 'r').read() except: FLAG = '[**FLAG**]' users = { 'guest': 'guest', 'user': 'user1234', 'admin': FLAG } # this is our session storage session_storage = { } @app.route('/') def index(): session_id = request.cookies.get('sessionid', None) try: ..
본 문제의 목표는 admin 계정으로 로그인을 성공하는 것이다. 위 코드를 보면 가장 먼저 계정이 guest와 admin이 있는 것을 알 수 있다. guest의 경우 비밀번호가 guest인 것을 알 수 있으나 admin의 비밀번호는 FLAG로 되어있으며 알 수 없다. index 엔드포인트 코드를 보면 request.cookies.get('username', None)이 코드가 쿠키에서 username을 가져오는 것을 알 수 있는데 어떤 뜻인지 확인해보기 위해 먼저 guest로 로그인 해보았다. username과 비밀번호를 각각 guest, guest로 입력하면 로그인이 되어 위와 같은 페이지가 나온다. guest계정이고, admin계정이 아니라는 것을 주는 것 같다. 쿠키를 확인해보면 쿠키의 이름은 us..
·Database/MySQL
6.1 SELECT 구문 6.1.1 원하는 데이터를 가져와주는 기본적인 SELECT 문은 가장 많이 사용하는 구문으로 데이터베이스 내의 테이블에서 원하는 정보를 추출하는 명령이다. SELECT문은 다양한 옵션으로 인해 구문 형식이 복잡해보이지만 많이 사용되는 형태로 요약한 구조는 다음과 같다. USE 구문 SELECT문을 학습하기 위해서는 가장 먼저 사용할 데이터베이스를 지정해야 한다. 이렇게 지정된 DB는 다른 DB를 사용하겠다고 명시하지 않은 이상 모든 SQL문은 USE 구문에 의해 사용된 DB에서 수행된다. SELECT와 FROM 원래 테이블의 전체 이름은 '데이터베이스 이름.테이블 이름'형식으로 표현된다. 하지만 선택된 데이터베이스 이름이 자동으로 붙게되어 생략이 가능한 것이다. 특정 열만 조회도..
·Database/MySQL
5.2 외부 MySQL 서버 관리 Linux는 대부분 명령어 모드만 사용하기 때문에 MySQL 툴인 Workbench를 사용할 수 없다. Linux 컴퓨터에 설치된 MySQL 서버를 사용하고 싶다면 다음과 같은 구성을 해야 된다. 1. Linux 컴퓨터의 방화벽에서 MySQL 포트인 3306번을 허용하도록 설정해야 한다. 2. Linux 컴퓨터의 IP 주소를 알고 있어야 한다. 3. Windows 컴퓨터의 Workbench에서 Linux 컴퓨터로 연결고리를 만들어야 한다. 가장 먼저 해당 Linux의 ip 주소를 확인한다. Workbench에서 리눅스에 연결할 계정을 만든다. Hostname을 기존 127.0.0.1에서 리눅스 ip인 192.168.52.132로 수정한다. WorkBench에서 만든 계정..
·Database/MySQL
4.1 프로젝트 진행 단계 프로젝트란 현실세계의 업무를 컴퓨터 시스템으로 옮겨놓는 일련의 과정이다. 초기에는 혼자서 하는 프로젝트의 경우 별 문제가 되지않았지만 근래에 들어서 프로그램을 작성해야 하는 규모가 커지고 사용자들의 요구사항이 복잡해지며 문제가 생겼다. 큰 규모의 프로젝트를 할 당시 계획하고 분석하기보다는 만들기에 급급해 코딩하는 습관에만 길들어져 있어 프로그램을 삭제하고 처음부터 다시 짜야하는 상황이 자주 발생했다. 그 원인이 분석과 설계 작업을 등한시 하는 고질적인 문제점을 깨닫고 해결하기 위해 소프트웨어 개발 방법론이 나타났다. 폭포수 모델 소프트웨어 개발 모델은 많지만 가장 오래되고 전통적으로 사용되어 왔다. 말 그대로 폭포가 떨어지듯이 각 단계가 끝나면 바로 다음 단계로 진행한다. 장점..
·Database/MySQL
3.1 요구사항 분석과 시스템 설계 그리고 모델링 3.1.1 정보 시스템 구축 절차 요약 정보시스템을 구축하기 위해서는 일반적으로 분석, 설계, 구현, 시험, 유지보수의 5가지 단계를 거친다. 1. 분석 단계는 가장 첫 번째 단계로 시스템 분석 또는 요구사항 분석이라고 부른다. 요구사항 분석은 현재 우리가 무엇을 할 것인지를 결정한다. 사용자의 인터뷰와 업무 조사 등을 수행해야한다. 2. 설계 단계는 주로 시스템 설계 또는 프로그램 설계라고 부른다. 우리가 구축하고자 하는 시스템을 어떻게 할 것인가를 결정한다. 시스템 설계가 끝나면 그 결과 문서들을 개발자에게 넘겨주고 개발자는 설계서에 나온 대로 프로그램을 진행한다. 그렇기 때문에 분석과 설계 과정이 전체의 50% 이상을 차지한다. 3.1.2 데이터베이..
최하호
'분류 전체보기' 카테고리의 글 목록 (10 Page)