개발 10

Enum 조회 성능 높여보기 - HashMap을 이용해서 빠르게 조회해보자

Enum 조회 성능 높여보기 자바의 Enum 에서 매핑을 할 때 find 메서드를 정의해서 알맞는 enum 을 찾는 로직을 많이 구현해본적이 있을 것 같아요. 다음과 같은 코드가 익숙하실텐테요. 저도 이런식으로 하다가 어느 날 친구가 인사이트를 주어 개선할 부분이 있는 것 같아 실험을 해보았습니다. 먼저 간단한 AccountStatus enum을 보겠습니다. package com.jaytech.codepractice; import java.util.stream.Stream; import lombok.Getter; @Getter public enum AccountStatus { INUSE("사용중"), UNUSED("미사용"), DELETED("삭제"), UNKNOWN("알수없음"); private fin..

프로그래밍/Java 2020.01.12 (4)

[우아한 형제들] 우아한 테크코스 지원부터 프리코스까지 마친 후기

이 글은 우아한 테크 코스를 지원하게 된 동기와 느낀 점을 담은 글입니다. 개인적인 의견이므로 다소 주관적일 수 있습니다. 저 안경안에 java 마크와 노트북의 치킨 마크의 디테일까지. 어떻게 저런 감성이 나올까... 자세한 코스의 내용은 우아한 형제들의 기술 블로그 링크를 들어가서 보면 된다. 자세한 내용은 밑의 링크를 참조하자. http://woowabros.github.io/woowabros/2019/02/08/woowacourse.html '우아한테크코스 - 웹 백엔드' 과정에 참여할 사람을 모집합니다. - 우아한형제들 기술 블로그 우아한테크코스가 뭔가요? woowabros.github.io 먼저 우아한 형제들의 테크코스에 지원한 지원동기에 대해서 이야기해 보겠다. 지원동기는 크게 2가지였다. 첫..

[넥스터즈] 서버 개발 일지 - Nginx 적용기, Nginx 정규식 적용과 기타 주요 내용

Nginx더 적은 자원으로 빠르게 서비스할 수 있는 웹 서버로 우리 프로젝트에 적용할 웹서버이다. 엔진엑스는 하나의 마스터 프로세스(master process)와 워커 프로세스(worker process)를 가지고 있다. 마스터 프로세스는 설정들을 읽고 워커 프로세스들을 관리한다. 워커 프로세스는 실제로 요청들을 처리하는 프로세스이다. 워커 프로세스들의 숫자는 사용가능한 CPU 코어수에 맞춘다.ps -ax | grep nginxrunning 중인 모든 엔진엑스 프로세스를 보여준다.정적 content 관리/data/www 라는 디렉터리를 만들었다고 하면 그 곳에 index.html을 놓아보자.http { server { } }이미 nginx를 설치를 한다면 디폴트로 주석이 달린 블럭들이 있는데 그것을 활용..

[넥스터즈] 개발 일지 1주차 개발 내용 및 아이디어 선정

넥스터즈 활동이 시작 되었다. 여러 기수 회원들이 참가한 이번 시즌에는 좋은 아이디어들이 많이 나왔다. 아이디어가 선정이 된 회원들은 (대략 10개정도) 발표를 하고 팀 모집을 시작했다. 모바일, 웹, 게임 등 다양한 프로젝트 아이디어들이 나왔다. 발표를 쭉 들어보고 원하는 팀에 가서 상담(?)을 받는 형식이었다. 내가 중요하게 생각한 부분은 스택과 아이디어 였다. 아이디어들은 다들 너무 좋았기 때문에 하고 싶은것이 몇 개 있긴했지만 그 중 제일 재밌어보이고 현실성 있는 아이디어가 있는 팀으로 갔다. 게다가 내 스택과 맞는 팀이었다. 현재 내가 새로운 언어를 공부하면서 진행하기에는 무리가 있기 때문이다. 프로젝트 기간이 2달이기 때문에 1주차부터 바로 개발에 투입되어야 해서 처음부터 배우면서 한다는 것은..

[인턴 일지] POS기 이미지로딩 스크립트 수정

오늘은 12월 첫날이다... 뒤돌아 보면 시간이 빠르게 지나갔다. 어제 한국음식이 너무 먹고 싶어서 곱창 볶음을 투고해서 먹었는데 지금 배가 너무 아프다... 그런데 오자마자 이사님이 pos기 사진 로딩 형식을 바꾸고 싶다고 하셨다. 현재 이미지들이 순서대로 로딩이 되지만 12월 프로모션으로 대표배너하나를 이미지가 3장 로딩 될 때마다 띄워지게 하고 싶다고 했다. 즉 상품이미지 3장 - 대표배너 - 상품이미지 3장 - 대표배너 - ...... 이런식으로 바꾸고 싶다고 했다. 근데 12월 1일 부터 적용이 됬어야 한다고 한다. 오늘인데.... 오늘아침부터 적용되어야 하는 것을 오늘 아침에 얘기하셨다. 이제 아무렇지도 않다. 야호!! 지금 현재 돌아가는 상황은 One Drive에 디자이너가 넘긴 파일들이 있..

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

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

[인턴 일지] 내 프로젝트의 문제점과 나아가야할 방향

프로젝트를 하면서 드는 생각들... 제일 무서운 생각은 무너지진 않을까... 점점 건물이 높아짐에 따라 가끔씩 휘청거린다. 그럴 때마다 매우 조심스럽게 행동한다. 당연히 기본 뼈대가 튼튼해야 건물이 견고해진다. 이 사실을 인지함에도 뭔가 급한 마음에 막 빨리 쌓으려고 했다. 한 눈에 보이지 않는 코드... 정리가 되어 있지 않은 문맥들... 그래 쌓을 수는 있다. 하지만 수리할 때 문제가 생긴다. 어떤 기능이 어디에 있고 어느 부분을 고쳐야 하는지 바로 보이지가 않는다. 어제의 나와 오늘의 나는 다른 사람인 것을 예전부터 알고 있었다. 어제 분명히 어떤 feel을 받아서 정신없이 코드를 치고 돌아가는 것을 확인했다. 다음날 내가 와서 보면 그건 전혀 내가 한것처럼 느껴지지 않는다. Structure가 중..

[인턴 일지] Spring + Amazon S3 이미지 업로드

처음 프로젝트 요구사항 중 직원들의 특이사항을 그 자리에서 바로 핸드폰으로 찍어서 올리고 싶다는 것이었다. 예를들면 그 직원이 일하는 모습 또는 특정한 문서 사진 또는 기타 필요한 사진들을 말이다. 말처럼 뚝딱 되면 얼마나 좋을까. Project Plan을 줄 때 이 부분을 제일 길게 잡았다. 까다로운 만큼 오래 걸릴것 같았다. 이미지 처리에 있어서 저장소에 실제 파일이 저장되지만 데이터베이스에는 경로와 이름 사이즈 메타데이터 등 정보를 넣어야 하기 때문이다. 사실 조금 꼬인게 처음에 얘기를 나누었을 때 말한 기간안에 이 기능을 구현하지 못할것 같다고 했었다. 그래서 데이터베이스를 설계할 때 이미지 관련해서 테이블을 만들지 않았다. 그런데 할 수 있을 것 같아서 도중에 할 수 있다고하여 기능을 구현 중이..

[인턴 일지] 초기 개발 과정과 스프링 시큐리티 로그인

개발 과정에 있어서 많은 어려움들이 있었다. 에러 하나 터지면 수습하는데 얼마나 걸릴지 몰라 프로젝트 기간을 확실히 말을 하지 못했다. 원래 프로젝트는 due date을 정해놓고 에러가 터지면 그날 집에 가지 못하는 사이클을 경험했었지만 회사 자체가 야근을 싫어하고 미국에서의 work & life balance를 경험하고 싶었기 때문에 길게 잡았다. 그래도 재촉하기 떄문에 차분히 정리할 경황이 없었다. 포스팅 또한 정신이 없겠지만 중요하게 생각하는 과정과 에러해결 과정을 나열해 보겠다. 일단 Maven상에서 에러가나서 Package UI상에 빨간 엑스표시가 뜨는 문제이다. 지금은 안나오지만 저 프로젝트 그림 밑에 엑스표시가 나는 경우가 있다. 밑으로 dept를 쭉 펼치면 에러 tracking이 된다. 하..

[인턴 일지] 회사에서의 첫 프로젝트

미국에 온지 벌써 3달이 다 되어간다. 그 간 많은 일들이 있었고 힘든 일도 많았다. 생활 면부터 회사 문제까지도... 무엇보다 주위에 내 사람들이 없다는 것이 가장 힘들었다. 하소연하고 들어줄 사람이 없다는 것이 느껴본 경험이 없어서 그런지 더욱 서럽기도 하였다. 하지만 이제 괜찮다... 직속상관이 문제가 있어서 회사에 한동안 없어서 일을 시킬 사람이 없었다. 나는 회사 웹사이트 관리로 인턴을 온 것이고 시킬 사람들이 없었다. 처음에는 sns와 마케팅을 했다. 포토샵을 하면서 포스터를 만들고 업로드를 하였다. 그런데 마케팅과 경영 지식이 없어서 잘 하는지는 몰랐지만 그냥 그렇게 있었다. 직속상관이 오고 나서부터 일이 생겼다. 하지만 그는 전공자가 아니다. 나는 사장이 전공자가 아닌 회사에서 단기로 개발..