분류 전체보기
1차 코딩 테스트는 무난했습니다. 프로그래머스에서 진행했으며, 프로그래머스 문제은행에서 뽑은 문제인 것 같습니다. 언어를 각 포지션마다 지정해둔게 새로웠습니다. 2차 과제테스트는 많이 진행해본적이 없어서 많이 생소했습니다. vscode환경에서 spring-boot 코딩을 했습니다. 스켈레톤 코드가 주어져서 참고할 수 있어서 좋았습니다. Spring-boot에서 api 파라미터 매핑을 HandleMethodParameterResolver를 추가 해주면 된다는 것을 처음 알았네요. 한번 정리해두어야 겠습니다. 어떻게 사용하는지 몰라서 제 나름대로 사용했네요. 스켈레톤 코드를 ide로 옮기는 것이 귀찮아서 vscode환경에서 코딩했더니 자동 import가 없어서 not found symbol 에러가 너무 많이..
* 코딩 테스트 문제 내용과 면접 질문에 대한 내용은 비밀 유지 서약 때문에 작성할 수 없음을 미리 밝힙니다. 코딩 테스트 전과 다르게 IDE, 인터넷 검색을 할 수 없는 코딩테스트였습니다. 전에는 복사, 붙여넣기 정도만 할 수 없었습니다. 총 4 문제를 두 시간 동안 진행했습니다. 전보다 한문제 늘어났고 30분이 늘었습니다. IDE를 사용을 못하니까 문제를 푸는데 시간이 오래걸리더군요. 제가 문제를 머릿속에서 정확하게 풀지않고 디버깅을 통해서 문제를 풀었거든요.. IDE에 너무 의존하고 있었던 것 같습니다. 저는 총 4문제중에 3문제를 풀었습니다. 3문제까지 푸니까 4번째 문제를 풀기에는 시간이 부족하더라구요. 10분정도? 남았던 것 같아요. 4번째 문제도 하필 DFS문제인데 코드량이 좀 많은 문제여서..
SQL 명령어 종류 DDL CREATE, DTOP, ALTER, TRUNCATE DML SELECT, INSERT, UPDATE, DELETE, CALL, ... DCL COMMIT, ROLLBACK, GRANT, REVOKE 키 키는 데이터베이스에 서 조건에 만족하는 튜플을 찾고나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 유일한 기준이 되는 속성이다. 키의 종류 후보키 튜플을 유일하게 식별할 수 있는 속성들의 부분 집합 기본키 후보키 중에서 선택한 키 대체키 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키 슈퍼키 유일하게 구분이 가능한 부분 집합이지만 최소성을 만족하지 않은 키 외래키 관계를 맺고 있는 키 데이터 무결성 무결성이란 결함이 없다는 특징으로, 데이터 무결성은 데이터베이스가 데..
가용성과 데이터 복제 데이터베이스가 크래쉬되었을 때 어떻게 하면 서비스를 다운시키지 않고 계속해서 운용할 수 있을까? 주제를 다룬다. 현재의 정석은 복제이지만, 장애 시의 데이터 로스를 어느 정도 허용할 수 있는지에 따라 방침은 변한다. 현재의 트랜드를 살펴보도록 하자. # 데이터베이스는 어떤 때에 크래쉬되는가? 세상에서 인기를 얻고 있는 서비스는 24시간 365일 끊임없이 방대한 액세스가 발생하고 있다. 동시에 데이터베이스에도 많은 트래픽이 발생하고 있다. 이러한 `언제든지 필요할 때 동작해야 하는` 서비스에서는 생각하지 않으면 안 되는 것이 바로 장애에 대한 대책이다. 장애는 어느 날 갑자기 발생한다. 평상시 사용하고 있는 PC가 Windows의 트러블로 블루 스크린을 표시하거나 디스크 고장으로 사용..
SQL 문의 특징과 이를 잘 다루는 법 데이터베이스를 다루는 애플리케이션이라면 예외 없이 사용하는 것이지만, 그 사용법이 틀리면 고생하는 것은 사실이다. SQL 문의 사용법에 대한 요점과 장점 및 단점을 알자보자. # 테이블 조작하기 SQL은 실로 심오한 언어이다. "SELECT 문이란 무엇인가?"와 같은 초보적인 이야기는 많은 독자들에게 있어 그다지 필요가 없으리라 생각한다. 그래서 이 장에서는 어느 정도 현장에서 사용할 수 있는 실용적인 이야기를 중점으로 설명하고자 한다. RDBMS로는 무엇을 사용해도 좋지만, 여기에서는 무료 데이터베이스 중 가장 널리 사용되고 있는 MySQL로 동작 시켜 보겠다. 테이블 작성하기 데이터베이즈 제품 간의 호환성 확보가 힘들다. 특정 RDBMS에서는 동작하는 것이 다른..
테이블 설계와 릴레이션 테이블 설계의 핵심에 대해 알아보자. 데이터 모델링이라고도 불리는 영역이다. -> 재대로 되어 있지 않으면 애플리케이션 수정 및 보수시에 매우 고생한다. 이것의 중요성은 향후에도 변하지 않을 것이다. 기초를 제대로 파악해 두어야 하는 부분이기도 하다. # 데이터 모델링 기술의 중요성 애플리케이션을 만들때 중요한 것은 바로 어떤 데이터 항목이 필요한가를 재대로 파악하는 것이다. 항목이 부족하면 나중에 추가할 필요도 있겠지만, 이는 대부분의 경우에 애플리케이션의 개선이 필요하고 가독 후에 실시하는 것이 쉽지 않기 때문이다. 어떤 항목이 필요한지를 적절히 결정하는 데에는 "데이터를 어떻게 사용하느냐"라는 "업무 요구사항"이 명확하게 되어 있어야 한다. 기능 추가가 자주 발생하는 애플리케..
메인 화면 - 기능 1 - 매인 채팅 - 기능 2 - 쓰레드 채팅 구현 스택 Backend - spring web + websocket + stomp Frontend - sockjs + stompclient 기능 설명 메인 채팅 - 룸을 사용하는 사람들끼리 소통을 위한 채팅 쓰레드 채팅 - 한 채팅에 대해서 토론이 필요할때 사용하는 작은 채팅 구현방법 룸의 Chat 탭에 들어오면 '/websocket' api로 서버와 ws연결과 디비에서 최신 메시지를 조회한다. 이후 ws객체를 통해 들어오는 메세지는 하나씩 채팅 배열에 추가해주는 방식으로 개발했다. Chat 탭에서 다른 탭으로 이동시 ws연결 끊는다. 쓰레드 채팅창을 열면 마찬가지로 또 다른 하나의 ws연결및 최신 메시지를 조회한다. 세부 기능 1. 페..
https://www.callicoder.com/spring-boot-security-oauth2-social-login-part-1/ Spring Boot OAuth2 Social Login with Google, Facebook, and Github - Part 1 In this article, You'll learn how to add social as well as email and password based login to your spring boot application using Spring Security and Spring Security's OAuth2 client. You'll build a full stack application with Spring Boot and React c..
실시간 통신을 위한 Socket Server 프로젝트 생성 룸의 실시간 통신을 위한 서버 프로젝트 생성했다. Webflux와 Websocket을 이용해서 실시간 통신을 해볼 생각이다. Spring Webflux를 처음 사용해보았다. Reactive Stream을 제공한다고 한다. 아직 정확히 어떤건지 모르겠다. 이벤트가 발생했을 때 퍼블리셔가 생성 컨슈머가 소비 하는 느낌인가보다. 기존의 mvc방식도 제공하지만 reactive방식을 사용해보았다. 대충 controller -> router, service -> handler 느낌인 것 같다. 그리고 또 생소했던 것이 Mono와 Flux이다. Mono는 단일, Flux는 여러개의 데이터를 전달한다는 데 아직 잘 모르겠다. 간단한 example을 통해서 w..