본문 바로가기

분류 전체보기586

2-1. 배열의 index 접근하기 https://colab.research.google.com/drive/1B36oh6qDppCP5hVrB8LDOq8_AkYT4YfF?usp=sharing 2024. 9. 16.
1-6. 시드 값을 통한 난수 생성 제어 https://colab.research.google.com/drive/1wIkdnA1YPF-F7ii5c6FCNUWnQz8qDutf?usp=sharing 2024. 9. 16.
1-5. 난수로 N차원 배열생성하기 - rand, randn, randint(표준편차) https://colab.research.google.com/drive/1RYPhg0GO9Xr9EUzQl6CCpbJ8W2WkRaMs?usp=sharing np05.ipynbColab notebookcolab.research.google.com 2024. 9. 16.
1-4. 특정 범위의 값을 가지는 N차원 배열 생성하기 - arange, linspace, logspce https://colab.research.google.com/drive/1v46uLQYC8q4I7Q4rLBJ_TMOCi-jG3JwN?usp=sharing 2024. 9. 16.
1-3. 정해진 형식의 N차원 배열 생성하기 - zeros, ones, full, eye https://colab.research.google.com/drive/1_m9kLu6V8-ji2-b9zBrrJ3iiEm6bRCPP?usp=sharing np03.ipynbColab notebookcolab.research.google.com 2024. 9. 16.
1-2. N차원 배열의 데이터 타입 https://colab.research.google.com/drive/19CvxnM390DHigLSNSp-uTnFzLLwO-rcl?usp=sharing 2024. 9. 16.
1-1. N차원 배열 생성하기 Colab 열기  np01.ipynbColab notebookcolab.research.google.com 2024. 9. 16.
N차원 배열의 개념 1차원 배열# 선언 # 1차원 배열 [4]array_1d = [1, 2, 3, 4]   2차원 배열# 선언# 2차원 배열 [2][3]array_2d = [ [1, 2, 3], # 첫 번째 행 [4, 5, 6] # 두 번째 행]axis=0은 행, axis=1은 열을 가르킨다. 3차원 배열# 선언# 3차원 배열 [2][3][4] -> 크기가 3행 4열인 2차원 배열의 개수가 2개인 다차원 배열array_3d = [ [ [1, 2, 3, 4], # 첫 번째 2차원 배열의 첫 번째 행 [5, 6, 7, 8], # 첫 번째 2차원 배열의 두 번째 행 [9, 10, 11, 12] # 첫 번째 2차원 배열의 세 번째 행 ], [ .. 2024. 9. 16.
파이썬 고급 문법(class~모듈과 패키지) 클래스 (class)클래스는 객체 지향 프로그래밍에서 객체를 정의하는 틀이다. 클래스는 데이터(멤버변수)와 함수(메소드)를 포함할 수 있다. 클래스는 여러 객체를 생성할 수 있는 청사진 역할을 한다.class Person: def __init__(self, name): self.name = name def greet(self): print(f"Hello, my name is {self.name}") 생성자생성자는 클래스의 인스턴스가 생성될 때 호출되는 함수이다. 객체의 초기 상태를 정의하는 데 사용된다.class Person: def __init__(self, name): self.name = name # 초기화할 때 전달받은 값을 멤버 변수에 저장.. 2024. 9. 13.
파이썬 중급 문법 (함수~with) 함수def add(a, b): # 전달값 - a, b return a + b # 반환값 - return 키워드result = add(3, 5)  기본값: 기본값이란 함수의 인수에 미리 값를 설정해 두는 것이다. 따라서 함수 호출 시 값을 전달하지 않아도 기본값으로 출력되어 오류가 생기지 않는다. def greet(name="Guest"): return f"Hello, {name}!"print(greet()) # Hello, Guest!print(greet("John")) # Hello, John!  키워드값매개변수가 여러 개이고, 기본값으로 모두 설정된 상태에서 특정 매개변수의 값만 변경하고 싶다면 키워드 값을 사용하면 된다.def get_price(is_vip=False, .. 2024. 9. 13.
파이썬 초급 문법2 (if~리스트 컴프리핸션) if문if 조건문: 수행할 문장 수행할 문장 ....elif 조건문: 수행할 문장 수행할 문장 ...else: 수행할 문장 수행할 문장 ....  for 반복문for 변수 in 리스트(또는 튜플, 문자열): 수행할_문장1 수행할_문장2 ... # 예시 - 1>>> test_list = ['one', 'two', 'three'] >>> for i in test_list: ... print(i)... one two three# 예시 - 2>>> a = [(1,2), (3,4), (5,6)]>>> for (first, last) in a:... print(first + last)...3711# 예시 - 3>>> str = '.. 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 = ''' 꼬깔콘은너무 맛있는 과자'''# 꼬깔콘은# 너무# 맛있는 과자  문자열 메소드 zfill()숫자의 길이를 맞추기위해 앞쪽에 0을 채움replace(바꿀값,새로운값)문자열을 찾아서 새로운문자열로 바꿈strip('삭제할문자들')양쪽에 지정한 문자를 삭제하거나 공백을 삭제rstrip.. 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.