전체 글

    [후기] 2021 토스 NEXT 코테 & 면접 후기

    보호되어 있는 글입니다.

    음성 채팅 어플리케이션 - TOVE ON

    🤓 개요 스마일게이트 스토브에서 DEV CAMP 인턴 활동을 진행하며 만든 프로젝트이다. 음성 채팅, 텍스트 채팅을 내장한 어플리케이션이며 웹과 앱으로 사용가능하도록 웹 버전, 모바일 버전으로 개발했다. 기술 스택 Front-end : VueJS(Web), Android(Mobile), WebRTC(음성 피어 연결) Back-end : Spring boot, Spring WebSocket (STOMP Pub/Sub), Spring Security, Redis, MariaDB, CoTRUN Infra : Aws S3, Aws RDS, Aws Elastic LoadBalance, Nginx 협업 : GIT, GitLab, Zira 역할 시그널링 서버 구축 WebRTC 전송 정보 중계 로직 구현 ( 참고 : ..

    [DB] 개념 모델링 작성하기 ( with ERD )

    1. Entity 정의 개체를 정의해준다. 2. Attribute 정의 각 개체들의 속성을 정의해준다. 3. Identity 정의 각 개체를 식별할 수 있는 식별자를 정의해준다. 4. Relation 정의 개체 간의 관계를 생각해본 후 관계를 정의해준다. 5. Cardinality 정의 각 개체간에 1:1, 1:N, N:M 관계를 생각해본 후 정의해준다. 1 : 1 1 : N N:M 6. Optionality 정의 각 개체간의 정보들이 어떠한 옵션을 가지고 관계가 있는지 파악한 후 아래와 같이 정의해준다. 만약, 반드시 A가 B를 안 가져도 되는 사항 만약, 반드시 B가 A를 가져야만 하는 사항 전체 ERD 예시 참고 : https://www.youtube.com/watchv=N9NeNEhwGBY&lis..

    CLEAN 함수 (3)

    1. 반복하지 말자 하나의 함수가 다른 코드와 섞이면서 모양새가 달라지는 중복이 발생할 수 있다. 이러한 중복은 깨끗한 코드가 될 수 없게 만든다.. 중복은 소프트웨어에서 모든 악의 근원이다. 중복은 데이터베이스에서는 정규 형식을 통해 해결하고, 객체지향에서는 부모 클래스로 몰아넣는 방법으로 해결하고, 또한 구조적 프로그래밍, AOP, COP 전략들도 있다. 2. 다익스트라의 구조적 프로그래밍 구조적 프로그래밍이란 모든 함수와 함수 내 모든 블록에 입구와 출구가 하나만 존재해야 한다는 것이다. 이 말은 즉슨, return문은 하나 뿐이고, 루프 안에는 break나 continue, goto 문이 존재하면 안 된다. 참고 : 클린 코드 ( 로버트 C. 마틴 )

    CLEAN 함수 (2)

    1. 서술적인 이름을 사용하자 함수명을 좋게 작성할수록 코드의 가치는 더욱 높아진다. 왜냐하면 코드를 읽으면서 코드의 기능을 짐작을 할 수 있다면 깨끗한 코드이기 때문이다. 이름은 길어도 괜찮다. ( 길고 서술적인 이름이 짧고 어려운 이름보다 좋다. ) 이름을 정하는데 시간을 들여도 괜찮다. ( 그만큼 보답이 따를 것이다. ) 이름을 좋게 만들수록 개발자가 설계하기도 쉽고 코드를 개선하기도 쉬워진다. 이름을 붙일 때는 일관성이 있게 하자. (좋은 예시) includeSetupAndTeardownPages, includeSetupPages, includeSuiteSetupPage, includeSetupPage 2. 함수 인수의 개수는 중요하다 함수에서 이상적인 인수 개수는 0개이고, 그다음 1개, 2개,..

    스위치 문 리팩토링( Refactoring Switch statement )

    아래는 많은 함수들에 쉽게 사용되고 있는 Switch structure (스위치 문)이다. switch(typeCode) case type1: return data specific to type1 case type2: return data specific to type2 case type3: return data specific to type3 일상 코드에서 흔히 볼 수 있는데, 무작정 스위치문을 사용하는 것은 확장하기 어려워지고, Open-Closed Principle 규칙을 해한다. Open-Closed Principle? Code should be open to extension, but closed to modification . 코드는 확장에는 열려있어야 하지만, 수정에는 닫혀있어야 한다. 자!..