전체 글

싸피 비전공9기 비전공자바 서식하는 초보개발자 백준 - https://www.acmicpc.net/user/esu08259 깃허브 - https://github.com/qkrrlgus114
위에 보이는 부분이 Navbar로 컴포넌트를 만들어두었다. 해당 Navbar는 로그인이 된 상태에서만 등장해야 하기 때문에 기존에는 App.vue에 설정을 두었다.   store에서 로그인 상태를 추출해서 로그인이 된 상태면 navbar를 보여주기 설정했었다. 문제점로그인만 성공하면 메인, 로그인페이지를 Navbar가 사라지지 않는다.    위 사진처럼 모든 화면에서 Navbar가 한번 생성되면 고정되어 따라다니는 점이 문제였다. 내가 하고 싶은 부분은 메인, 로그인, 에러 페이지에서는 Navbar 뜨지 않길 원한다.  변경 사항기존에는 App.vue에서 store의 로그인 상태를 보고 Navbar의 표시 유무를 결정했다. 그러나 store가 아닌, 해당 라우터에 showNavbar 라는 옵션을 추..
· 오류해결
데이터를 중앙 집중식으로 관리하기 위해 기존에는 Vuex를 사용했었는데 ?? 대체 언제 Pinia가 공식으로 바뀌었던가.. 그래서 Pinia로 전면 수정을 하는데 자꾸 persistedstate가 적용이 안 되는 문제가 발생했다.(이 글을 작성하는 시점은 이 에러를 만난 지 벌써 3시간째) gpt4, also gpt2, 스택오버플로우 전부 확인했지만 실패  main.jsimport { createApp } from "vue";import { createPinia } from "pinia";import piniaPluginPersistedstate from "pinia-plugin-persistedstate";import App from "./App.vue";import router from "./rout..
· 기타
https://chat.lmsys.org/ 1주일 전부터 위 사이트에서 성능이 무시무시하다는 also GPT2를 접하고 나는 간간히 사용하고 있었는데 방금 5/14 새벽 2시 open-ai 발표 보고 놀랐다.  새로 발표하는 GPT-4o가 also GPT2였던 것(?) 진짜 벤치마크가 이렇게 차이 날 줄은 몰랐는데   또한 실시간 화면 감지, 리얼타임 대화 등 보면서 속도가 말이 안 된다고 생각했다.그리고 방송이 끝나고 바로 API가 풀렸다고 해서 내 서비스인 RESTFUL API 서비스에 적용해 봤다. 기존에는 gpt-3-turbo와 gpt-4 모델만 사용했었고 테스트 결과 응답 시간이 거의 1/3으로 확 줄어버렸다.  영상 보니깐 통역사는 여기서 사라진다고 말하는 느낌이 들었다... 너무 빠른 응답속..
· CS지식
이번에 스터디 주제는 조금 생소하면서 익숙한 주제를 담당하게 되었다. 톰캣(Tomcat)은 WAS의 종류 중 하나인 것, 그리고 스프링 부트에 내장되어 있다는 것만 알고 있지 다른 얘기에 대해서는 전혀 공부하지 않았었다.  간단하게 웹 서버, 웹 어플리케이션 서버에 대해 정리해 보면 다음으로 정리할 수 있다.웹 서버유저의 HTTP 요청이 들어오면 정적인 콘텐츠를 제공해주는 역할을 수행한다.또는 동적인 요청이 들어왔을 때 WAS로 넘겨주는 역할을 담당한다.WAS(웹 어플리케이션 서버)유저의 HTTP 요청이 들어오면 동적인 콘텐츠를 제공해 주는 역할을 수행한다. 즉 WAS의 종류 중 하나가 톰캣이고, 이 톰캣은 동적인 콘텐츠 제공을 담당하는 녀석이다.(동적인 콘텐츠를 서블릿, JSP로 제공을 한다.) 위 이..
· CS지식
트랜잭션의 개념을 여러분들은 많이 들어보셨을 것이다. 트랜잭션작업을 처리하는 명령의 모임.이 작업은 모두 성공하거나, 중간에 하나라도 실패하면 이전 성공도 모두 실패로 돌아간다는 원자성을 가진다.즉 실패하면 롤백. 트랜잭션의 개념을 이해한 채로 스프링 프로젝트를 진행하면서 CUD가 있는 코드에는 @Transactional을 거의 로봇처럼 붙여주며 진행했다. 그런데 이 트랜잭셔널 어노테이션이 트랜잭션을 보장해준다고는 하지만 내부가 어떻게 동작하는지에 대해서는 모르는 사람이 되게 많다.나 또한 몰랐었고, 이번에 정리를 통해 천천히 개념을 집어보려고 한다.  간단한 테스트를 통해 트랜잭션이 어떻게 되는지 알아보자. @Getter ..
· CS지식
오늘 다룰 주제는 인터셉터와 필터의 차이. 둘 다 요청을 가로채서 처리할 수 있는 기능을 가졌다는 공통점이 있어서 혼동하하기 쉬운 개념이라고 생각한다. 필터 오라클 공식문서에서는 다음과 같이 설명이 되어있다. 즉 요청과 응답에 대해 필터링 작업을 수행하는 주체.  필터는 DispatcherServlet 전, 후로 요청을 가로채서 동작하기에 스프링 영역 밖에서 관리된다는 특징이 있다.  자바에서는 인터페이스 형태로 필터를 제공하며 아래 3개의 메서드를 오버라이드 하여 사용할 수 있다. 1. init : 초기화 작업을 진행. (서블릿 컨테이너에서 필터 인스턴스를 만든 뒤 단 한 번만 호출된다.) 2. doFilter : 실제 필터링 로직을 구현. 요청을 처리하기 전후로 request, response를 수정..
· CS지식
스프링을 배우면서 가장 처음 접하는 개념이 IOC와 DI를 접하게 된다. IOC : Inversion Of Control, 즉 제어의 역전이라고 직역을 한다.DI : Dependency Injection, 즉 의존성 주입이라고 직역을 한다. 그러면 이 말들이 대체 뭘까? 왜 제어의 역전이라고 하고 왜 의존성 주입이 스프링의 특징일까?  우선 스프링은 하나의 프레임워크이다.프레임워크 : 어떤 결과물을 구현하기 위해 클래스, 코드들이 합쳐진 형태. 즉 프레임워크가 뼈대라고 볼 수 있다.예를 들면 ppt에서 제공하는 기본 템플릿 느낌? 즉 스프링은 어떤 결과물을 제작하기 위한 하나의 뼈대를 제공하는 도구이며, 우리는 이러한 도구를 이용해서 무언가를 만들어낼 수 있는 것. 그렇기에 스프링은 다양한 편의 기능을 ..
이것이 백엔드 개발이다, 객체지향의 사실과 오해 등등 책을 읽어보면서 지금의 내 코드를 보면서 코드 리팩토링을 진행해보려고 한다. 변경 기록을 블로그에 작성. 1. DIP 원칙에 맞게 의존성 변경public class MemberController { private final MemberServiceImpl userService; ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡpublic class EmailController { private final EmailServiceImpl emailSe..
indeep
indeep한 개발자