Dev 92

C

직렬화 (Serialization)

직렬화직렬화는 데이터를 저장하거나 전송할 수 있는 형식으로 변환하는 것. (주로 텍스트 또는 바이너리)장점데이터 전송 및 저장 용이: 직렬화된 데이터는 네트워크를 통해 쉽게 전송하거나 파일에 저장할 수 있다. 예를 들어, 서버와 클라이언트 간에 객체를 전송하거나 디스크에 데이터를 저장할 때 유용하다.플랫폼 독립성: 직렬화된 데이터는 다양한 운영체제나 시스템에서 동일한 형식으로 읽고 쓸 수 있다. 예를 들어, JSON 형식은 다양한 언어에서 처리할 수 있어, 서로 다른 시스템 간 데이터 교환이 가능하다.성능 최적화 (바이너리 형식): 바이너리 형식으로 직렬화하면 데이터 크기가 작아지고, 전송 속도가 빨라질 수 있다. 특히 대용량 데이터를 다룰 때 유리하다.직렬화 단점성능 저하 가능성: 객체의 복잡도가 높거..

Dev 2024.12.24

C

React Component가 리렌더링 되는 이유

웹 플젝 하던 중 Context, 모달, 소켓 등이 짬뽕되자 원하지 않는 부분에서 자꾸 렌더링이 되는 문제가 있어서 알아본 내용.Component가 리렌더링 되는 경우들State가 변경될 때: 컴포넌트의 state가 변경되면 해당 컴포넌트와 그 하위 컴포넌트들이 리렌더링됩니다. this.setState({ value: newValue });Props가 변경될 때: 부모 컴포넌트에서 전달되는 props가 변경되면 자식 컴포넌트가 리렌더링됩니다. 부모 컴포넌트가 리렌더링될 때: 부모 컴포넌트가 리렌더링되면 자식 컴포넌트들도 리렌더링됩니다.forceUpdate가 호출될 때: forceUpdate 메서드를 호출하면 강제로 컴포넌트가 리렌더링됩니다. this.forceUpdate();Context가 변경될 때: ..

Dev/React 2024.12.18

C

Bing AI Copilot 사용 중 스크롤시 Search 검색창으로 넘어지지 않게 하는 방법

https://chromewebstore.google.com/detail/copilot-prevent-scroll-do/cmdkmldlcddajdgcdbecjjkadmhgakhl Copilot - Prevent scroll down to search page This extension prevents users from accidentally scrolling down to the search page while using Bing AI Copilot. chrome.google.com 이 크롬 확장 프로그램을 설치한뒤 새로고침하면 스크롤을 내려도 다른 화면으로 넘어가지지 않는다. 아이콘 클릭시 Copilot이 새 탭으로 켜진다.

Dev 2024.02.01

C

[Goorm IDE] ssh RSA_key 접속을 못하는 상황에서

항상 켜놓기 기능을 쓸수 있게 되면서 맥 터미널에서 자주 들어가게 되는데 매번 명령어 치고 비밀번호 치고 들어가려면 너무 귀찮아서 편한 방법을 찾아보았다. ssh RSA_key 접속은 내가 못하는건지 root 계정이라 구름에서 막아놨는지 authorized_keys 파일이 수정이 안되고 sshpass 나 ssh-copy-id 명령어를 사용하면 된다는데 ssh-copy-id는 똑같이 authorized_keys 수정 권한이 없고 sshpass는 명령어가 없다는거 보니 설치해야 하는데 그렇게 까지 하고 싶지 않았다. 그러다 생각난 나름 편한 방법은 ssh 접속하는 alias 명령어에 비번을 클립보드에 복사해주는 명령어를 추가해주면 보안성은 말아먹었지만 매번 비번 찾을 필요 없이 붙여넣기 한방에 접속이 가능하..

Dev/Linux 2022.10.27

C

[ Spring Boot ] 첫 실행시 로그인 화면이 뜰 때

