분류 전체보기 142

[Python] for i in list/ for i in range(len(list))

파이썬 문제를 풀면서 아직 내가 기초를 잘 이해 못했던걸 깨달아서 정리 겸 포스팅을 해본다. 파이썬에서 for i in 리스트 문을 자주 쓰게 되는데 for i in range(len(리스트)) 로 문제를 풀었을 때도 있어서 무슨 차이인지 확인해보았다. 만약 list = {1,2,3,4,5} 일 때 for i in list 이 경우 i는 리스트 내의 원소로 순회한다. answer = i 일 때 결과 = 1,2,3,4,5 for i in range(len(list)) 이 경우 리스트나 문자열의 길이에 따라 0부터 len(arr)-1까지의 인덱스를 순회한다. i = 0,1,2,3,4 이고, answer = arr[i] 로 써야 1,2,3,4,5 가 출력된다.

Study/Python 2023.08.22

[프로그래머스] 문자열 계산하기

요즘 파이썬 문법이나 메서드에 익숙해지기 위해 프로그래머스 기초문제를 파이썬으로 풀고있다. def solution(my_string): arr = my_string.split(' ') answer = int(arr[0]) for i in range(len(arr)): if i % 2 != 0: if arr[i] == '+': answer += int(arr[i+1]) else: answer -= int(arr[i+1]) return answer 처음에 입출력 예를 보고 num1 num2 로만 나눴다가 연산자가 여러개인 경우가 있을 수 있어서 수정했다. 문자열을 한글자씩 쪼개서 배열에 넣어준 후 for문을 돌리면서 하나씩 꺼내는데 인덱스가 홀수일 경우(연산자가 있을 경우) 연산자가 +인지 -인지 확인한 후..

Study/알고리즘 2023.08.16

REST와 RESTful API

이전에 면접질문 용어정리에서 짧게 정리했지만 확실하게 알아두고 싶어서 다시 정리하기로 한다. REST (Representational State Transfer) REST는 웹 기반 애플리케이션 간의 통신을 위한 아키텍처 스타일로, 리소스(자원)를 정의하고 이 리소스에 대한 상태를 전송 및 조작하기 위한 규칙을 제공한다. 주요 개념 1. 리소스(자원) 웹 서비스에서 제공하는 모든 것을 리소스로 간주한다. (ex: 사용자, 댓글 이미지 등) 2. HTTP 메서드 HTTP메서드를 사용하여 리소스에 대한 작업을 수행한다. GET: 리소스를 조회한다. POST: 새로운 리소스를 생성한다. PUT: 기존 리소스를 업데이트한다. DELETE: 리소스를 삭제한다. 3. URI(Uniform Resource Ident..

[EC2] EC2에서 build 시 test failed로 빌드 실패

제목 그대로.... EC2에서 배포를 하려고 shell파일을 만들어 실행하였는데 테스트코드에서만 줄줄이 에러가 나서 빌드 실패 에러가 났다. 끔찍.. 이 에러가 나는 이유는 application.properties 파일을 git ignore로 등록해서 git clone으로 불러올 수 없었기 때문이다. 그래서 나는 파일질라 build/resources/main 경로에 해당 파일을 수동으로 집어넣었다. 책에서는 EC2내에 properties 파일을 만들어서 해결했지만 나는 그 방법으로는 실패했기 때문에.... 아무튼 application.properties과 함께 소셜 로그인을 위한 application-oauth.properties 파일도 같이 집어넣어서 빌드가 성공했다. : ) 그렇게 다 끝났나 했지만 ..

Study/AWS 2023.08.01

[Python] DB를 연결하여 todolist 만들기

파이썬 공부를 시작하고 이론들을 공부하다가 배운 것들을 복습하고 싶기도 하고, 빨리 능숙해져서 웹사이트를 만들고 싶기도 해서 간단한 프로그램을 만들기로 했다. 간단한 프로그램 하면 투두리스트! 라고 생각해서 검색해보니 대부분 Django로 만들고 있어서 아직 내 수준으로는 어려울 것 같았다. 그래서 나는 DB를 연결해서 쿼리를 통해 동작하고, 콘솔에 결과가 표시되는 아주 간단한 투두리스트를 만들었다. 먼저 DB와 테이블을 생성한다. CREATE DATABASE todos; USE todos; CREATE TABLE tasks ( id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR(255), done BOOLEAN DEFAULT FALSE ); 그런데 이렇게 ..

