본문 바로가기

전체 글47

포인터 & 배열 + 포인터 연산 크래프톤 정글에서 포인터 공부했던 내용을 정리하는 글입니다. 배열배열(영어: array, 配列·排列, 문화어: 배렬)은 번호(인덱스)와 번호에 대응하는 데이터들로 이루어진 자료 구조를 나타낸다. 포인터포인터(pointer)는 다른 변수, 혹은 그 변수의 메모리 공간주소를 가리키는 변수를 말한다. 포인터가 가리키는 값을 가져오는 것을 역참조라고 한다. 그 포인터가 가르키는 공간의 값을 가져오는 것을 역참조라고한다. 32 바이트 환경에서 C언어의 포인터는 4 바이트이며, 64 바이트 환경에서는 8 바이트이다.포인터 표기포인터의 선언int* p; // int형 데이터를 가르키는 포인터 선언: 초기화하지 않음 포인터의 역참조int a = *p; // p의 위치에 있는 값을 a로 복사 주소 연산: &int s =.. 2023. 10. 19.
Static 코드를 작성하다 (바보같이) 간과하고 넘어갔던 부분에 대해 궁금증이 생겨서 조금씩 공부해보기로 했다. of 메서드를 static으로 사용하는 이유는? 둘 다 비슷한 용도로 사용하는데, toEntity 메서드와 달리 of 메서드는 static으로 되어 있다. @Getter @Builder @ToString @NoArgsConstructor(access = AccessLevel.PRIVATE) @AllArgsConstructor public class RoadmapViewportDto { private BigDecimal x; private BigDecimal y; private BigDecimal zoom; public RoadmapViewport toEntity() { return RoadmapViewp.. 2023. 10. 17.
컴퓨터는 데이터를 어떻게 사용할까 1: 메모리, OS C 언어를 기준으로 설명. 가상메모리, 자료구조와 포인터, 캐시와 가상메모리에 대한 문제는 다른 페이지에서 상세하게 다루고, 여기에서는 전체적인 흐름을 위한 간단하고 단순화한 설명만 있음. 하드웨어: 메모리 RAM 컴퓨터의 기억장치는 휘발성 메모리와 비휘발성 메모리가 있다. 휘발성 메모리로 대표적인 것은 RAM(Random Access Memory) 비휘발성 메모리로 대표되는 것은 ROM(Read Only Memory)등이 있다. 보통 메모리라 함은 우리가 컴퓨터에서 주로 작업대로 사용하는 RAM을 지칭하는 것으로 사용한다. RAM은 데이터를 순차적으로 접근해야 하는 ROM과는 달리 랜덤으로 접근할 수 있기 때문에 속도가 매우 빠르다. 이런 매우 빠른 특성 때문에 느린 ROM과 빠른 CPU를 중개(👉 캐.. 2023. 10. 13.
JPA | BaseTimeEntity: 생성/수정 시간 자동 설정 BaseTimeEntity 모든 Entity의 상위 클래스에서 createdDate, updateDate를 자동으로 관리해 줌. Date자료형보다 LocalDate, LocalDateTime을 사용할 것을 추천. BaseTimeEntity 추상클래스를 구현하고 Entity 클래스들에게 상속시켜 사용한다. BaseTimeEntity 추상클래스 @Getter @MappedSuperclass @EntityListeners(AuditingEntityListener.class) // Auditing 기능 포함 public abstract class BaseTimeEntity { @CreatedDate @Column(updatable = false) private LocalDateTime createdDate; @.. 2023. 10. 9.
Spring Spring Framework Java 플랫폼을 위한 오픈소스 프레임워크 경량 컨테이너: 자바 객체를 직접 관리하며, 객체 생성/소멸과 같은 라이프사이클을 관리한다. POJO(Plain Old Java Object)방식의 프레임워크: 일반적인 J2EE 프레임워크에 비해 구현을 위한 특정 인터페이스를 구현하거나 상속 받을 필요가 없어 기존 라이브러리를 지원하기에 용이하고 객체가 가볍다. 제어 반전(IoC: Inversion of Control): 컨트롤의 제어권이 사용자가 아니라 프레임워크에 있어, 필요에 따라 스프링에서 사용자의 코드를 호출한다(라이브러리와는 반대: 라이브러리의 경우 사용자의 코드가 필요에 따라 라이브러리의 코드를 호출한다). 의존성 주입(DI: Dependency Injection): .. 2023. 10. 9.
01 | 무중단 배포환경 구축(Blue/Green) - 2 구축 Code Deploy의 배포 과정은 다음과 같다. 애플리케이션 최상단 경로에 AppSpec.yml 파일(배포에 필요한 절차 명세)을 추가한다. 특정 버전에 대한배포 요청이 들어오면, Code Deploy는 배포할 EC2 인스턴스에 설치된 Code Deploy Agent들과 통신하여 Agent들에게 요청 버전을 배포해달라고 요청한다. Agent들은 코드 저장소(여기에서는 jar파일이 저장된 S3)에서 프로젝트 전체를 서버에 내려받고, AppSpec.yml 파일의 절차대로 배포를 진행한다. Agent는 배포 후 성공/실패 여부를 알려준다. 3. Code Deploy를 활용한 자동 배포 루틴 만들기 (1) EC2 세팅 인바운드 규칙: ssh 접속은 현재 내 IP, HTTP, HTTPS 포트인 80, 44.. 2023. 10. 6.