분류 전체보기305 네트워크란? 네트워크란?네트워크란 노드와 링크로 이루어진 연결 시스템리소스를 공유함노드 : 서버, 라우터, 스위치 등 네트워크 장치링크 : 무선 혹은 유선으로 연결된 통신 경로네트워크 성능 지표많은 처리량짧은 지연 시간적은 장애 빈도좋은 보안처리량(throughput)성공적으로 전송 및 처리된 데이터의 양단위 : bps (bits per second) ,초당 전송되는 비트 수트래픽, 대역폭, 에러 빈도, 하드웨어 스펙 → 처리량트래픽(Traffic)네트워크를 통해 전송되어야 하는 데이터의 양전송 중인 데이터의 볼륨을 나타낸다단위 : MB, GB, 초당 요청 수🔎헷갈리기 쉬운 개념 Traffic vs ThroughputTraffic is the amount of data that needs to be transmit.. 2024. 10. 28. 웹소켓이란? (feat.Spring,STOMP,SockJS) 웹소켓이란?웹소켓(WebSocket)은 클라이언트와 서버 간의 실시간 양방향 통신을 가능하게 하는 프로토콜기존의 HTTP 통신 방식은 클라이언트가 요청을 보내면 서버가 응답하는 요청-응답 모델을 따른다.반면, 웹소켓은 최초 연결 이후 클라이언트와 서버 간에 지속적인 연결을 유지하면서 상호 간에 데이터를 주고받을 수 있다.이는 실시간 기능이 필요한 애플리케이션(채팅, 실시간 알림, 게임) 등에 유용하게 사용된다.웹소켓의 특징양방향 통신클라이언트와 서버 모두 메시지를 보낼 수 있다.지속적인 연결HTTP와 달리 웹소켓은 연결이 한번 성립되면 끊기지 않고 계속 유지된다낮은 오버헤드HTTP처럼 매번 요청 헤더를 보내지 않고, 한 번 연결되면 지속적으로 데이터를 주고받을 수 있어 오버헤드가 적다.지연 감소(실시간 .. 2024. 10. 26. [React] 페이지 로딩시에 단 한 번만 실행하기 (document.ready()같은 메서드) 원래는 습관적으로 이렇게 하고 있었는데 불필요하게 데이터를 매번 읽어와서 너무 비효율적이고 트래픽이 많아진 기분이 들어 더 찾아보았다useEffect(() => { handleGetConnection(useAuthStore.getState().currentCode); }, [rowData]); 빈 배열을 넣어주면 컴포넌트가 처음 마운트될 때 (페이지가 로드될때) 단 한 번만 실행되게 된다useEffect(() => { handleGetArsConnection(useAuthStore.getState().currentBotCode); }, []); 2024. 9. 27. [React] Destructuring assignment 어느날 갑자기 리액트를 하게 된 백엔드 개발자의 고군분투기...회사 : 풀스택 해 Java Kotlin 이제 다 필요없어... Destructuring assignment 정말 충격적으로 편리하다ES6 만세 감사합니다 그날도 힘겹게 리액트를 해내고 있던 백엔드 개발자 1은 신기한 코드를 마주하게 된다const Developer = ({ coffee, sweat, blood }: { coffee: string, sweat: number, blood: string }) => { console.log(coffee, sweat, blood);};interface Ingredient { coffee: string; sweat: string; blood: string;}const Developer = (in.. 2024. 9. 27. [React] React Hook 리액트 훅 어느날 갑자기 리액트를 하게 된 백엔드 개발자의 고군분투기...회사 : 풀스택 해 React Hook이란?리액트 훅(React Hooks)은 함수형 컴포넌트에서 상태(state)와 생명주기(lifecycle) 관련 기능을 사용할 수 있게 해주는 React의 기능이다.리액트 훅이 등장하기 전에는 클래스형 컴포넌트만 상태 관리와 생명주기 기능을 사용할 수 있었으나, 훅 덕분에 함수형 컴포넌트에서도 이러한 기능을 쉽게 사용할 수 있게 되었다**useState**상태를 함수형 컴포넌트에서 관리하기 위한 훅입니다.초기 상태를 인자로 받고, 배열을 반환하며, 배열의 첫 번째 요소는 현재 상태 값, 두 번째 요소는 그 상태 값을 업데이트하는 함수const [count, setCount] = useState(0);fu.. 2024. 9. 26. Spring과 STOMP를 이용해서 웹소켓 연결하기 Gradle에 필요한 설정 import // WebSocket implementation("org.springframework.boot:spring-boot-starter-websocket") implementation("com.fasterxml.jackson.core:jackson-databind") implementation("com.fasterxml.jackson.module:jackson-module-kotlin") implementation("org.jetbrains.kotlin:kotlin-reflect") implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") // Web Security implementation("org.spr.. 2024. 9. 26. Spring에서 MongoDB 이용할때의 Pagination : MongoTemplate 으로 List<Model> , Page<Model> 리턴 Pageable pageable = new PageRequests(page, size);Query query = new Query().with(pageable);List list = mongoTemplate.find(query, XXX.class);return PageableExecutionUtils.getPage( list, pageable, () -> mongoTemplate.count(Query.of(query).limit(-1).skip(-1), XXX.class));이렇게 하면 mongoTemplate이 Page를 지원하지 않는다고 해도 PageableExecutionUtils을.. 2024. 9. 22. QueryDSL로 검색 기능 구현 + 쿼리 빌드 단계적으로 하기 + LocalDateTime을 Controller의 Parameter로 받을 때 주의할 점 QueryDSL 설정법은 여기로 QueryDSL 설정일단 gradle에 관련 설정들을 추가해준다plugins { id 'com.ewerk.gradle.plugins.querydsl' version '1.0.10'}configurations { compileOnly { extendsFrom annotationProcessor }}repositories { mavenCentral()}dependencies { implementation 'org.springfrgreedydeveloper.tistory.com 오늘 여러 조건에 따라서 검색을 해야하는 쿼리를 작성해야 했는데검색할때 쿼리가 null인 경우를 모두 메서드로 분리해서 하지 않고 null이거나 비어있으면 제외하고 쿼리를 빌드하는 코드를 작성해 보았다 .. 2024. 9. 5. @EnableJpaAuditing 이 한 곳에서만 정의되어야 하는 이유 습관처럼 QueryDsl을 사용하기 위해 JPAConfig를 만들려고 했다@Configuration@EnableJpaAuditingpublic class JPAConfig { @PersistenceContext private EntityManager entityManager; @Bean public JPAQueryFactory queryFactory() { return new JPAQueryFactory(entityManager); }} 그랬더니 다른 곳에서 이미 JPAAuditoing이 되고 있어서 안 된다는 에러가 떴다 overriding = true로 바꾸라는 제안도 있었지만 위험할 것 같아서 하지 않았다 찾아보니 동일한 모듈에 이게 있었다@Configura.. 2024. 9. 5. 이전 1 2 3 4 5 ··· 34 다음