전체 글
-
프로젝트 이야기 2 - 첫 프로젝트에 대한 감상, 도움말회고 2022. 10. 26. 15:47
코드스테이츠 SEB 1기 대망의 첫 프로젝트는! 팀원들과 만나자 마자 2주만에 스택오버플로우를 클론코딩 해야 하는 것이었다. 아니 2주요? 난 배포도 제대로 모르는데?! 2주만에 완성을 하라고?!?! 서로 인사할 시간도 없겠다!?!?!?!?!.... 들어가기 앞서... 잡담에 가까운 포스팅이 될 것 같아서 최소한 잘한점/아쉬운점은 정리해두고 시작하려고 한다.. 잘한점 : 매일 스크럼 (우리는 그냥 '아침 회의'라고 불렀는데 어제 유튜브에서 컨퍼런스 영상 보다가 단어를 배웠다. 가능한 캠도 켰다) 매너 잘 갖추기 (당연한건데 중요한듯.) 업무 규칙 처음에 잘 갖춰놓은 것 (되는대로 진행했다간 소스코드 머지할때 파국이다) 포트폴리오에 끼워넣겠다고 오만 기술 다 끌고 오지 않았음(다들 현실적인 시각을 가진 팀..
-
[Java Multithreading] 메모리 영역 - Stack과 HeapJava/Multi Threading 기초 2022. 10. 25. 13:57
Java Multithreading 멀티스레딩의 개념과 Java에서의 활용법을 공부하고 정리하는 시리즈입니다. 오늘은 멀티스레드 애플리케이션을 구현할 때 고려해야 하는 기초적인 메모리 지식에 대해 이야기 해보려고 합니다. 달리 말해 스택과 힙 이야기인데요. 각 메모리 영역의 특성과 어떤 것들을 포함하는지를 생각해 보겠습니다. Stack 스택은 각 스레드마다 생성되는 메모리 영역입니다. 이 영역에 포함되는 것은 다음과 같습니다. 호출된 메서드와 현재 실행 중인 구문을 표시하는 명령어 포인터(Instruction Pointer) 인자(argument)와 지역변수 메서드 리턴 값을 저장하기 위한 공간 메서드는 하나의 프레임으로 쌓이고 메서드에 사용되는 변수들은 해당 프레임 안에 쌓입니다. 이 하나의 프레임은 ..
-
[Java Multithreading] 성능 최적화의 두 관점 - 처리량과 http 서버Java/Multi Threading 기초 2022. 10. 24. 17:48
Java Multithreading 멀티스레딩의 개념과 Java에서의 활용법을 공부하고 정리하는 시리즈입니다. (포스팅마다 번호 매기는 건 헷갈려서 그만둘게요...) 처리량(throughput) 지난 포스팅에서는 지연시간(latency)를 줄이기 위한 전략 중 하나로 태스크를 서브태스크로 나누는 방식을 소개했습니다. 그리고 거기에는 다음과 같은 오버헤드를 고려해야 했죠. 태스크를 서브태스크로 쪼개는데 드는 비용 스레드를 생성하는 비용 start()된 스레드가 스케줄링 되기 까지의 시간 마지막 스레드가 작업을 끝내고 시그널을 보내기까지의 시간 작업을 취합할 스레드가 시작하기까지의 시간 서브태스크의 결과물을 하나로 취합하기 까지의 비용 하지만 그것은 하나의 작업을 처리하는 시간(지연시간)을 줄이기 위한 해결..
-
openssl로 crt/pem 인증서를 p12로 변환하고 tomcat에 설치하기기타 2022. 10. 24. 13:17
친구가 보안인증서 갱신해야 하는데 좀 도와달라고 해서 해봤다. 이런건 100% 까먹기 마련이기 때문에, 두번 시간 낭비하지 않기 위해 기록한다. 반복숙달로 외우면 가장 좋고..! 인증서를 pkcs12 형식으로 변환하기 톰캣에 사용하려면 발급받은 인증서를 pkcs12 형식(.p12)으로 변환해야 한다. 발급받은 인증서가 pem 형식이면 바로 아래 설명은 건너뛰고 변환 부분부터 참고하면 된다. crt 형식이면 아래의 인증서 병합하기를 따라한다. 인증서 병합하기 cat ssl.crt - chain.crt > sslmerge.crt 입력 엔터 한 번 입력 ctrl + D(EOF) 입력 위의 예시는 인증서와 체인인증서를 병합하는 예시다. 중간에 엔터를 입력해주지 않으면 파일 사이에 줄바꿈이 되지 않아서 -----..
-
질문답변: DTO를 만들 때 왜 HTTP Method별로 따로 만들어야 하나요?기타 2022. 10. 22. 12:46
질문 (생략)... 굳이 왜 두개의 클래스로 구분해서 만들까라는 의문이 들었습니다. 왜냐하면 클라이언트에서 받는 요청은 어차피 같은 형식의 데이터로 올것이고, 그안에 정의되어있는 body값, json 형태의 key와 value는 post던 patch던 이미 사전에 정의된 같은 key에 대한 value만 들어올것이기 때문입니다. 예를 들어, 현재 member에서는 이미 요청으로 들어올 값들이 새로운 멤버 생성이던(post) 기존 멤버의 정보를 변경하던(patch) 요청으로 들어오는 message의 body값은 memberId, email, name, phone로 한정되어 있습니다. 따라서 각각의 post dto, patch dto가 아닌 하나의 member dto 객체로 받아온다면 굳이 여러개의 dto를 ..
-
프로젝트 이야기 1 - 와금이 이야기회고 2022. 10. 19. 16:02
프로젝트 이야기 1 - 와금이 이야기 렛츠서울 프로젝트를 진행한 우리 팀의 이름은 와그미다(WAGMI, We are gonna make it이라는 멋진 의미). 이 멋진 이름은 프로젝트 초반에 정윤님이 제안해주셔서 만장일치로 정해졌다. 벌써 두 달 전 일이라 구체적인 기억은 벌써 사라졌지만 첫 미팅날 엄청 두근두근했던 기억이 난다. 어떤 일들이 우리 앞에 있을까! 마치 모험을 떠나는 기분이었다. 하지만 너무나 기대감에 부풀고 두근거렸던 걸까. 첫날부터 출석을 까먹었다.😨 프로젝트가 시작된다는 생각에 동요하기도 했고, 부트캠프의 출석은 원래 다른 방식으로 하고 있었기 때문에 시원하게 까먹은 것이다. 그런데 나만 그런게 아니라 다들 까먹고 말았다... 나는 이미 이전에 한 번 까먹고 출석을 놓친 적이 있었기..
-
어제는 프로젝트 발표일이었다. 코드스테이츠 백엔드 부트캠프의.기타 2022. 10. 13. 21:58
코드스테이츠 소프트웨어 엔지니어링 부트캠프 (백엔드) 1기 데모데이. 이름 참 길기도 하다. 하여튼 어제는 우리 팀을 비롯해 수많은 팀의 메인 프로젝트 결과물을 보는 날이었다. 어떤 부분은 정말 신기하기도 했고, 어떤 팀은 'about:blank'가 나오기도 했다(...). 또 어떤 팀은 좀 더 본격적인 시도(예를 들어 결제를 도입한다든지)를 하기도 한 반면, 정말 아---무것도, 종이 한 장도 제출하지 않은 팀도 있었다. 그런 일부의 놓아버린(...) 팀을 제외한다면... 나머지 팀들이 사용한 기술 스택은 크게 다를 바가 없다고 할 수도 있다. 혼자 하는 것이 아니라 여러 명이 팀을 이뤄서 하는 것이라 더욱 그런 것 같다. 그래서인지 기술보다도 눈에 띄었던 건 팀웍이다. 좀 의외였다. 그런게 눈에 띌 ..
-
IntelliJ IDEA: 구글 스타일 포맷팅 간단하게 적용하기IntelliJ IDEA 2022. 10. 7. 09:51
* 이전 글에서 이어지는 글입니다. IntelliJ IDEA: 잘못된 의존을 찾기 위한 옵션(w/layered architecture) 팀프로젝트를 진행하다가 갑자기 포스팅 아이디어가 떠올라서 급히 적어보는 글입니다. 위에 말한 팀프로젝트에서 다음주에 코드리뷰를 진행하기로 했어요. 그래서 피드백을 드릴만한 부분을 sslblog.tistory.com 안녕하세요 😀😀 오늘은 지난 글에 이어서 코딩 스타일 이야기를 해보려고 합니다. 지금은 코드스테이츠의 백엔드 부트캠프 마지막 프로젝트를 거의 마친 시점인데요. 주어진 프로젝트 기간이 넉넉치 않기도 했지만(4주), 저희 조는 이런 저런 풍파를 맞아...😂 2주 정도의 시간이 개발 시간으로 주어졌습니다. 짧은 기한 내 기능 구현에 급급해서 컨벤션에 신경쓸 겨를이 ..