다량의 데이터 삽입 시간 줄이기
·
BE/개발일지
이번 네트워킹 과제는 지난 과제와 비슷하게 이어서 진행된 과제이다.과제레포지난 과제는 20여개의 엑셀에 있는 데이터를 파싱해서 삽입하는것이 포인터라면, 이번 과제는 파일의 크기가 10,000배 증가한 20만개의 데이터를 삽입하는 과제이다.우선, 기존 코드로 엑셀에 데이터를 넣어보자. DB에 20만개의 삽입 쿼리@Transactionalpublic void createData() throws InvalidFormatException, IOException { OPCPackage excel = OPCPackage.open(new File(EXCEL_PATH)); Workbook sheets = new XSSFWorkbook(excel); Sheet firstSheet = sheets.getS..
데이터베이스 기본키 생성 전략
·
BE/개발일지
개발을 하다보면 DB연결을 통해 자바 객체를 데이터베이스에 저장하곤 한다.이 과정에서 PK를 개발자가 직접 지정하지 않는다.보통 아래와 같은 방식으로 pk외의 다른 컬럼에 대한 값을 지정하고 save를 하는 시점에서 자동으로 PK가 결정되게 한다.@Builderpublic Property(String zipCode, String roadNameAddress, String landLotNameAddress) { this.zipCode = zipCode; this.roadNameAddress = roadNameAddress; this.landLotNameAddress = landLotNameAddress;}기본 키는 기본 키 제약조건에 의해 아래와 같은 조건을 만족해야한다.기본 키 제약조건n..
[우아한테크코스 6기] 프리코스 - 4주차
·
BE/우아한테크코스
이번 4주차 과제는 지난 3주간의 기존 과제와는 달랐다. 지난 3주의 과제는 작년 프리코스에 나왔던 과제로 레퍼런스들이 상당했지만, 이번 과제는 완전 새로운 과제가 나올 것이 예상되었기에 1주일이 모자랄 수도 있겠다는 생각이 들었다. https://github.com/Youthhing/java-christmas-6-Youthhing GitHub - Youthhing/java-christmas-6-Youthhing Contribute to Youthhing/java-christmas-6-Youthhing development by creating an account on GitHub. github.com 역시나, 새로운 과제 크리스마스 프로모션 과제가 나왔다. 나온건 나온건데 기능 요구사항이 이전과 달랐다..
[우아한테크코스 6기] 프리코스 - 3주차
·
BE/우아한테크코스
이번 과제는 패턴 상 작년에 마지막 과제였던 로또가 나올 것 같았다. https://github.com/woowacourse-precourse/java-lotto-6 GitHub - woowacourse-precourse/java-lotto-6 Contribute to woowacourse-precourse/java-lotto-6 development by creating an account on GitHub. github.com 설계 목표 지난주에 테스트 과도한 캡슐화로 인해 테스트 코드 작성에 어려움을 겪은 점, 클래스 간의 과한 의존성으로 책임을 분리하기 어려웠던점을 기억해 이번엔 더욱 책임을 어떻게 분리할 것인가? 에 대한 고민을 많이했다. 이러한 소프트웨어 설계적 고민에 따른 해결책이 디자인패턴..
[우아한테크코스 6기] 프리코스 - 2주차
·
BE/우아한테크코스
이번 과제는 뭐가 나올까 했는데 자동차 경주 게임이 나왔다. 해당 과제는 지난 겨울 방학 멘토링 자격시험으로 자바를 처음 접할때, 진짜 아무것도 모를때 시작했던 과제였는데 그때보다 나은 프로젝트를 만들겠다는 다짐으로 시작했다. https://github.com/woowacourse-precourse/java-racingcar-6 GitHub - woowacourse-precourse/java-racingcar-6 Contribute to woowacourse-precourse/java-racingcar-6 development by creating an account on GitHub. github.com 이 글에선 2주차 과제를 하며 내가 고민하고 느낀 것들, 피드백을 정리해보고자 한다. 프로그래밍 요..
[우아한테크코스 6기] 프리코스 - 1주차
·
BE/우아한테크코스
지난 10월 19일 ~ 10월 25일까지 프리코스 1주차가 진행되었다. 어떤 과제가 나올까 궁금했는데, 작년 프리코스 과제였던 숫자 야구 게임이 나왔다. https://github.com/woowacourse-precourse/java-baseball-6 GitHub - woowacourse-precourse/java-baseball-6 Contribute to woowacourse-precourse/java-baseball-6 development by creating an account on GitHub. github.com 이 글에선, 1주차 과제를 하며 내가 했던 고민들과 느낀점을 기록해보고자 한다. 구현부터 설계부터? 사실 소프트웨어 공학을 배웠다면, 설계의 중요성은 누구나 알 것이다. 이번 과..
[우아한테크코스 6기] 프리코스 0주차
·
BE/우아한테크코스
우아한테크코스가 시작된다. 합격하게 되면 당장 취업은 아니지만 개발자로 성장할 수 있는 최고의 기회를 얻게 된다. https://www.woowacourse.io/apply 지원하기 🪐 우아한테크코스 2024 신입생 모집 www.woowacourse.io 이를 위한 선발과정인 프리코스는 4주간의 긴 여정인데, 결과는 어떻게 될 지 모르지만 결과를 떠나 이 시간을 유의미한 경험으로 만들고자 시작전 짧은 다짐과 목표를 정하려한다. 스스로 성장하기 우테코 프리코스 과제의 가장 큰 목표이다. 과제를 1주일간 풀면서 스스로 많은 고민을 하고 그 과정에서 개발자로서 성장하는 경험을 주는 것이 우테코 측의 의도이다. 무언가를 알려주지 않고 단지 문제만 나오는데, 이걸 1주일 간 해결하기 위해 스스로 공부하고 정리하고..
OAuth를 통한 인증의 문제와 OIDC
·
BE/개발일지
이번 기수부터 생긴 코테이토의 백엔드 네트워킹 시간. 우리 Team의 첫 주제는 OAuth와 OIDC이다. 아래 Flow의 문제점을 찾고 OIDC로 해결해보는게 첫 과제였다. 1. 가능한 OAuth2.0의 Flow 위 4가지 과정이 무엇을 하는지 정리해보자. 로그인 하지 않은 상태. 새로운 웹서비스 코테이토에 로그인하려하는데, 현재 로그인이 되어있지 않은 상태이다. 로그인 버튼을 눌러 OAuth로 로그인을 시도해보자. 카카오(소셜로그인) 동의여기서는 생일, 카카오계정(이메일), 출생년도, 성별, 연계정보, 카카오계정(전화번호)를 받아와도 되는지 허가 받고 있다. 카카오에서 해당 회원의 정보를 받아오려는데 user의 정보를 받아와도 되는지 확인하는 과정이다. cotato 서비스 회원 가입 약관동의이때, 다..
섹션6 Spring Security 추가
·
BE/Spring - MSA
아래 코드를 보고 생겼던 의문, subject를 우리가 user의 UUID로 만들었는데, DB에 저장된 UUID와 추출된 subject가 동일한지 확인하는 코드가 왜 없지? private boolean isJwtValid(String jwt) { boolean returnValue = true; String subject = null; try { subject = Jwts.parser().setSigningKey(env.getProperty("token.secret")) .parseClaimsJws(jwt).getBody() .getSubject(); }catch (Exception e){ returnValue=false; } if(subject==null||subject.isEmpty()){ retur..
Week9
·
BE/23-1-GDSC - OC-BE
이번장은 자바 문법에 관한 이야기다. 1. 람다와 스트림 람다란? 람다(lambda)란 이름이 없는, 즉 익명을 의미한다. 따라서 람다함수란 익명함수를 의미하는데 말그대로 익명함수이기에 함수의 이름이 없이 괄호와 매개변수, 화살표(->)만으로 함수를 작성할 수 있다. 다음과 같이 말이다. (x) -> x+1 이렇게 코드를 작성하면 코드가 간결해진다는점, 개발자의 의도가 명확히 드러난다는 점, 함수를 선언과 동시에 사용할 수 있어 생산성이 높아진다는점, 병렬처리의 가능하다는 장점이 있다. 이러한 이유로 java8에서부터 람다 함수를 지원한다. 하지만, 장점만 존재하는 것은 아니다. 람다를 사용하면, 다음과 같은 단점이 존재하기에 주의해서 사용해야한다. 첫째, 함수 이름이 없기 때문에 반복된 작업을 간결히 ..
유쓰응
'BE' 카테고리의 글 목록