본문 바로가기

분류 전체보기

(461)
flask를 사용하여 s3 업로드 웹페이지 구현 cli s3 연동 sdk 를 다운로드 받아서 설정 파이썬에서 aws와 연동하려면 boto3를 받아야함 import boto3 from flask import Flask, render_template, request, jsonify app = Flask(__name__) @app.route('/') def main(): return render_template('index.html') @app.route('/fileupload', methods=['POST']) def file_upload(): file = request.files['file'] s3 = boto3.client('s3') s3.put_object( ACL="public-read", Bucket="{버킷이름}", Body=file, Key=..
S3 파일 권한 설정 + 업로드를 동시에 (IAM, AWS SDK를 이용) s3에 파일을 업로드 하는 방법을 알아봤었습니다. 이전에는 파일을 업로드 하고 파일 한개 한개마다 직접 권한을 재 설정해줘야 하는 불편함이 있었는데 이번에는 권한 설정과 파일 업로드를 동시에 진행해 보도록 하겠습니다. IAM AWS identity and access management AWS service에 접근 권한을 담당하는 역할을 지니고 있습니다. IAM의 access key와 secret key를 이용하여 aws service를 사용할 수 있는 권한을 부여할 수 있습니다. IAM을 만들고, 권한을 부여해 봅시다. 파이썬 또는 자바를 이용하여 AWS 서비스를 직접 접근할 예정이기 때문에 프로그래밍 방식 엑세스 유형을 선택해 주었습니다. S3를 접근 할 수 있는 모든 권한을 부여하도록 하겠습니다. ..
S3 버킷 생성 (+파일 업로드 및 읽기 권한 설정) 1. s3 버킷 생성 - 버킷 이름을 임의 설정 한 후 AWS 리전을 ap-northeast-2로 설정합니다. 2. 버킷에서 파일 업로드 및 업로드 파일 URL 확인 - 생성한 버킷으로 들어가면 파일을 직접 업로드 하는 버튼이 존재합니다. - 버튼을 눌러서 파일을 업로드해 봅시다. - 현재는 업로드한 url을 확인하면 AccessDenied가 뜨는 것을 확인할 수 있습니다. - 버킷과 파일의 권한을 재 설정 해주도록 합시다. 3. 버킷 권한 설정 현재는 업로드한 파일을 확인할 수 없는 상태입니다. 파일의 권한을 설정하기에 앞서, 버킷의 권한을 먼저 재 설정해 줍니다. 모든 퍼블릭 엑세스 차단을 해제해줍니다. 4. 업로드 파일 권한 설정 버킷의 권한은 재설정 하였지만, 여전히 파일에 대한 권한이 없어 UR..
[프로그래머스] 구명보트 (탐욕 알고리즘) 탐욕 알고리즘을 적용하여 풀 수 있는 문제입니다. https://programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 탐욕 알고리즘에 대한 자세한 내용은 아래의 블로그에서 확인하실 수 있습니다. https://hanamon.kr/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%ED%83%90%EC%9A%95%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-greedy..
단방향 연관관계, 양방향 연관관계 단방향 연관관계, 양방향 연관관계 뭔지는 알겠는데, 막상 스키마를 구성하려면 개념이 안 잡히는 알 것 같으면서, 또 모르는 그런 개념이어서 이번 기회에 정리를 해보려고 합니다. 1. 데이터 베이스 형태의 설계 테이블 연관관계에 나타나 있는 형태 그대로 엔티티를 구성해 보도록 하겠습니다. 아래와 같이 두개의 엔티티를 생성할 수 있습니다. @Entity public class Member { @Id @GeneratedValue private Long id; @Column(name = "USERNAME") private String name; @Column(name = "TEAM_ID") private Long teamId; } @Entity public class Team { @Id @GeneratedVal..
필드와 컬럼 매핑 @Entity public class Member { @Id private Long id; @Column(name = "name") private String username; private Integer age; @Enumerated(EnumType.STRING) private RoleType roleType; @Lob private String description; //Getter, Setter… @Transient private Long temp; } 어노테이션 설명 @Column 컬럼 매핑, db 컬럼의 이름을 변경할 수 있다. @Enumerated(EnumType.STRING) enum 타입 매핑 EnumType.ORDINAL이 default이지만 사용하지 않는다. EnumType.ORDINA..
데이터 스키마 자동 생성 데이터베이스 스키마 자동 생성 DDL을 애플리케이션 실행 시점에 자동 생성 데이터베이스 방언을 활용해서 데이터베이스에 맞는 적절한 DDL 생성 운영 시점에는 사용하지 않고, 개발할 때 만 사용하길 권장하는 옵션이다. spring.jpa.hibernate.ddl-auto=update create 기존 테이블 삭제 후 다시 생성 create-drop create와 같으나 종료 시점에 테이블 drop (테스트 케이스 확인하고 종료할 때 깔끔하게 없애고 싶을 때) update 변경분만 반영 (운영DB에는 사용하면 안됨) validate 엔티티와 테이블이 정상 매핑되었는지만 확인 none 사용하지 않음 운영 장비에서는 절대 create, create-drop, update 사용하면 안된다. 개발 초기 단계에는 c..
JPA, 영속성 컨텍스트의 이점 (변경감지) 영속성 컨텍스트의 이점 앞서 영속성 컨텍스트의 이점은 5가지가 존재한다고 하였습니다. • 1차 캐시 • 동일성(identity) 보장 • 트랜잭션을 지원하는 쓰기 지연 (transactional write-behind) • 변경 감지(Dirty Checking) • 지연 로딩(Lazy Loading) 영속성 컨텍스트 부분에는 변경 감지를 할 수 있다. 우선 코드로 한번 확인해보자. 다음은 update하는 부분을 살펴볼 것이다. 이미 database에 저장되어 있는 member를 찾고, 해당 member의 id 값을 수정하는 명령어이다. package hellojpa; import javax.persistence.EntityManager; import javax.persistence.EntityManage..