# 아이디 : user # 비밀번호 : [콘솔창에 출력되는 보안 비밀번호] 📌로그인 화면이 뜨지 않게 하는 방법 스프링 실행 자바 파일에서 @SpringBootApplication어노테이션에 다음과 같이 달아주면 된다 @SpringBootApplication(exclude = {SecurityAutoConfiguration.class}) package com.test; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.security.servlet.Securit..

Dev/Spring 2022.03.27

C

[ C ] 포인터 변수가 가리키는 문자열 또는 배열의 길이 구하기

일반적인 배열이나 문자열의 길이를 구하는 방법은 다음과 같다. int main(int ac, char const *av[]) { char arr[] = "12345"; printf("arr size : %d\n", sizeof(arr) / sizeof(char)); // 출력결과 // arr size : 6 } 하지만 포인터 변수로 생성한 배열이나 문자열의 크기는 sizeof() 로는 구할 수 없는데, int main(int ac, char const *av[]) { char *a = "123456789"; printf("a : %s\n", a); printf("a size : %d\n", sizeof(a) / sizeof(char)); // 출력 결과 // a : 123456789 // a size :..

Dev/C, C++ 2021.12.26

C

[ Linux / bash / zsh ] 텍스트의 앞 뒤 줄을 생략하고 중간만 출력하기

head & tail 명령어 # head 1 ~ 10줄만 출력 # tail 맨 마지막 줄에서 거꾸로 10줄만 출력 abc.txt 파일에 줄마다 각각 1 ~ 20이 입력되어 있을 때, cat abc.txt 위 명령어의 출력 결과는 다음과 같다. 1 2 3 4 5 . . . 16 17 18 19 20 head와 tail은 "-n" 플래그로 출력할 줄 수를 지정해줄 수 있다. 음수, 양수를 입력 해 생략할 줄을 반전시킬 수 있다. cat abc.txt | head -n 5 # 1 ~ 5 cat abc.txt | head -n -5 # 1 ~ 15 cat abc.txt | tail -n 5 # 5 ~ 20 cat abc.txt | tail -n -5 # 5 ~ 20 cat abc.txt | tail -n +5 ..

Dev/Linux 2021.12.19

C

[VSCode / C / C++] VSCode에서 Makefile 사용하기

# 실행환경 : vscode, mingw32 1. 실행할 프로젝트 생성 // hello.h #include void print_hello(); // hello.c #include "hello.h" void print_hello() { printf("Hello!!!\n"); } // main.c #include #include "hello.h" int main() { print_hello(); return 0; } # Makefile CC = gcc CFLAGS = -c -g LDFLAGS = OBJECTS = main.o hello.o run: all program all: program program : $(OBJECTS) $(CC) $(LDFLAGS) -o program $(OBJECTS) main...

Dev/C, C++ 2021.12.17

C

[Java] socket서버 실시간 채팅 구현 ( jdk-11.0.12.7-hotspot )

1. 서버 ( ChatServer.java ) 더보기 import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList; import java.util.List; public class ChatServer { private ServerSocket svSocket; private List clist; public ChatServer() { try { svSocket = new ServerSocket(9500); // 포트 System.out.println("# 서버 준비 완료"); clist = new ArrayList(); while (true) { System.out.prin..

Dev/Java 2021.12.13

C

[ Python ] 입출력(I/O) 속도 빠르게 하기

백준 파이썬 문제를 풀다보면 시간초과가 뜨는 경우 입출력 방법을 바꿔줌으로써 해결하는 방법이 있다. import sys input = sys.stdin.readline print = sys.stdout.write 위 처럼 input()과 print()를 덮어씌워버린다. # 주의할 점 바꾸고 나면, input()은 개행문자 "\n"까지 읽어들이기 때문에 .rstrip()등으로 지워주어야 하고 import sys input = sys.stdin.readline n = input() # "1"을 입력 할 때, print(list(n)) # ['1', '\n'] print([int(n)]) # [1] print(list(n.rstrip())) # ['1'] print()는 출력 방식이 다음과 같이 바뀌어 버린다..

Dev/Python 2021.12.06