Study/Python 2023.07.30

[Python] 'conda' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다 에러

파이썬을 배워보고자 아나콘다를 설치하고 VScode에 연결까지 성공한 뒤 간단한 print 를 하였는데 저 에러가 떴다. 열심히 구글을 돌려보니 해당 에러가 생기는 이유는 두가지가 있다고 한다. 1. conda 설치 경로에 한글이 포함된 경우 2. Terminal을 powershell로 설정하여 실행한 경우 나는 1번에 해당되지 않아서 2번으로 예상했다. VScode의 디폴트 터미널은 powershell이라고 한다. 해결방법 1. Ctrl + Shift + P 를 누르고 "Terminal: Select Default Profile"을 입력한다. 2. Command Prompt 를 선택한다. 3. 기존에 켜져있던 터미널을 휴지통모양을 눌러 닫고, Ctrl + Shift + P 를 누르고 "Python: S..

Study/Python 2023.07.25

[AWS][RDS] RDS MariaDB 프리티어 인스턴스 생성 및 DBeaver 연결

EC2에 DB를 설치하고 모니터링, 알람, 백업 등등을 직접 하는 것은 너무 어렵고 번거롭기 때문에 AWS에서 지원하는 RDS를 사용해서 EC2에 연결하기로 했다. RDS생성 서비스-데이터베이스-RDS를 선택한다. 데이터베이스 생성을 클릭한다. MariaDB를 사용할 것이기에 MariaDB를 선택해준다. 설정에서 정보들을 기입한다. 마스터 사용자 이름은 MariaDB에서는 root라서 root로 적어주었다. 중요!! 인스턴스 클래스가 기본은 t3으로 되어있는데 t2로 바꾸어야 과금이 되지 않는다고 한다. 스토리지 자동 조정 활성화의 경우도 과금이 발생할 수 있어 체크해제해준다. EC2 컴퓨팅 리소스에 연결 안 함 퍼블릭 액세스->예 체크 추가구성-데이터베이스 옵션에서 초기 데이터베이스 이름을 입력한다. ..

Study/AWS 2023.07.22

[AWS][EC2] 윈도우로 SSH접속 및 JAVA 11설치, 타임존 변경, HOSTNAME 변경

배포를 위해 AWS를 사용하기로 했다. 그래서 EC2 인스턴스도 생성하고 접속을 하려고 했는데 윈도우의 경우 프로그램이 필요하다. https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/putty.html PuTTY를 사용하여 Windows에서 Linux 인스턴스에 연결 - Amazon Elastic Compute Cloud 프라이빗 키의 암호는 추가 보호 계층입니다. 프라이빗 키가 노출되더라도 암호 없이 사용할 수 없습니다. 암호문 사용의 단점은 인스턴스에 로그온하거나 인스턴스에 파일을 복사하기 위해 사 docs.aws.amazon.com 이 공식문서에서 친절하게 설명되어 있지만 나중에 또 할 일이 생길 것 같아 설명해보는걸로 ^^ https://www...

Study/AWS 2023.07.21

[JPA] Validation failed for query for method public abstract 오류

회원 탈퇴 시 회원이 작성한 게시글도 모두 삭제되게 하기 위해 postsRepository에 쿼리를 작성했다. @Modifying @Query("DELETE FROM Posts WHERE user_id = :userId") void deletePostsByUserId(@Param("userId") Long id); posts 테이블에 user_id컬럼이 있어서 탈퇴 회원의 id를 받아 그 회원이 작성한 게시글을 삭제하는 쿼리이다. 그런데 Validation failed for query for method public abstract 에러.... 그래서 검색해보니... @Modifying @Query(value = "DELETE FROM Posts WHERE user_id = :userId" , nati..

Study 2023.07.18