본문 바로가기

분류 전체보기

(221)
Transaction에 대해서 아시나요? 모르겠습니다. 내 대답이었다. 내 첫 면접에서의 질문 중 하나였다. 쓰는 것도 많이 봤지만 정확히 어떤 기능인지 몰랐고 굳이 알려고 하지도 않았었다. 공부해야할 것들이 엄청나게 많다. 그리고 이제 결과만 쫓는 형태가 아니라 HOW를 알아야 한다고 생각이 든다. Transaction 데이터베이스의 상태를 변경하는 작업 또는 한번에 수행되어야 하는 연산들을 의미 즉, 병행 제어 시 처리되는 작업의 논리적 단위 모든 작업이 성공한다면 완료 작업 상태를 모두 반영하고, 이것을 Commit, 반면, 하나라도 실패하게 된다면 모든 사항을 폐기하고, 이것을 Rollback. Transaction의 4가지 성질 ACID ✔️ Atomicity 원자성 : 한 트랜잭션 내의 실행 작업은 하나의 단위로 처리 즉, 모두 성공..
SSR과 CSR 지금까지 사이트를 만들면서 api의 필요성을 크게 느끼지 못했다. 그 이유는 항상 SSR로 페이지를 만들어서 내가 html페이지도 만들고 백엔드도 만들었기 때문이다. 하지만 추후에 프론트와 협업을 하려면 api의 필요성을 느꼈고 이 과정에서 SSR이 뭔지 CSR이 뭔지에 대해서 공부했다. 먼저 SSR은 서버측에서 랜더링한 페이지를 보내주는 방식이다. 쉽게 말해서 서버에서 완성된 html 파일을 가지고 있는 방식이다. 그리고 나는 지금까지 SSR방식만 사용해왔다. 그리고 CSR방식은 서버에서 완성된 html파일이 아니라 클라이언트 측에서 js파일을 다운받아 랜더링하는 방식이다. SSR과 CSR의 차이 1. 첫 페이지 로딩시간의 차이 - SSR은 완성되어있는 페이지를 불러오기 때문에 빠르다. 하지만 CSR은..
JSON 응답에서 한글 깨질 때 해결 방법 @Controller @RequestMapping(value = "/api/events", produces= MediaTypes.HAL_JSON_VALUE) @RequiredArgsConstructor JSON 응답에서 한글응답이 깨지는 현상이 발생했다. 스프링부트 버전 2.2.5 이상은 MediaTypes.HAL_JSON_UTF8_VALUE -> MediaTypes.HAL_JSON_VALUE 로 변경 되었다. 그래서 응답을 보면 아래 그림과 같이 깨지는 형태를 볼 수 있다. @Controller @RequestMapping(value = "/api/events", produces = "application/hal+json; charset=UTF-8") @RequiredArgsConstructor 위에서..
Rest API가 뭘까요? Rest API라는 단어는 많이 들어봤지만 이게 뭔지는 몰랐다. 그래서 아주 가볍게 소개하는 영상을 보고 이 글을 쓴다. Rest API는 개발자들이 정보들을 주고받는 일종의 형식이라고 볼 수 있다. 먼저 API는 Application Programming Interface의 약자로 소프트웨어가 다른 소프트웨어로부터 지정된 형식으로 요청, 명령을 받을 수 있는 수단이다. 외부 API(알라딘, 카카오 등) 을 이용해봤으면 쉽게 알 수 있다. 정해진 형식을 요청하면 API에서 알아서 원하는 결과값을 반환해준다. 그렇다면 RestAPI는 뭘까? RestAPI는 각 요청이 어떤 동작이나 정보를 위한 것 인지를 요청의 모습 자체로 추론 가능한 형식이다. 예를 들자면 get은 정보를 읽기, post는 새로운 정보를..
MVC 패턴이 뭘까요? MVC 는 Model, View, Controller의 앞글자를 딴 패턴이다. 쉽게 말해서 유지보수가 편리하게 만든 코드 구성 방식이다. Model은 데이터와 관련된 일을 하는 곳 View는 사용자한테 보여지는 부분 Controller는 Model과 View를 이어주는 부분이다. MVC 패턴에 맞춰서 코드를 구성하게 되면 각각 맡은 일에만 집중할 수 있게 된다. 효율적인 분업이 가능하다. 서로가 분리되어서 각자의 역할에 집중할 수 있고 이로 인해서 유연성이 증가하고, 중복코딩을 지양할 수 있다. 아래 5가지 규칙을 지키면서 코드를 짜면 자연스레 MVC 패턴을 지키면서 코드를 짤 수 있다고 한다. 1. Model 내부에 Controlller와 View에 관련된 코드가 있으면 안된다. 2. View 내부에는..
구글 애널리틱스를 사용해서 내 사이트 분석하기 이번에는 구글 애널리틱스를 이용해서 내 사이트를 분석해보겠다. 시간별 사용자 수, 국가별 세션, 실시간 접속자 수 등 여러 기능을 가지고 있다. https://analytics.google.com/analytics/web 위 사이트에 접속해서 계정을 만든다. 어려울 건 없고, 속성 세부 정보에서 시간대와 통화를 대한민국으로 설정하면 된다. 그리고 고급옵션보기에 내 URL을 입력한 후 만들면 태그가 생성된다. 생성된 태그를 head에 넣어주면 설정 완료다. 이렇게 설정하고 잘 적용됐는지 실시간 접속자 수를 통해서 확인할 수 있다. 내 사이트에 접속한 후에 애널리틱스의 실시간 개요를 들어가 보면 1이 떠있으면 설정 완료다. 이제 내 사이트의 여러 분석을 쉽게 볼 수 있게됐다.
내가 만든 웹사이트에 OpenGraph 적용해보기 카카오톡이나 기타 사이트에서 URL을 공유할 때 사진이나 소개 문구가 나오는 걸 볼 수 있다. OpenGraph를 활용하면 아래 나오는 것 처럼 나만의 웹사이트에도 설정할 수 있다. https://metatags.io/ Meta Tags — Preview, Edit and Generate With Meta Tags you can edit and experiment with your content then preview how your webpage will look on Google, Facebook, Twitter and more! metatags.io Meta Tags를 이용하면 내 사이트가 공유될 때 어떻게 보이는 지 미리 볼 수 있다. 설정 후 오른 쪽 위에 있는 버튼을 통해서 태그를 만들어준다...
멋쟁이사자처럼 백엔드스쿨 1기 수료 회고 5개월 간의 백엔드스쿨이 끝났다. 올해 4월 개발자로 진로를 바꾸기로 결심하고 퇴사했다. 조금은 쉬다가, 부트캠프 2개에 지원을 했다. 1. SSAFY 2.멋쟁이사자처럼 백엔드 스쿨 SSAFY 8기에 지원을 했었다. 적성진단 문제는 굉장히 쉬워서 무조건 면접까지는 가겠다는 느낌이 있었다. 그리고 예상대로 서류통과를 했다. 동시에 멋쟁이사자처럼에도 최종합격을 했다. SSAFY는 1년이라는 짧지 않은 시간, 오프라인 수업 확률 多, 대전 지역 등 여러 조건들을 고려해봤을 때 나에게는 멋쟁이사자처럼이 적절한 교육이라고 생각했다. 그리고 1기라서 내가 길을 잘 뚫어놓고 싶다는 생각도 있었다. 그렇게 6월, 멋쟁이사자처럼 백엔드스쿨 1기 교육을 시작했다. 아침 09:00 부터 저녁 18:00 까지 거의 매일을 빼..