본문 바로가기

분류 전체보기

(92)
프로그래머스_행렬의 덧셈 행렬의 덧셈 문제 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요. 제한사항 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다. 입출력 arr1 arr2 return [[1,2],[2,3]] [[3,4],[5,6]] [[4,6],[7,9]] [[1],[2]] [[3],[4]] [[4],[6]] 입출력 예 설명 없음풀이 과정 2증 반복문으로 첫 번째 반복문은 행, 두 번째 반복문은 열로 더해주면 해결된다. class Solution { public int[][] solution(int[][] arr1, int[][] arr2)..
프로그래머스_핸드폰 번호 가리기 핸드폰 번호 가리기 문제 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요. 제한사항 s는 길이 4 이상, 20이하인 문자열입니다. 입출력 phone_number return "01033334444" "***4444" "027778888" "*****8888" 입출력 예 설명 없음 풀이 과정 뒷 4자리를 제외한 숫자를 마스킹 하므로 받아오는 phone_number의 길이에서 4를 뺴준 만큼 "*" 로 answer에 담아준다. 나머지 4자리는 String(문자열)으로 받아오는 phone..
트랜잭션의 ACID란? 항해 46일차 이전 글에서 트랜잭션에 대해서 찾아봤고 데이터베이스 트랜잭션은 ACID라는 특성을 가지고 있다. ACID? ACID는 데이터베이스 내에서 일어나는 하나의 트랜잭션의 안정성을 보장하기 위해 필요한 성질이다. ACID속성 트랜잭션을 정의하는 4가지 중대한 속성을 가르킨다. 원자성(Atomicity), 일관성(Consistency), 격리(Isolation), 영속성(Durability) 을 의미한다. 데이터베이스 작업에 이러한 ACID속성이 있다면 ACID트랜잭션이라 부르고 이런 작업을 적용하는 데이터 스토리지 시스템을 트랜잭션 시스템이라고 한다. ACID 트랜잭션은 한 테이블의 읽기, 쓰기, 수정 작업이 각각 아래와 같은 속성을 가지고 있다고 보장해준다. 원자성(Atomicity) - 트랜잭..
트랜잭션(Transaction) 항해 45일차 트랜잭션이란? 데이터베이스의 상태를 변화시키기 위해 수행하는 작업 단위 데이터베이스의 상태를 변경시킨다는 이야기는 SELECT, UPDATE, INSERT, DELETE 와 같은 행동 이런 트랜잭션은 상황에 따라 여러 개가 만들어질 수 있다. 그 하나의 트랜잭션은 Commit (저장) 되거나 Rollback (철회)될 수 있다. 예로 리뷰를 작성하면 포인트를 받는다고 가정해보자. A,B,C,D가 각각 리뷰를 작성하면 1,000포인트를 지급 해야하고 이를 DB에 저장해야한다. 그런데 A,B,C는 정상적으로 저장이 되었고 D는 저장에 실패했다. 이런 상황은 잘못된 처리이므로 다시 저장을 수행해야 하는데 A,B,C는 이미 저장이 완료되었기에 다시 저장을 하면 2,000포인트가 저장이 된다. 이런..
SQL vs NoSQL 항해를 처음 시작하면서 NoSQL인 MongoDB를 사용했었다. Spring을 접하게 되면서 자연스럽게 SQL인 MySQL을 사용했는데 오늘에서야 두가지의 차이점과 장단점을 알아보았다. SQL(관계형 데이터베이스) SQL은 '구조화 된 쿼리 언어 (Structured Query Language)'이다. 그러므로 데이터베이스 자체를 나타내는 것이 아니라, 특정 유형의 데이터베이스와 상호 작용하는 데 사용 하는 쿼리 언어다. SQL을 사용하면 관계형 데이터베이스 관리 시스템(RDBMS)에서 데이터를 저장, 수정, 삭제 및 검색 할 수 있다. 특징 데이터는 정해진(엄격한) 데이터 스키마 (= structure)를 따라 데이터베이스 테이블에 저장 데이터는 관계를 통해서 연결된 여러개의 테이블에 분산 데이터는 테..
OAuth 2.0? 소셜 로그인? 팀에서 소셜로그인을 적용해보자는 의견이 있어서 개인 프로젝트 주차에서 카카오 로그인 구현을 해봤기에 관련 내용을 더 찾아보았다. OAuth란? 우리는 인터넷을 사용하면서 쇼핑몰등에서 회원가입 시 아래와 같은 이미지를 자주 접했다. Facebook, kakao, naver, Google 등의 외부 소셜 계정을 기반으로 간편하게 회원가입 및 로그인할 수 있다. 클릭 한번으로 간편하게 로그인할 수 있을 뿐만 아니라 연동되는 외부 웹 어플리케이션에서 Facebook, kakao, Naver, Google 등이 제공하는 기능을 간편하게 사용할 수 있다는 장점이 있다. 예로 naver로 로그인하면 API를 통해 연동된 계정의 캘린더, 연락처, 쇼핑내역을 가져와 사용자에게 보여줄 수 있다. 이때 사용되는 프로토콜이 ..
[WIL] 항해99 6주차 항해 6주차 마무리.. 처음 프론드와 협업을 진행하였다. 책을 같이 읽고 모임을 만드는 플랫폼을 만들어보았다. (https://www.notion.so/56c39e3254f2440b9152488e39535158) # 1. 첫 협업을 진행하며 느낀 아쉬운 점 아쉬운점이 너무 많았다... 내가 맡은 부분은 로그인,회원가입 Spring Security와 JWT를 맡았다. 주특기 과정에서 Security를 사용해서 로그인을 구현 해보았지만 jwt를 이용해서 로그인 구현은 처음이였다. 제공된 강의가 있었지만 이해하는데 많이 힘들었다. 구글링도 많이 하고 유튜브에서 강의도 많이 찾아봤지만 100%이해가 되진 않는다. 이해가 안된 부분을 틈틈히 찾아봐야겠다. 다른 아쉬웠던 부분은 JPA에 대한 이해도가 많이 없었다...
데이터 연관관계 항해 41일차 2022.02.19 1. 데이터 연관관계의 주인 테이블은 외래 키 하나로 두 테이블이 연관관계를 맺음 객체 양방향 관계는 A->B, B->A 처럼 참조가 2군데 객체 양방향 관계는 참조가 2군데 있음. 둘중 테이블의 외래 키 를 관리할 곳을 지정해야함 연관관계의 주인: 외래 키를 관리하는 참조 주인의 반대편: 외래 키에 영향을 주지 않음, 단순 조회만 가능 2. 다대일 단방향 다대일의 반대는 일대다 A,B 각 엔티티가 있다면 A는 A.b으로 B엔티티를 참조할 수 있지만 반대로 B에서 A를 참조하는 필드가 없다. 그렇기에 A와 B는 다대일 단방향 연관관계다. === A 엔티티 ==== @Entity public class A { @Id @GeneratedValue @Column(name = ..
[TIL] 항해99 Day 40 항해 40일차 2022.02.18 # 6. 엔티티 설계 시 주의점 ### 엔티티에는 가급적 Setter를 사용하지 말자 - Setter가 모두 열려있다. 변경 포인트가 너무 많아서, 유지보수가 어렵다. 나중에 리펙토링으로 Setter 제거 ### 모든 연관관계는 지연로딩으로 설정 - 즉시로딩( EAGER )은 예측이 어렵고, 어떤 SQL이 실행될지 추적하기 어렵다. 특히 JPQL을 실행할 때 N+1 문제가 자주 발생한다. - 실무에서 모든 연관관계는 지연로딩( LAZY )으로 설정해야 한다. - 연관된 엔티티를 함께 DB에서 조회해야 하면, fetch join 또는 엔티티 그래프 기능을 사용한다. - @XToOne(OneToOne, ManyToOne) 관계는 기본이 즉시로딩이므로 직접 **지연로딩**으로..
[TIL] 항해99 Day 39 항해 39일차 2022.02.17 4. 회원 테이블 분석 MEMBER: 회원 엔티티의 Address 임베디드 타입 정보가 회원 테이블에 그대로 들어갔다. 이것은 DELIVERY 테이블도 마찬가지다. ITEM: 앨범, 도서, 영화 타입을 통합해서 하나의 테이블로 만들었다. DTYPE 컬럼으로 타입을 구분한다. 참고: 테이블명이 ORDER 가 아니라 ORDERS 인 것은 데이터베이스가 order by 때문에 예약어로 잡고 있 는 경우가 많다. 그래서 관례상 ORDERS 를 많이 사용한다. 5. 연관관계 매핑 분석 회원과 주문: 일대다 , 다대일의 양방향 관계다. 따라서 연관관계의 주인을 정해야 하는데, 외래 키가 있는 주문을 연관관계의 주인으로 정하는 것이 좋다. 그러므로 Order.member 를 ORDE..