java 19

[우아한테크코스] 3주차 후기 - if 문 없이 개발하기

날짜 TODO 추가 공부 5/20 (월) 사다리 타기 리뷰 - 5/21 (화) 강의 (Git, ), 페어 프로그래밍 (좌표 계산기) 책-객체지향과 디자인패턴 5/22 (수) 페어 프로그래밍 (좌표 계산기) 5/23 (목) 페어 프로그래밍 (좌표 계산기) 함수형 인터페이스 5/24 (금) 공부 (책-객체지향과디자인패턴), 강의 (페어프로그래밍 회고) 팩토리패턴 5/25 (토) 캡스톤 개발 - 5/26 (일) 피드백 (좌표 계산기) - 팩토리 패턴 이번 주차 실습과 과제에서는 팩토리 패턴을 이용하는 부분들이 자주 등장하였다. 팩토리 패턴이란? 어떤 클래스의 인스턴스를 만들지 서브클래스에서 결정하는 패턴 조건에 따른 객체 생성 부분을 자신이 직접하지 않고 팩토리 클래스에 위임하여 객체를 생성하는 방법이라고 할..

[우아한테크코스] 2주차 과제 피드백 후기

이번 과제는 사다리 타기를 구현하는 프로그램이다. 몇 가지 중요했던 피드백들을 정리해 보았다. 일급 컬렉션 기존 코드 public class Players { private List players; public Players() { players = new ArrayList(); } public void add(Player player) { if (checkDuplicateName(player)) { throw new IllegalArgumentException("이름은 중복될 수 없습니다"); } players.add(player); } public void addAll(List players) { this.players = players; } private boolean checkDuplicateNa..

[우아한테크코스] 1주차 후기 - 단위테스트에 대해서

우아한테크코스 1주차 후기 날짜 TODO 추가 공부 5/7 (화) OT 5/8 (수) 강의 (단위 테스트란 무엇인가) 어떻게 공부할 것인가 고민... 5/9 (목) 페어 프로그래밍 (자동차 경주 게임 구현, 계산기 프로그램 구현 -> 단위테스트 중점) JUnit5 공식 문서 정리 5/10 (금) 강의 (피드백), 페어 프로그래밍 (과제 마무리) AssertJ 공식 문서 정리 1주차 진행 테이블이다. 내용은 통합하여 정리하려고 한다. OT 후기 새로 지은 교육장에 처음 간날 오티가 진행이 되었다. 조끼리 앉았지만 그 날만 해당이 되는 부분이었다. 아이스 브레이킹 시간을 갖고 교육이 어떻게 진행되는지 전반적인 설명과 Q&A를 가지는 시간이었다. 다들 열정이 가득해보였다. 첫 강의: 단위 테스트란 무엇인가 첫..

[AssertJ] JUnit과 같이 쓰기 좋은 AssertJ 필수 부분 정리

AssertJ가 core document를 새로운 github.io로 이전했네요 :) . 본 글은 AssertJ 공식 문서를 핵심 챕터를 선정하여 번역하며 정리한 글 입니다. http://joel-costigliola.github.io/assertj/assertj-core.html AssertJ란 무엇인가 AssertJ는 많은 assertion(직역: 주장, 행사)을 제공하는 자바 라이브러리이다. 에러 메세지와 테스트 코드의 가독성을 매우 높여주고 각자 좋아하는 IDE에서 쓰기 굉장히 쉽다. junit에서 제공하는 assertEquals에 비해 훨씬 가독성이 올라간다. junit의 assertEquals의 인자순서는 헷갈릴 가능성이 크다. assertEquals(expected, actual); asse..

[Nexters]넥스터즈 (URL 단축팀) 활동 - 서버간 통신 gRPC 적용기

gRPC 적용 내용의존성 추가먼저 의존성 추가를 하는데 이렇게 3가지가 들어간다. io.grpc grpc-netty-shaded 1.18.0 io.grpc grpc-protobuf 1.18.0 io.grpc grpc-stub 1.18.0 그리고 컴파일러또한 의존성에 추가해준다. 출처 : grpc 공식 repo 그러면 proto 파일들의 기본 경로가 java폴더와 같은 level에 잡히게 된다. proto 파일의 정의그리고 이 폴더안에 .proto라는 파일을 만들어주게 되는데 자세한 내용은 이 쪽을 참고하였다. 출처 : protobuf from google 이 프로토버프 파일은 언어의 제약이 없다. (거의) 즉 이것의 최고의 장점은 범용성이다. 자바로 짜여진 grpc 서버와 파이썬인 클라이언트와 통신을 할..

