프로그래머스 웹 데브코스 백앤드 1기 2주차 리뷰

라이엇 코리아 개발 팀장님의 티어는?

라코 개발 팀장님의 특강을 듣기 전에 드는 생각 이라곤.. 아.. 그님티(그래서 님 티어는?)를 하는건 선넘는거겠지...? 이었는데... 정말 물어보는 사람이 있었다🤣🤣

특강으로 깃헙 리뷰를 통한 TDD 및 CI 로 연결되는 방식을 볼 수 있었다. 팀프로젝트를 깃허브를 이용해서 한 경험이 없어서 깃헙에 대한 막연한 두려움이 컸지만, 지난 2주의 삽질(?) 끝에.. 조금은 사용하기 시작한 느낌이다😁. 일일이 영상으로 남겨주면서 가르쳐주는 멘토님과 매니저님들 정말 감사합니다!!😊

일단 나는 테스트 코드 짜는법 부터 알아보자... 책 추천 언제 해주시지...?

JDBC 연동 이슈

5일차 jdbc 연동 중에 나와 민규님만 안되는 현상이 있었다. 구글링을 통해서 Project structure -> Library로 들어가 라이브러리 파일을 직접 들고옴으로써 설정하는 방법이 팀원들에게는 모두 적용이 됬으나, 우리는 되지 않았다...😂

원인은 Gradle을 끼고 프로젝트를 만든 것이었다. Gradle을 사용할 경우, JDBC 의존성만 해결하면되는데, 그걸 생각 안하고 자바 프로젝트에서 하는 방식으로 했다가 망했다...

민규님이 나서서 팀원들에게 물어보지 않았다면, 해결하는데 더 오래 걸렸을꺼 같다. 감사합니다 민규님😀

근데.. gradle을 끼고도 라이브러리 파일 들고오는건 되야하는거 아닐까...?

스트림은 최종연산 전까지는 아무것도 안한다.

Stream<Integer> stream = Stream.generate(() -> (int)(Math.random() * 1000000) + 1)
        .distinct()
        .limit(1000000);

startTime = System.nanoTime();
stream.sorted();
System.out.println("stream : " +  (System.nanoTime() - startTime));

갑자기 생긴 궁금증으로 stream의 sort는 성능이 얼마나 될까? 라는 생각을 하게 되었다. 위에는 스트림 관련코드이지만 사실 Array, ArrayList, LinkedList 를 모두 실험했었다.

방식은 렌덤한 1 ~ 100만 까지의 숫자를 렌덤 생성하여 중복을 제거한 100만개 숫자를 정렬하는 방식이었다. 다른 sort() 함수들은 데이터의 양을 늘리면 시간 역시 증가하는데, stream은 속도 변화가 없었다😵😱

사실 위의 코드에서 stream은 동작하지 않는다.

sorted() 는 중간연산 이므로, 최종연산을 하지 않으면 동작하지 않는다. 이 사실을 생각못해서 날려버린 나의 4시간... 심지어 멘토님이 도와주신거다 ㅠ...😰

그럴수.. 있어!😁😁

DB는 백앤드의 영역이다.

데이터의 중요함으로 데이터 직군이 고도화된 지금, 백앤드 개발자는 어느정도 DB를 파야할까? 라는 질문이 들 수밖에 없다.

이 질문에 대해서 멘토님께선 아래 처럼 답해주셨다😁
1. 특정 서비스를 기준으로 DB가 어떤 역할로써 존재하는지에 대한 이해가 필수
2. DB를 설계하는 것보단 이미 설계된 DB를 읽어보고, 설계한 사람의 의도를 스스로 파악할 정도의 실력을 키워라
3. 2번에서 많은 경험을 키워 직접 DB 설계를 해봐라! -> 결국 언젠가 설계를 해야한다!

결국 DB는 서비스를 위한 것이고, 학문적인 느낌도 중요하지만, 실무적인 관점에서 보는 것이 중요하다 라고 느껴졌다.

너무 조급하게 생각하지 말고, 천천히 천천히 보면서 배우려고 하자. 대학 다니는 동안 파는것만 익숙해져서 넓게 보려고는 못하는거같다...😥

좋은 웹페이지 즐겨찾기