규턴의 개발블로그
현대자동차 소프티어 부트캠프가 끝나고

이번에 현대자동차 소프티어 부트캠프가 끝났다. 이제 내가 어떠한 방향으로 나아가고 고쳐야할 부분이 있는지 정리하려고 한다. 1주차 1주차에서는 자바만을 사용해서 로또프로그램을 만드는 것을 하였다. 그룹별로 진행하였고 각 그룹 팀원끼리 해당 코드에 대해서 리뷰하는 시간을 가졌다. 또한 다른 그룹간 사람들끼리도 코드리뷰 하는 과정이 있었다. 이렇게 코드리뷰를 하는 과정이 너무 마음에 들었고 해당 과정이 나에게는 1순위로 인상깊었다. 하나의 코드에도 과연 이렇게 하는게 맞는지 이야기하는과정이 재밌었다. 2~4주차 2주차~4주차에서는 웹서버를 직접 구현하였다. 이전까지는 스프링,스프링부트만을 사용하여 웹서버를 구현하였고 해당 프레임워크를 쓰지 않고 웹서버를 직접 구현하였다. 해당 과정을 통해 얻은것이나 신기한것..

article thumbnail
쿠키의 SameSite 옵션 (Feat CORS)

우리의 프로젝트는 세션을 통해 사용자 인증을 진행하고 있었고, 해당 값은 프론트에서 쿠키로 저장하고 있었다. 하지만 문제가 있었다 1. 로컬에서는 쿠키가 잘 저장 되었다. 2. 포스트맨에서도 쿠키가 잘 저장 되었다 하지만 백엔드 서버를 EC2에 올리고 프론트는 로컬에서 작업할때 쿠키가 저장되지 않았다. 그리고 해당 문제를 찾아보니 2가지가 있었다. 1. CORS 2. Cookie의 SameSite옵션 들어가기 전에 CORS가 뭔데? 이렇듯 우리가 겪는 모두 CORS 정책을 위반했기 때문에 발생하는 것이다. 사실 CORS라는 방어막이 존재하기 때문에 우리가 이 곳 저 곳에서 가져오는 리소스가 안전하다는 최소한의 보장을 받을 수 있는 것이다. CORS=교차 출처 리소스 공유 교차 출처 리소스 공유? - 다른..

article thumbnail
Redis vs DB (Full scan은 누가 더 빠를까?)

이번 소프티어 부트캠프를 하면서 주유소 검색 기능을 추가해야 했었다 사용자가 입력하는 주유소 이름을 기반으로 18000개의 데이터를 full scan 해야 하는 상황.. 저희는 당연히 redis가 더 빠를것이라 생각해서 redis에 주유소 정보를 모두 저장하였다. 구조는 다음과 같다. 즉 12000개의 주유소의 PK가 Key값으로 저장되고 해당 key는 Object로 GasStation정보를 가지고 있다. Redis로 주유소를 검색하는 경우 요청 받은 이름이 포함되어 있는것은 List에 add 하여 요청이름이 포함되는 주유소 리스틀 보여주는 과정을 API 구축을 하였다. full scan 했을때 3분이 걸렸다.. ㅋㅋㅋㅋㅋ DB(MYSQL)로 주유소를 검색하는 경우 0.3초가 걸렸다.. 결론 왜 이럴까?..

article thumbnail
3주차 미션 - 동적인 HTML과 쿠키,세션을 이용한 로그인

3주차 미션은 다음과 같았다 1. GET으로 회원가입 -> POST로 변경 2. 동적인 HTML요구(로그인, 비로그인시 메인화면 페이지가 동적으로 변할 수 있어야함 로그인시: 사용자의 이름이 보여야하고, 로그인 회원가입 버튼이 삭제 비로그인시: 사용자의 이름이 보이지 않고, 로그인 회원가입 버튼이 보여야함 3. 쿠키 세션을 이용한 로그인/회원가입 기능 요구 1. GET으로 회원가입 -> POST로 변경 나는 이전에 중간 피드백시간에서 한 팀원이 리플렉션을 사용하여 컨트롤러를 선택하는 로직을 보았다. 해당 로직은 인상깊었고, 실제로 스프링도 Reflection을 사용하여 로직이 구현되는것으로 알 고 있다. 그렇기에 이번에 Reflection을 공부해볼겸 실제 프로젝트에도 적용해보았다! public stat..

article thumbnail
Java Reflection

이번 2주차 웹서버를 구현하는 미션을 받았다. 해당 미션은 실제 웹서버를 Socket기반으로 통신하는것을 직접 하드하게 코딩하는것이었다. 깃헙 주소:https://github.com/gyuturn/be-java-web-server GitHub - gyuturn/be-java-web-server: 현대자동차 소프티어 부트캠프 2023 자바 웹 서버 프로젝트 현대자동차 소프티어 부트캠프 2023 자바 웹 서버 프로젝트. Contribute to gyuturn/be-java-web-server development by creating an account on GitHub. github.com 다른팀원들의 코드를 본 경험중에 Reflection을 사용하여 Request를 매핑하여 해당 컨트롤러에 해당하는 Me..

JAVA에서 좋은 코드란?

우아한테크코스 프리코스를 진행하면서 클린코드(좋은 코드)에 대해 관심을 가지게 되었다. 또한 현재 진행중인 현대자동차 소프티어 부트캠프에서도 객체지향 + 클린코드에 대해 학습하였다. 호눅스님께서 따로 정답은 없다고 하셨지만, 다른 개발자들이 시행착오를 겪으면서 BestPractice는 있다고 생각한다. 그렇기에 내가 배우면서 느낀 클린코드, 객체지향적인 코드가 무엇인지 정리해보고자 한다. 좋은 코드 좋은 코드라는 말은 추상적이다. 흔히 사람들이 말하는 좋은코드중 하나는 읽기좋은 코드 유지보수하기 좋은 코드(즉, 요구사항의 변경에 유연한 코드) 여기서 읽기좋은 코드와 유지보수하기 좋은 코드는 다른 의미이다. 읽기좋은 코드는 유지보수하기 어려울 수 있으며, 유지보수하기 좋은코드는 읽기좋은코드일 수 있다. 그..

보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력해주세요.
보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력해주세요.