[넥스터즈] 넥스터즈(Nexters) 지원 동기 및 면접 후기

넥스터즈는 it 연합동아리로 디자이너와 개발자가 함께 일할 수 있는 모임이다. 개발을 하면서 항상 고민되는 것은 디자인 이었다. 그래서 부트스트랩을 애용하고 디자인을 차용한다. 하지만 디자이너분들과 같이 일하게 되면 그런 걱정을 하지 않아도 된다. 그리고 큰 동아리이고 서비스 출시까지 같이 하는 취지여서 너무 좋아서 지원하게 되었다. 후기가 좀 늦은 편이지만 사실 작년 학기 도중 지원하고 면접을 봤었다. 그리고 정기활동은 12/29일부터 시작을 하였다. 면접 때 느낀 것과 활동을 정리해보려고 글을 쓴다. 홈페이지는 여기다! http://teamnexters.com/ 홈페이지에서 발췌한 사진이다. 서류 접수를 3주간 받았다. 그리고 서류 합격자 발표가 났다. 학기 도중 지원서를 쓰고 기다렸다. 지원 당시에..

[Java] 람다(Lamda)식과 함수형 인터페이스 (Functional Interface)

람다식 (Lamda Expression)JDK 1.8 부터 추가된 람다 식은 많은 변화를 가져다 주었다. 람다식이란 메서드를 하나의 식으로 표현해주는 간편한 기능이다. 예를들어, 123456789int max(int a, int b) { return a > b ? a : b;} (int a, int b) -> { return a > b ? a : b ;} (int a, int b) -> a > b ? a : b (a, b) -> a > b ? a : bcs 위의 max함수를 람다식으로 표현하면 밑에 3가지가 될 수 있다. 람다식에 선언된 매개변수는 추론이 가능한 경우 생략할 수 있다고 한다. 람다식은 런타임 때 익명 객체를 생성하기 때문에 대입 되는 값에 따라 자동인식이 되기 때문이다. 그리고 함수 몸체..

[인턴 일지] 스프링 각종 코드 수정 작업 중, 잔 버그 해결

직원 등록 form 에서 3개의 페이지에 걸친 직원 들의 정보를 입력하고 REGISTER 버튼을 누르면 DB에 접근해서 데이터를 넣게 된다. 문제가 없을 줄 알고 DB에 엑셀을 이용해서 데이터를 넣고 있었다. 하지만 실제 사용자가 쓰는 곳은 웹 ui상이므로 나도 테스트 기간에는 데이터를 웹에서 직접 입력한다. 그런데 생각보다 많은 예외와 에러가 발생한다... validation 체크가 확실하게 다 되지 않아 unexpected 한 값이 넘어가는 것을 잡지 않아서 톰캣 로그에서 error가 터진다. 대표적인것은 Duplicate PRIMARY KEY 이다. DB 직원 정보 테이블은 SSN Number (소셜 시큐리티 넘버) 를 주요키로 가지게 된다. 이것은 중복된 값이 들어갈 수가 없다. 사용자는 첫 페이..

[인턴 일지] Amazon S3 이미지 업로드, 다운로드

원래는 각 직원 한 명당 사진 1개씩으로 정해졌지만 갑자기 한 사람당 여러 사진들을 업로드하는 기능이 있었으면 좋겠다고 한다. 자꾸 말 바꾸면 기간만 길어지고 개발진행에 방해가 될거같다고 했다. 예상은 하고 있었다. 결국 알겠다고 바꾸기로 했다. 그러면 아마존 버킷에 각 직원별로 폴더가 생겨야 할것이고 각 폴더에 동적으로 원하는 만큼의 이미지 또는 파일들이 올라가게 될 것이다. 오래 걸릴거 같다고 했는데 2시간만에 끝내버렸다. 제일 먼저 규칙을 정했다. 버킷내에 폴더 명 규칙은 Last Name + First Name + SSN Number (소셜넘버) 으로 정했다. 처음에는 그냥 소셜 넘버만으로 폴더를 만들기로했는데 생각해보니까 버킷을 열었을 때 가독성이 좀 떨어질 것 같아서 이름까지 넣기로했다. 이름..

반응형