본문 바로가기

전체 글368

파이썬 고급 문법(class~모듈과 패키지) class   __init__   멤버변수   메소드   self   상속   super   다중상속   메소드 오버라이딩   pass   예외처리    에러   모듈   패키지 2024. 9. 13.
파이썬 중급 문법 (함수~with) 함수   전달값   반환값   기본값   키워드값   가변인자   지역변수   전역변수   사용자 입력   파일입출력   with 2024. 9. 13.
파이썬 초급 문법2 (if~리스트 컴프리핸션) if문   if 조건문   for 반복문   range   for활용   while   break   continue   들여쓰기   리스트 컴프리핸션 2024. 9. 13.
파이썬 초급 문법 (슬라이싱~ 자료형 변환) 슬라이싱슬라이싱이란, 어디부터 : 어디까지를 추출해주는 것이다.정확히 말하면 어디부터 : 어디 직전까지 이다.a = [1, 2, 3, 4, 5]print(a[1:3]) #[2, 3]print(a[:3]) #[1, 2, 3]  문자열 처리# [문자열 더하기]snack = '꼬깔콘'num = '2개'plz = snack + num # 꼬깔콘 2개plz += '주세요'# 꼬깔콘 2개 주세요.# [여러줄 문자 만들기]snack = ''' 꼬깔콘은너무 맛있는 과자'''# 꼬깔콘은# 너무# 맛있는 과자  문자열 메소드 1   문자열 포멧   탈출 문자   리스트    튜플   세트   딕셔러니   자료형 비교   자료형 변환 2024. 9. 13.
파이썬 기초 문법 (자료형 ~ 불리안) 자료형intfloatstringbolllsit: [] -> 수정 가능 / 연산 속도 下tuple: () -> 수정 불가능 / 연산 속도 上dict: {}Nonex = 30y = 0.134s = 'string'bool = Trueli = [10, -324.33, 'a', "bbb"]tup = (10, -233.33, '안녕', "KK")dict = {"a": 1, "b": "둘", 'c': "3"}nothing = None  변수변수 이름 = 값#[예시]a = 10b = "hello"c = True 다른 언어들과 다르게 따로 타입명을 명시하지 않아도 파이썬이 입력 값에 따라 자동으로 타입을 파악한다. 변수명문자 또는 _로 시작 - ex) name, _name문자, 숫자, _로 구성 - ex) name123.. 2024. 9. 13.
연결된 테이블 2개의 Entity(Foreign Key) 게시판이 있고 그 게시판의 댓글이 있는 서버를 구축한다고 해보자.그럼 우선 Table을 두개 만들어야한다. Post와 Comment 테이블을 만들어보자. [POST]Column NameData TypeDescriptionidBIGINT게시글 고유 ID(Primary Key)titleVARCHAR게시글 제목contentVARCHAR게시글 내용authorVARCHAR게시글 작성자  [COMMENT]Column NameData TypeDescriptionidBIGINT댓글 고유 ID(Primary Key)contentVARCHAR댓글 제목authorVARCHAR댓글 작성자  이렇게 테이블을 만들면 문제가 있다. 테이블 댓글 모두 잘 만들어지지만 특정 댓글이 어떤 게시글에 포함된건지 알 수 없다. 즉, 서로를 .. 2024. 9. 5.
Spring을 이용해 DB와 연동된 ToDoList iOS 앱 제작(3) - 앱 제작 iOS 앱제작은 간단하게 구성하여 사진 없이 글로 설명하겠다. 1. 테이블뷰 todolist의 목록은 테이블뷰를 통해서 나타냈다. viewDidLoad() 메소드에서 Alamofire를 이용하여 DB에 저장된 ToDo를 가져와 테이블 뷰에 뿌려주었다. 2. AlamofireAlamofire를 이용해서 API 통신을 좀 더 쉽게 처리하였다. 3. 데이터 전달특정 버튼을 누르거나 동작을 수행하면 델리게이트 패턴을 이용해서 Alamofire가 있는 메소드를 실행시켰다.또한 성공 값을 이용해야하는 부분도 델리게이트 패턴을 이용해서 받아오고 그 값을 이용해 테이블 뷰를 다시 구성해주었다.  아래는 전체 화면 구성이다.  Spring 파일: https://github.com/iOS-junsoo/todolist-sp.. 2024. 8. 29.
Spring을 이용해 DB와 연동된 ToDoList iOS 앱 제작(2) - 서버제작 [전체 목차]1. 스프링 부트 프로젝트 생성2. 프로젝트 열기, 파일 구조 형성3. 모델이 되는 객체, 객체 생성자 정의4. Repository 개발5. Sevice 개발6. 서버 단위 테스트7. Controller 개발8. DB(H2) 연결9. 통합테스트10. JPA에서 Spring Data JPA로 전환  1. 스프링 부트 프로젝트 생성  2. 프로젝트 열기, 파일 구조 형성이 단계에서는 Domain, Controller, Repository, Service의 패키지를 만들어준다.  3. 모델이 되는 객체, 객체 생성자 정의 - Domain//Domain - 해당 패키지는 객체를 생성하는 곳입니다.package todolist.todolist_spring.domain;public class Todo .. 2024. 8. 29.
Spring을 이용해 DB와 연동된 ToDoList iOS 앱 제작(1) 전체 구조 위의 이미지처럼 데이터가 전송되고 데이터를 받아온다. (화살표 방향은 단방향이지만 양방향으로 소통한다.) 2024. 8. 29.
스프링 데이터 JPA 정의스프링 데이터 JPA란? 스프링 프레임워크의 일부로, 데이터베이스와 상호작용을 간편하게 만들어주는 도구이다. 핵심 기능기본적인 데이터 베이스 작업 자동화데이터를 저장, 조회, 수정, 삭제하는 작업을 자동으로 처리해주는 여러 메서드를 제공한다.예) save(), findAll()인터페이스 기반 개발단순히 인터페이스를 정의하는 것만으로도, 스프링 데이터 JPA가 필요한 메서드를 자동으로 구현해준다쿼리 메서드 지원메서드 이름만 잘 지으면, SQL을 직접 작성하지 않아도 데이터 베이스에서 원하는 데이터를 쉽게 조회할 수 있다.예를 들면 findByName(String name)이라는 메서드를 작성하면, 자동으로 데이터 조회하는 SQL이 생성된다.  1. 스프링 데이터 JPA 회원 Repository 만들기파.. 2024. 8. 27.
회원 관리 - 전체 구조 2024. 8. 27.
JPA를 통해서 DB와 연결하기 JPA란?JPA (Java Persistence API)는 자바에서 데이터베이스와 상호작용하기 위한 표준 기술이다.JPA를 사용하면 개발자가 직접 SQL을 작성하지 않고도 데이터 베이스의 데이터를 관리할 수 있다.  쉽게 말하면 JPA는 자바 프로그램이 데이터베이스와 쉽게 이야기할 수 있게 해주는 도구이다. 예를 들어 게임에서 아이템을 창고에 넣거나 꺼내올 때, JPA는 이 작업을 쉽고 빠르게 할 수 있도록 도와준다. 우리가 직접 창고가 있는 곳까지 가서 넣거나 빼지 않아도 JPA라는 도구가 알아서 일을 처리해준다. 1. build.gradle 파일에 JPA, h2데이터 베이스 관련 라이브러리 추가하기dependencies { implementation 'org.springframework.boot:sp.. 2024. 8. 26.
H2 데이터 베이스 설치 및 테이블 생성 1. h2 데이터 베이스 설치https://www.h2database.com 2. 다운 받은 폴더에서 터미널을 열어준다.h2 폴더 우클릭 후 폴더에서 새로운 터미널 열기! 3. 열린 터미널에서 아래의 명령어 차례대로 입력하기//권한 주는 명령어(mac)chmod 755 h2.sh//실행(웹페이지 열기)./h2.sh4. 데이터베이스 파일 생성 실행을 하면 아래의 웹페이지가 뜬다.이제 데이터베이스 파일을 생성해보자.JDBC URL에 최초 한번만 h2:~/test 해당 경로를 입력하고 연결을 클릭한다.그리고 터미널에서 cd .을 해보면 test.mv.db 파일이 생성될 것이다. 이후 부터는 JDBC URL에 jdbc:h2:tcp://localhost/~/test 으로 입력하고 연결해준다. 5. 테이블 생성하기.. 2024. 8. 26.
숫자함수 SQL에서 숫자 함수는 숫자 데이터를 처리하고 계산하는 데 사용됩니다. 이러한 함수들은 다양한 연산과 수학적 작업을 수행할 수 있도록 해줍니다. 아래에 주요 숫자 함수들을 간단히 설명드리겠습니다.주요 숫자 함수1. ABSABS 함수는 숫자의 절대값을 반환합니다. 즉, 음수를 양수로 변환합니다.구문: ABS(숫자)예시:SELECT ABS(-5) AS result;결과: 52. CEILCEIL 함수는 주어진 숫자보다 크거나 같은 가장 작은 정수를 반환합니다. 소수점을 올림합니다.구문: CEIL(숫자)예시:SELECT CEIL(4.2) AS result;결과: 53. FLOORFLOOR 함수는 주어진 숫자보다 작거나 같은 가장 큰 정수를 반환합니다. 소수점을 내림합니다.구문: FLOOR(숫자)예시:SELECT.. 2024. 8. 26.
UPPER / LOWER UPPER와 LOWER는 SQL에서 문자열의 대소문자를 변환하는 함수입니다.📌 UPPER 함수UPPER 함수는 문자열의 모든 문자를 대문자로 변환합니다.기본 구문UPPER(문자열)문자열: 대문자로 변환할 문자열입니다.사용 예시SELECT UPPER('Hello World') AS result;--결과: HELLO WORLD 설명:'Hello World' 문자열의 모든 문자를 대문자로 변환하여 'HELLO WORLD'를 반환합니다.📌 LOWER 함수LOWER 함수는 문자열의 모든 문자를 소문자로 변환합니다.기본 구문LOWER(문자열)문자열: 소문자로 변환할 문자열입니다.사용 예시SELECT LOWER('Hello World') AS result;--결과: hello world 설명:'Hello Worl.. 2024. 8. 26.
SUBSTR SUBSTR 함수는 SQL에서 문자열의 일부를 추출할 때 사용하는 함수입니다. 원하는 문자열에서 특정 위치부터 지정한 길이만큼의 부분 문자열을 얻을 수 있습니다.📌 기본 구문SUBSTR(문자열, 시작위치, [길이])문자열: 부분 문자열을 추출할 원본 문자열입니다.시작위치: 추출을 시작할 위치를 나타내는 정수입니다.양의 정수일 경우 문자열의 왼쪽부터 계산합니다.음의 정수일 경우 문자열의 오른쪽부터 계산합니다.길이 (선택사항): 추출할 문자 수를 나타내는 정수입니다.생략하면 시작위치부터 문자열의 끝까지를 추출합니다.데이터베이스 시스템에 따라 SUBSTRING이라는 이름으로도 사용됩니다.Oracle, PostgreSQL: SUBSTRMySQL, SQL Server: SUBSTRING📚 사용 예시예시 1: .. 2024. 8. 26.
REPLACE REPLACE 함수는 SQL에서 문자열 내의 특정 부분을 다른 문자열로 바꾸는 데 사용되는 함수입니다. 이 함수는 지정한 문자열을 찾아서 다른 문자열로 대체한 새로운 문자열을 반환합니다.기본 구문:REPLACE(원본문자열, 찾을문자열, 대체할문자열)원본 문자열: 바꾸려는 작업을 수행할 대상 문자열입니다.찾을 문자열: 원본 문자열에서 찾을 부분 문자열입니다.대체 할 문자열: 찾은 문자열을 대체할 새 문자열입니다. 예시:SELECT REPLACE('Hello World', 'World', 'SQL') AS replaced_text FROM dual;이 예시에서는 'Hello World'라는 문자열에서 'World'라는 부분을 찾아 'SQL'로 대체하여, 결과적으로 'Hello SQL'이라는 문자열이 반환됩니.. 2024. 8. 26.
날짜 함수 정의날짜 함수란? 날짜 데이터를 조작하기 위한 함수1. CURRENT_DATE기능: 현재 날짜를 반환합니다.예시: 이 쿼리는 현재 시스템 날짜를 반환합니다.SELECT CURRENT_DATE FROM dual;2. SYSDATE기능: 현재 날짜와 시간을 반환합니다. Oracle에서 주로 사용됩니다.예시: 이 쿼리는 현재 시스템의 날짜와 시간을 반환합니다.SELECT SYSDATE FROM dual;3. NOW()기능: 현재 날짜와 시간을 반환합니다. MySQL에서 주로 사용됩니다.예시: 이 쿼리는 현재 날짜와 시간을 반환합니다.SELECT NOW();4. TO_DATE기능: 문자열을 날짜 형식으로 변환합니다.예시: 이 쿼리는 문자열 '2023-08-25'를 날짜 형식으로 변환합니다.SELECT TO_DA.. 2024. 8. 26.
OUTER JOIN 정의OUTER JOIN란? 두 테이블을 결합할 때 공통된 데이터 뿐만 아니라 한쪽 테이블에만 있는 데이터도 포함하여 결과를 조회하는 방법이다. 종류종류에는 총 3가지 종류가 있다. 먼저  A와 B 테이블을 결합한다고 해보자.LEFT OUTER JOINA 테이블의 모든 행을 포함하고, B 테이블에서 일치하는 데이터가 있으면 결합한다. B 테이블에 일치하는 것이 없으면 'NULL'로 채워진다. RIGHT OUTER JOINB테이블의 모든 행을 포함하고, A 테이블에서 일치하는 데이터가 있으면 결합한다.A 테이블에 일치하는 것이 없으면 'NULL'로 채워진다.FULL OUTER JOIN두 테이블의 모든 행을 포함하며, 일치하는 데이터가 있으면 결합한다.일치하지 않는 데이터는 각각 'NULL'로 채워진다. 주요.. 2024. 8. 26.
INNER JOIN 정의INNER JOIN란? 두 테이블에서 공통된 값을 가진 행들만 결합하여 조회한다. 주요 기능공통된 값을 가진 행들만 결합하여 조회 한다.예시[기본 구조]-- 방법 1SELECT 조회할 데이터 열들FROM 비교할 테이블1INNER JOIN 비교할 테이블2ON 비교할 조건(공통으로 갖고 있는 조건)-- 방법 2SELECT 조회할 데이터 열들FROM 비교할 테이블들(2개)WHERE 비교할 조건(공통으로 갖고 있는 조건) [사용 예시]SELECT A.VIDEO_NAME, A.CATEGORY, B.CAST_MEMBER FROM NETFLIX A, NETFLIX_CAST BWHERE A.VIDEO_NAME = B.VIDEO_NAME ;-- 넷플릭스 테이블과 넷플릭스 캐스트 테이블의 비디오 이름이 같은 것만 .. 2024. 8. 26.
GROUP BY 정의SELECT란? 데이터를 특정한 열을 기준으로 그룹화하여 집계하여 사용하는 절이다. 주요 기능데이터를 특정한 열을 기준으로 그룹화하여 집계하여 사용한다.예시[기본 구조]SELECT 열1, 집계함수(열2)FROM 테이블명GROUP BY 열1;--SELECT 결과로 출력할 열, 집계함수(집꼐할 열) --FROM 테이블명 --GROUP BY 그룹화할 열; [사용 예시]SELECT CATEGORY, COUNT(*) FROM NETFLIX GROUP BY CATEGORY;-- CATEGORY(카테고리)별로 그룹화하여, 각 카테고리의 모든 데이터 개수를 출력SELECT CATEGORY, SUM(VIEW_CNT) FROM NETFLIX GROUP BY CATEGORY ;-- CATEGORY(카테고리)별로 그룹화하.. 2024. 8. 26.
ORDER BY 정의ORDER BY란? 특정 열을 기준으로 정렬할 때 사용하는 절이다. 주요 기능데이터를 정렬할 때 사용한다.예시[기본 구조]SELECT 열1, 열2, ...FROM 테이블명ORDER BY 열1 [ASC|DESC], 열2 [ASC|DESC], ...; [사용 예시 - 열 1개]SELECT * FROM NETFLIX ORDER BY REG_DATE ASC;--REG_DATE열을 오름차순으로 정렬하여 조회한다. (ORDER BY의 기본값은 오름차순이기 때문에 ASC 생략가능)SELECT * FROM NETFLIX ORDER BY REG_DATE DESC;--REG_DATE열을 내림차순으로 정렬하여 조회한다.SELECT * FROM NETFLIX ORDER BY VIDEO_NAME DESC;--VIDEO_NA.. 2024. 8. 26.
WHERE 정의WHERE이란? 쿼리문에 조건을 부여한다. 주요 기능쿼리문에 조건을 부여한다.예시[사용 예시 - WHERE 1개]SELECT * FROM NETFLIX WHERE CATEGORY ='애니메이션'; -- 카테고리가 애니메이션인 데이터 조회 --SELECT * FROM NETFLIX WHERE CATEGORY IN ('애니메이션','영화'); -- 카테고리가 애닌메이션 또는 영화인 데이터 조회--SELECT * FROM NETFLIX WHERE CATEGORY NOT IN ('애니메이션','영화'); -- 카테고리가 애닌메이션 또는 영화가 아닌 데이터 조회--SELECT * FROM NETFLIX WHERE VIEW_CNT   [사용 예시 - WHERE 2개]SELECT * FROM NETFLIX WHE.. 2024. 8. 26.
SELECT 정의SELECT란? 데이터를 조회할 떄 사용하는 가장 기본적이고 중요한 명령어이다. 주요 기능데이터를 조회한다.예시[기본 구조]SELECT 열1, 열2, ...FROM 테이블명WHERE 조건; [사용 예시]SELECT * FROM NETFLIX n ; --모든 데이터 출력SELECT * FROM NETFLIX n WHERE VIDEO_NAME = '나의 아저씨'; --비디오 이름이 나의 아저씨 인것만 출력SELECT * FROM NETFLIX n WHERE VIDEO_NAME '나의 아저씨'; --비디오 이름이 나의 아저씨가 아닌 나머지 데이터 모두 출력SELECT * FROM NETFLIX n WHERE REG_DATE > SYSDATE-30; --최근 한달동안 등록된 데이터를 출력SELECT * F.. 2024. 8. 26.
DELETE 정의DELETE이란? 테이블의 특정 행을 삭제할 떄 사용하는 명령어이다. 주요 기능특정 행을 삭제한다.예시[기본 구조]DELETE FROM 테이블명WHERE 조건; -- 삭제하고 싶은 행을 가르키는 조건-- 만약 카테고리가 드라마이면서 조회수가 35 아래인 것을 삭제하고 싶다면?-- -> WHRER CATEGORY = '드라마' AND VIEW_CNT  [사용 예시]DELETE FROM studentsWHERE name = 'John';COMMIT; 2024. 8. 26.
UPDATE 정의UPDATE이란? 기존 데이터를 수정할 때 사용하는 명령어이다. 주요 기능데이터를 수정한다.예시[기본 구조]UPDATE 테이블명SET 컬럼1 = 값1, 컬럼2 = 값2, ... //어떤 열을 변경할지(세로)WHERE 조건; //어떤 행을 변경할지(가로)COMMIT; [사용 예시]UPDATE studentsSET age = 21WHERE name = 'John';COMMIT; 2024. 8. 26.
INSERT 보호되어 있는 글 입니다. 2024. 8. 26.
DROP/TRUNCATE 정의DROP이란? 테이블을 제거하거나 데이터를 삭제하는데 사용된다. 주요 기능테이블 자체를 완전히 삭제한다.테이블 구조(스키마)와 모든 테이터를 제거한다.예시DROP TABLE my_table;정의TRUNCATE이란? 테이블을 제거하거나 데이터를 삭제하는데 사용된다. 주요 기능테이블의 모든 테이터를 삭제하지만, 테이블의 구조는 그대로 남겨둔다.즉, 테이블을 다시 사용하려면 새 데이터를 삽입할 수 있다.TRUNCATE TABLE my_table;  주요 차이점DROP: 테이블 전체(구조와 데이터)를 제거한다.TRUNCATE: 테이블 구조는 남겨두고 데이터만 모두 삭제한다. 2024. 8. 26.
ALTER 정의:ALTER란? SQL에서 데이터베이스  객체(테이블, 뷰, 인덱스)를 수정할 떄 사용하는 명령어 주요 기능:테이블 구조 변경: 테이블에 새로운 열(Column)을 추가하거나, 기존 열의 데이터 유형을 변경하거나, 열을 삭제하는 등의 작업을 할 수 있다.기타 변경 작업: 인덱스 추가, 기본 키 설정 변경, 제약 조건 추가 등도 가능하다. SELECT * FROM NETFLIX n ; -- 넷플릭스 테이블 전체 조회 --ALTER TABLE NEFLIX ADD (CAST_MEMBER VARCHAR2(20)); -- 새로운 컬럼 추가 --ALTER TABLE NEFLIX MODIFY (CAST_MEMBER VARCHAR2(50)); -- 추가한 컬럼 사이즈 변경 --ALTER TABLE NEFLIX MO.. 2024. 8. 26.
CREATE [주요 SQL 데이터 유형과 그에 해당하는 키워를 정리한 표]데이터 유형키워드설명문자열VARCHAR(n)가변 길이 문자열, 최대 n 글자까지 저장 가능 CHAR(n)고정 길이 문자열, 길이가 부족할 경우 공백으로 채움 TEXT매우 긴 문자열, 길이 제한 없음숫자INT정수 BIGINT아주 큰 정수 SMALLINT작은 범위의 정수 DECIMAL(p, s)소수점이 있는 숫자, p는 전체 자릿수, s는 소수점 이하 자릿수 FLOAT부동 소수점 숫자날짜와 시간DATE날짜 (YYYY-MM-DD 형식) TIME시간 (HH:MM:SS 형식) DATETIME날짜와 시간 (YYYY-MM-DD HH:MM:SS 형식) TIMESTAMP날짜와 시간, 자동으로 현재 시간 기록 가능논리형BOOLEAN참(true) 또는 거짓(fal.. 2024. 8. 25.