Zero to Hero
Flask 사용법
Programming 2021. 5. 17. 14:20

위키독스 온라인 책을 제작 공유하는 플랫폼 서비스 wikidocs.net JSON 받고, 반환하기 @app.route('/user', methods=['POST']) def userLogin(): user = request.get_json() # json 데이터를 받아옴 return jsonify(user) # 받아온 데이터를 다시 전송 URI Path값 읽고 사용하기 # Spring의 @PathVariable 사용법 @app.route('/env/') def environments(language): return jsonify({"language": language}) URI를 HTTP Method로 분기하기 @app.route('/user', methods=['GET', 'POST']) def use..

article thumbnail
JPA Study 03
Programming 2021. 5. 16. 17:40

책을 읽고 배운 내용을 정리한다. 맵핑은 다대일 단방향부터 생각하자 - JPA는 다양한 연관관계에 대한 맵핑 방법을 제공한다. - 그중 가장 기본이 되는 방법은 다대일 단방향 맵핑이다. - 2개의 테이블을 JOIN 했을 때 가장 연상하기도 쉽고 DB 관점에서도, 객체 관점에서도 개발자에게 익숙하다. - 양방향 맵핑은 필요한 경우에만 만들어주면 된다. - 단방향, 양방향의 차이는 객체 그래프 탐색의 루트를 한쪽에서만 할 수 있을지, 양 쪽에서 다 가능하게 할지의 차이기 때문이다. 다대다 맵핑 @Entity @Data public class Member { @Id @Column(name = "MEMBER_ID") private String id; @Column private String username; /..

article thumbnail
JPA Study 02
Programming 2021. 5. 15. 14:17

책을 읽고 배운 내용을 정리한다. MappedBy - 양방향 바인딩에 있어서 생각할 점은 어느 쪽에 MappedBy를 사용할 것이냐이다. - MappedBy는 주인이 아닌 엔티티의 변수에 할당해줘야 한다. - 주인이 아니라는 것은 DB 테이블로 생각했을 때 해당 엔티티와 맵핑되어있는 테이블에서 FK를 관리하지 않는다는 것과 같다. - 예를 들어 회원, 팀이 있으면 회원 엔티티에는 Team team이, 팀 엔티티에는 List members가 있을 것이다. - DB 테이블로 상상해서 생각해보면 JOIN을 고려했을 때 테이블 모델링을 하면 TEAM_ID라는 FK는 멤버 테이블에 있는 게 일반적으로 생각할 수 있는 모습이다. - 그래서 일반적으로 @ManyToOne을 가지고 있는 엔티티는 항상 연관관계의 주인이..

article thumbnail
JPA Study 01
Programming 2021. 5. 15. 10:40

책을 읽고 배운 내용을 정리한다. GenerationType.IDENTITY - 엔티티가 영속 상태가 되려면 식별자가 반드시 필요하다. - 그런데 이 생성 전략은 엔티티가 데이터베이스에 저장이 되어야 식별자가 생긴다. - 그래서 em.persist()를 직접 호출하거나 내부에서 호출하는 즉시 삽입 SQL 작업이 수행된다. - 즉 트랜잭션을 지원하는 쓰기 지연이 동작하지 않는다. - 생각해보면 당연한 게 영속 상태에 있으려면 식별자가 있어야 하는데 데이터베이스에 삽입하기 전에는 식별자가 존재하지 않는다. - 그러니깐 식별자를 만들어주기 위해서 삽입 SQL이 지연되지 않고 바로 수행되어 식별자를 얻은 엔티티가 영속 상태가 되는 것 같다. 대리 키를 권장한다. - PK에는 대리 키를 권장한다. - 대리 키는 ..

DB 예약어(MySQL, MariaDB)
Programming 2021. 5. 14. 14:44

MySQL MySQL 예약어 - 제타위키 다음 문자열 포함... zetawiki.com MariaDB MariaDB - 예약어 - 다음은 MariaDB의 모든 예약어 목록입니다. 예약어 는 인용 부호가 없으면 식별자 다음은 MariaDB의 모든 예약어 목록입니다. 예약어 는 인용 부호가 없으면 식별자 로 사용할 수 없습니다 . 각 버전의 예약어 목록은 keyword 규칙 sql/sql_yacc.yy 또는 keyword 규칙에 포함 된 keyword_sp 규 runebook.dev JPA 뿐만 아니라 DDL을 사용할 때 DB에서 사용하는 예약어, 혹은 시스템 관리용으로 생성되는 테이블(USER 등)을 Table, Column 이름으로 사용할 경우 에러가 발생한다. 혹시 이상한 곳에서 안 되는 것 같을 땐 ..

Spring Study 04
Programming 2021. 5. 5. 15:17

온라인 강의를 듣고 배운 점들을 기록한다. ServiceResult - 서비스 단의 결과물도 하나의 모델에 반환하는 식으로 코드를 작성한다. - 서비스단 코드가 간결해지는 효과도 있고, 가독성도 좋아진다. - ResponseResult라는 모델을 만들어서 결과를 반환하게 하는 것과 비슷한 맥락 같다. - 이렇게 Model을 만들어서 따로 관리해주면 각 코드가 실제로 해야 하는 일에 집중할 수 있는 코드가 된다고 한다. JpaResultMapper // https://mvnrepository.com/artifact/ch.simas.qlrm/qlrm implementation group: 'ch.simas.qlrm', name: 'qlrm', version: '1.7.1' - Native Query 결과인 ..