목록전체 글 (343)
Just Do IT!
지난번, KOSTA에서 교육 과정을 듣게 되었다며https://daydream-sy.tistory.com/311 프론트엔드 개발자 준비를 하다가 백엔드 개발자 준비로 전향했다작년에 내일배움캠프를 수료하고 꽤나 많은 일들이 있었다.우선 가장 큰 일은, 내가 개발자라는 직업을 본격적으로 준비하게 되었다는 점. 42서울 라피신 과정을 진행할 때까지만 해도 개발자daydream-sy.tistory.com이런 글을 작성했었다. 그 이후 시간이 제법 흘러서 어느덧 최종 프로젝트를 하는 기간이 되었다.항상 프론트엔드 파트만 맡았었고, 내배캠 최종 프로젝트 이후 제대로 프로젝트를 한 적이 한 번이라 이번에는 제대로 해보고자 마음 먹었는데 다행히도 2주차까지는 잘 진행되고 있다. 1. Github 활용하기이번 프..
코딩 컨벤션해당 언어로 작성된 프로그램의 각 측면에 대한 프로그래밍 스타일, 관행 및 방법을 권장하는 특정 프로그래밍 언어에 대한 일련의 지침 (출처: 위키백과) 코딩 컨벤션을 사용해야 하는 이유소프트웨어 개발 비용의 80%는 유지보수에 쓰인다.소프트웨어 유지보수는 직접 개발한 개발자가 하는경우가 적다.코딩 규칙을 지키면 다른 사람도 코드를 더 빠르게 이해하고 가독성이 높아진다.즉 같은 컨벤션을 쓰는 사람끼리 서로 코드의 이해도가 향상된다. 따라서 협업하고 유지보수할 때 훨씬 더 가독성이 좋고 간편하다.그렇기 때문에 이번 프로젝트에서 인텔리제이 초기 세팅하고 시작하면서 아예 설정하기로 결정했다. JAVA의 코딩 컨벤션의 종류NAVER : 캠퍼스 핵데이 Java 코딩 컨벤션Google : Goog..
프로젝트를 위해 인텔리제이 유료 버전을 설치했다.설치하는 과정을 담은 블로그들은 많으니 생략하고, 프로젝트를 위해 설치한 플러그인을 정리해보려고 한다. 1. Atom Material Icons 프로젝트 구조 (패키지, 폴더, 파일 등)를 아톰 IDE 디자인을 적용해 아이콘 모양을 바꿔주는 플러그인이다. 적용하면 이렇게 모든 파일을 잘 구분할 수 있게 해준다. 2. Grep Console 콘솔창에 각각 상황별로 색상을 넣어서 좀더 가독성을 편하게 해줄 수 있다 settings > other settings > grep console 을 클릭해서 색상을 변경할 수 있다.나는 아직 프로젝트를 실행해본 적이 없어서 대충 작성했는데 추후에 변경할 예정이다. 3. Git Tool Box 협업 할 때 ..
UML (Unified Modeling Lanuage) 소프트웨어 시스템을 개발하는 과정에서 산출물의 명세화, 시각화, 문서화할 때 사용하는 모델링 언어로써 하나의 시스템을 표현하기 위한 표준적인 방법을 제공하기 위해 만들어졌다. UML 다이어그램의 종류구조클래스 다이어그램 (Class Diagram) : 클래스의 속성, 함수, 변수 타입들로 구성된 다이어그램객체 다이어그램 (Object Diagram) : 클래스의 인스턴스, 값이 매겨진 행동을 가지고 있는 독립된 객체 정보를 표현하는 다이어그램패키지 다이어그램 (Package Diagram) : UML의 다양한 모델 요소를 그룹화한 다이어그램컴포넌트 다이어그램 (Component Diagram) : 컴포넌트끼리의 구조 관계를 표현한 다이어그램배치 다..
Docker소프트웨어 컨테이너 기술을 제공하는 플랫폼으로, 애플리케이션과 그 의존성들을 격리된 환경에서 실행할 수 있게 해준다.애플리케이션을 효율적으로 개발, 배포, 실행할 수 있다.다양한 운영 체제 및 클라우드 환경에서 동일한 방식으로 동작하므로 개발 환경과 프로덕션 환경 간의 일관성을 제공한다 Docker의 주요 개념, 구성 요소이미지 (Image)애플리케이션과 그 실행에 필요한 모든 것을 포함하는 가볍고 독립적인 패키지파일 시스템, 라이브러리, 실행 환경 및 애플리케이션 코드 등을 포함하고 있다.컨테이너 (Container)이미지의 실행 가능한 인스턴스격리된 환경에서 동작하며, 호스트 시스템과는 독립적으로 실행된다.각 컨테이너는 자체 파일 시스템, 프로세스, 네트워크를 가지며, 호스트 및 다른 컨테..
요즘 docker 실습을 가상머신에서 하고 있다.가상머신 설치 관련은 TIL 레파지토리에 이미 정리해서 블로그에도 정리해야 하나 고민 중이라,우선은 내가 진행했던 프로젝트를 빌드해보는 걸 정리하려고 한다.가상머신 설치 관련 정리:https://github.com/seoyeon-jung/kosta-study-log/blob/master/16%EC%A3%BC%EC%B0%A8/240924/README.md kosta-study-log/16주차/240924/README.md at master · seoyeon-jung/kosta-study-logKOSTA TIL. Contribute to seoyeon-jung/kosta-study-log development by creating an account on Gi..
트래픽이 많은 웹사이트의 서버(AWS)를 도와주는 비동기 이벤트 기반 구조의 경량화 웹 서버 프로그램클라이언트로부터 요청을 받았을 때, 요청에 맞는 정적 파일을 응답해주는 HTTP Web Server로 활용된다Reverse Proxy Server로 활용하여 WAS의 부하를 줄일 수 있는 로드밸런서 역할을 수행할 수 있다 이러한 특징을 이해하기 위해서는 아래의 흐름을 먼저 이해해야 한다. 클라이언트서비스를 이용하기 위해 네트워크를 통해 요청을 보내는 주체웹 개발 영역에서는 보통 크롬, 사파리, 익스플로러 등 웹 브라우저를 의미한다. 웹 서버클라이언트와 서버 간의 통신을 처리하며 웹 애플리케이션을 호스팅할 수 있게 해주는 소프트웨어클라이언트의 HTTP 요청을 받아 정적 or 동적으로 웹 페이지를 제공해주는 ..
OAuth2 로그인 과정 (예시에는 google이지만 다른 소셜 서비스도 가능) 구글 로그인google cloud에서 앱 생성하기OAuth 동의 화면에서 앱 등록범위 설정OAuth Client ID 만들기 서버에 올리지 않았기에 localhost:3000을 추가해주었다. 카카오 로그인kakao develop에 앱 추가redirect URI 추가REST API key, 보안 키 설정 위의 과정을 거치고 나면, 해당 프로젝트에 필요한 것들을 모두 세팅할 수 있게 된다.그리고 이제 코드로 구현하면 된다. Java 코드 구현 [백엔드]User entity 수정public class User implements UserDetails { @Column(nullable = true) priva..
@Builder will ignore the initializing expression entirely. If you want the initializing expression to serve as default, add @Builder.Default. If it is not supposed to be settable during building, make the field final. 실습을 하면서 User entity를 생성하는데, 이러한 warning이 뜨고 있었다.생성자를 사용하여 초기화하는 방법 대신에 lombok 어노테이션 중 하나인 @Builder를 사용했는데 이것 때문에 오류가 난 것이었다. 그렇지만 아래 if문을 읽으면 해결방법을 알 수 있다.☞ @Build.Default를 사용하거나 f..
월요일부터 JWT 실습을 하고 있는데 token을 두 가지로 발급하는 이유에 대해 정리해보고자 한다. JWT 토큰 인증 방식어제 블로그글에도 정리했지만 JWT 토큰 인증 방식은 비밀키로 암호화를 해서 안전하게 통신한다.JWT 토큰이 유저의 신원이나 권한을 결정하는 정보를 담고 있는 데이터 조각이니까. JWT는 헤더, 페이로드, 서명 세 가지 정보를 base64로 인코딩한 값을 콤마('.')를 사이에 두고 이어붙인 형태로 생성된다.헤더: JWT 서명에 사용된 알고리즘을 담는다.페이로드: 토큰에 담긴 주체(Subject), 만료일(exp), 생성자(iss) 등을 담는다.시그니처: 헤더와 페이로드를 각각 base64로 인코딩한 후 콤마로 이어붙인다. 그리고 이를 헤더에 명시된 알고리즘으로 암호화한 값을 담는다..