본문 바로가기
반응형

분류 전체보기714

Transaction 격리수준 springframework의 @Transactinoal은 isolation을 제공한다. 격리단계라고도 부른다. 동시에 발생하는 데이터 접근을 어떻게 처리할 것인지를 정한다. 총 5가지 종류를 제공한다. DEFAULT(TransactionDefinition.ISOLATION_DEFAULT) READ_UNCOMMITTED(TransactionDefinition.ISOLATION_READ_UNCOMMITTED) READ_COMMITTED(TransactionDefinition.ISOLATION_READ_COMMITTED) REPEATABLE_READ(TransactionDefinition.ISOLATION_REPEATABLE_READ) SERIALIZABLE(TransactionDefinition.ISOLA.. 2021. 9. 26.
db Transaction(롤백처리) *Transaction 디비에서는 transaction으로 단위를 묶어서 쿼리를 실행한다. 물건을 구매하고 결제하는 것은 같은 단위(트랜잭션) 안에서 발생해야 한다. 주문은 했는데 돈을 결제가 안되면 문제가 생긴다. 따라서 하나의 트랜잭션 안에서 처리해야 한다. 트랜잭션이 성공적으로 커밋하면 한번에 2가지가 저장되고 실패해서 롤백되면 주문과 결제 모두 취소되어야 한다. ACID automicity 원자성(all or nothing) 트랜잭션 관련 작업들이 중간에 중단되지 않는 것을 보장한다. 돈의 송금을 예로 들어, 송금을 했으면 상대방은 돈을 받아야 한다. 돈을 송금하는 것은 성공했는데, 받는 것은 실패해서는 안된다. consistency 일관성 트랜잭션이 성공적으로 완료되면 언제나 일관성 있는 상태를.. 2021. 9. 26.
AWS/Docker 클라우드 패스트캠퍼스 챌린지 20일차 [11. S3로 이미지 업로드 및 API 활용 - 1] S3로 올리기를 하기 위해서 jira에 이슈를 생성한다. 개발 중 단계로 넘어가서 진행을 한다. review_s3_upload파일을 압축을 풀어서 새로운 프로젝트를 open한다. Synchronize workspace에서 확인을 해본다. AWS 관련 서비스와 security에서 matcher가 추가되어 있다. local에서 Tomcat을 실행시켜서 서버를 구동한다. 7000 port가 설정된 홈페이지가 들어가지는지 확인한다. submit의 경우, multipart/form-data 형식으로 enctype 설정을하고, method는 form이다. 을 설정해 첨부파일을 보낼 수 있도록 한다. script에서 다시 FormData 객체를 만든다. 또한 활.. 2021. 9. 25.
AWS/Docker 클라우드 패스트캠퍼스 챌린지 19일차 [08. 카카오 로그인 - 3] 발급받은 KEY는 고유한 곳에 받아두어야 한다. 다른 사람의 접근을 막아야 하기 때문에, 보안을 지켜서 관리하도록 한다. 로그인 시, 어떤 정보들을 요청할 수 있을지, 수집할지를 정하고 필요에 따라서 사유를 입력해준다. 프로필 사진, 성별 등등 여러가지를 사이트 운영정책과 필요 정보에 따라 정할 수 있다. 기존에 있던 프로젝트에 카카오 로그인을 연동하기 위해서는 따로 maven, gradle에 추가할 라이브러리가 없다. key를 잘 관리하는 것이 가장 중요하다. login.jsp파일에서 메인화면이 보여지며 해당 부분에 셋팅해야 한다. 카카오톡 라이브러리를 위해 에 주소를 추가해야 한다. kakao.init()으로 javascript 키를 넣어 카카오톡 초기화를 한다. 로그.. 2021. 9. 24.
AWS/Docker 클라우드 패스트캠퍼스 챌린지 18일차 [S3 설정 및 이미지 업로드] 1. AWS S3 설정 -> 2. 이미지 업로드 -> 3. DB 이미지 URL 생성 지라를 열어서 목표를 새롭게 생성한다. S3에 이미지 올리기를 제목으로 또한 해당 문장을 설명에 넣는다. AWS에서 S3을 검색해서 들어간다. 이미지를 관리해주지만, 관리비용이 나가기때문에 트래픽과 용량을 고려해서 사용해야 한다. 또한 여러 검증으로 어떤 방식으로 운영할지 정해야 한다. Bucket 만들기를 한다. 특수문자를 사용하지 않고 영문을 이용해서만 생성한다. 리전은 아시아/태평양으로 한다. 기본적인 셋팅으로 해당 접근성은 private이다. 해당 Bucket을 업로드 버튼을 눌러서 이미지를 업로드 해본다. 해당 저장소에 저장이 되면 이미지에 대한 정보가 나온다. 사용을 하려면 접근.. 2021. 9. 23.
AWS/Docker 클라우드 패스트캠퍼스 챌린지 17일차 [05. RDS설정 -5] Controller는 url정보를 확인하여 어떤 경로로 서비스 로직을 실행시킬지 경로를 구분하고 보내주는 역할을 한다. security를 사용한다면, [Authentication]으로 로그인 정보를 넣어줄 수 있다. 로그인 관련 검증이 가능하다. login.jsp에 가보면, 실제로 의 부분은 화면에 출력되는 부분으로 적절한 수정을 한다면 출력되는 화면도 바뀐다. 또한 DB에 저장된 내용에 따라서도 칼럼을 출력할 때 내용을 바꿀 수 있다. STS설정에서 [Java Build Path]에 가보면, Apache tomcat을 9.0 설치가 필요하다. 따라서 tomcat 사이트에 들어가서 9.0 zip 파일을 다운받을 수 있도록 한다. 설정에 [Targeted Runtime]에서 to.. 2021. 9. 22.
TIL_210922 1. Facts(사실, 객관) - 조인 강의 수강 및 정리 2. Feelings(느낌, 주관) - 조인 또한 SQL에서 사용하는 방법을 잘 이해하고 있어야 JPA에서도 사용할 수 있습니다. 또한 어떠한 차이점이 있는지, JPA에서 사용 주의점은 무엇인지 잘 확인해야 합니다. SQL에서 조인은 대부분 LEFT OUTER JOIN으로 해결했는데, 이번 기회에 외부조인과 내부조인을 다시 한번 잘 알 수 있었고, SQL과 ON절 차이점도 아는 시간이었습니다. 확실히 직접 코드를 작성해서 확인하니 훨씬 이해하기 좋았습니다. 3. Findings (배운 점) 내부조인 조회는 현재 연관된 테이블이 있는 경우만 결과를 출력한다. 외부조인은 현재 연관된 테이블이 없더라도 기준 테이블은 모두 출력되고 연관이 있는경우는 해.. 2021. 9. 22.
TIL_210921 1. Facts(사실, 객관) - 프로젝션 강의 수강 및 정리 2. Feelings(느낌, 주관) - 영속성 컨텍스트의 개념을 배우고 프록시의 고비를 넘겼는데, 프로젝션에서 다시 고비를 맞이했습니다. 연관 엔티티를 조회할 때 묵시적 내부조인이 발생하는 것, 리스트 컬렉션은 추가 칼럼 조회가 불가능하다는 것, 따라서 명시적 조인으로 사용해야 한다는 것입니다. 해당 제약사항들을 잘 정리해야하는 이유는, 토이 프로젝트에서 엔티티 연관관계에서 원하는 칼럼들 조회하는 것이 굉장히 어려워서 많이 고생했습니다. 이전에도 공부했었는데 복잡한 나머지 몇번 포기했던 기억이 있습니다. 이후에 나오는 조인과 서브쿼리도 잘 공부해서 토이프로젝트를 개선할 예정입니다. 3. Findings (배운 점) 일반 DB SQL에서 여러 .. 2021. 9. 21.
TIL_210920 1. Facts(사실, 객관) - 객체지향 쿼리 언어 강의 및 정리 2. Feelings(느낌, 주관) - 객체지향 쿼리 언어 강의를 듣고 정리했습니다. 실질적으로 JPA에서 일반적인 DB SQL은 NativeQuery로 분류됩니다. 그 이외에 JPQL, JPA Criteria, Query DSL, JDBC API 사용등등 다양한 방식들이 많이 있습니다. 이 종류들을 전부 사용하는 것이 아니므로, 실전에서 사용되거나 중요한 특징 위주로 살펴보았습니다. JPA를 통해 쿼리를 짜는것 마저도 객체지향으로 할 수 있다는 것이 참 좋은 컨셉이지만 그만큼 러닝커브가 있습니다. 하나를 공부하면 공부해야 할 또다른 것들도 등장합니다. 역시나 프로젝트를 하면서 몸으로 익히는게 최고라고 생각합니다. 3. Findings .. 2021. 9. 21.
반응형