React 입문: 컴포넌트, Props, CSS 스타일링 완전 정복
·
Stack/JavaScript
React를 처음 시작할 때 가장 헷갈리는 것들 — 프로젝트 세팅부터 컴포넌트 생성, Props 전달, 스타일 적용까지 핵심만 뽑아 정리했습니다. Vite 기반 React 프로젝트를 기준으로 설명합니다.🛠 개발 환경 준비React 개발을 시작하기 전에 아래 도구들이 설치되어 있어야 합니다.STEP 01VS Code코드 에디터. ES7+ React 스니펫 확장도 함께 설치합니다.STEP 02Node.js & npmJS를 서버에서 실행할 수 있게 해주는 런타임. npm으로 패키지를 관리합니다.STEP 03VS Code 확장ES7+ React/Redux/React-Native snippets — 단축키로 컴포넌트 틀을 자동 생성합니다.⌨ 유용한 스니펫 단축키rfc → React Function Compone..
Spring AOP로 API 성능 측정하기 - 프로젝트 예제와 함께
·
Stack/Spring
들어가며프로젝트를 운영하다 보면 "이 API는 왜 이렇게 느릴까?"라는 의문이 들 때가 있다. 하나하나 메서드마다 시간 측정 코드를 넣자니 번거롭고, 그렇다고 방치하자니 불안하다. 이럴 때 Spring AOP를 사용하면 코드 수정 없이 모든 API의 성능을 측정할 수 있다.이번 글에서는 Spring AOP가 무엇인지, 그리고 실제 프로젝트에 어떻게 적용하는지 정리해보았다.AOP란?**AOP(Aspect-Oriented Programming, 관점 지향 프로그래밍)**은 여러 곳에서 반복되는 공통 기능을 분리해서 관리하는 프로그래밍 기법이다.예를 들어 로깅, 성능 측정, 트랜잭션 관리 같은 기능은 비즈니스 로직과는 별개지만 여러 곳에서 필요하다. 이런 걸 **횡단 관심사(Cross-Cutting Conce..
스프링부트 DB 작동 방식과 원리
·
Stack/Spring
들어가며스프링부트 애플리케이션이 데이터베이스와 어떻게 통신하는지 궁금했던 적이 있다. 단순히 JPA의 save() 메서드를 호출하면 데이터가 저장되는데, 그 내부에서는 어떤 일이 벌어지는 걸까? 이번 글에서는 스프링부트가 DB와 통신하는 전체 과정을 정리해보았다.스프링부트에서 DB에 쿼리를 보내는 원리전체 흐름도스프링부트 애플리케이션에서 데이터베이스까지 데이터가 전달되는 과정은 다음과 같다. Controller → Service → Repository → JDBC/JPA → JDBC Driver → Database각 계층의 역할을 살펴보자.1. Controller 계층컨트롤러는 HTTP 요청을 받아 Service로 전달한다. java@RestController@RequiredArgsConstructo..
자바 스크립트 기초문법 (변수, 자료구조)
·
Stack/JavaScript
변수 (variable) const (상수타입):바뀌지않는 변수, 초기 선언에 초기화로 값을 지정해두어야함const name = "kim";let :변경 가능 한변수 한번 선언후 같은 변수내에 값을 변경할수있다, 초기 선언 할필요가 없다let age = 20;age = 21;var:자바 스크립트의 오래된 변수 타입, 어디서든 변경 가능하며 변수값을 보호 받지 못해 위의 두 변수가 생겼음, 가급적 최신 코드에선 위의 두변수 사용을 권장var money = 30money = 21 Java 와의 차이점:변수에서 숫자(Interger,flot,long) 타입 / 문자열 등의 타입 구분을 정확히 명시하지않아도됨const a =5;const b =2 ;console.log(5/2)일때 넘버 타입으로 변수 cons..
연산자 오버로딩, 프렌드
·
Stack/C++
오버로딩이란? 이름이 함수 함수 여러개가 있을때, 각각의 함수가 받는 매개 변수에 따라 다른 방식으로 처리하게 도와준다. 쉽게 말해 다른기능을 함수를 같은이름, 다른 매게 변수로 지정하는 것을 의미합니다. 연산자 오버로딩 위에서 설명한 오버로딩기능을 연산자에도 적용시킨것 객체에 직접 *,+ 연산자를 사용하게 하는용도로 쓰입니다. 예를들어 +,* 는 int 형이나 실수형을 매개 변수로 받은후, int 와 실수형을 리턴시킨다 이 +,* 를 오버로딩하여 직접만든 Time 이라는 객체에 적용시키는 오버로딩 함수를 만들어보겠습니다. 이러한 Time 이라는 클래스가 존재할때 이렇게 매서드를 정의하면 이렇게 각각 정의된 함수를 더하는 매서드를 사용하게됩니다. (위의출력값) 이 매서드를 + 연산자 오버로딩을 통해서 T..
C++ 포인터란?
·
Stack/C++
포인터란? 포인터는 메모리의 값을저장하는 변수이다. 하지만 이런 정의보다 자세한 설명을 하게되면 포인터는 이렇게 선언하게된다. &는 변수의 메모리 값을 표현해준다. value 5의 값과 주소값을 확인해보자 value 의 변수값을 포인터 a에 대입하게되면 다음과 같이 나온다 포인터에는 몇가지 규칙이있다 포인터변수의 자료형은 가르키는 변수의 자료형과 같아야한다 포인터주소값에는 정수 값이 들어갈수없다 C++ 에서는 포인터에 메모리 주소를 직접 할당할수없다. 기본적인 개념은 여기까지이고 C++ 의 포인터는 잘못사용하면 프로그램의 안정성을 떨어뜨리기 때문에 개념을 확실히 잡고 사용해야한다
C++ continue 구문
·
Stack/C++
기존 자바의 continue 구문과 같이 함수를 처음으로 다시 보내는 기능을 한다. 위의 코드는 짝수의 경우 처음으로 다시 보내서 i 값을 출력하지 않는 함수이다 출력결과는 다음과 같다
C++ Switch 구문
·
Stack/C++
조건문 프로그래밍에서 if-else 구문을 사용할때 중복되는 구문이 생기게된다 switch 문을 사용하게 되면서 이것을 더 이해하기 쉬운 모양으로 바꿔준다 switch 문은 int 형 값으로 입력값에 해당하는 case로 이동을 시켜준다 하지만 위예시에서 2를 대입하면 case 가 이동하게 되므로 꼭 break; 를 넣어주어 switch 문을 나가게 해주어야한다
C++ 구조체(struct),공용체(union),열거체(enum)
·
Stack/C++
보호되어 있는 글입니다.