개발지식공간 8

CS | 메모리(Memory) 관리의 중요성

메모리 관리의 중요성 메모리 관리는 소프트웨어 개발과 시스템 운영에서 매우 중요한 역할을 합니다.  1. 프로그램의 안정성과 성능 향상안정성올바른 메모리 관리 없이는 프로그램이 불안정해지기 쉽습니다.메모리 누수(memory leak)가 발생하면, 사용하지 않는 메모리가 해제되지 않아 프로그램이 점점 더 많은 메모리를 차지하게 됩니다. 이는 결국 시스템 리소스 부족으로 이어져 프로그램이 비정상적으로 종료되거나, 전체 시스템의 성능에 악영향을 미칠 수 있습니다. 성능효율적인 메모리 관리는 프로그램의 성능을 크게 향상시킵니다. 메모리를 불필요하게 많이 사용하면, 캐시 미스(cache miss)와 같은 현상이 증가하여 프로그램이 느려질 수 있습니다. 반대로, 메모리를 효율적으로 사용하면 데이터 접근 속도가 빨라..

개발지식공간 2024.08.16

Utility Class(유틸리티 클래스)란?

Utility Class? 주로 특정한 목적을 위해 여러 메서드를 제공하는 클래스입니다. 이러한 클래스는 주로 정적(static) 메서드로만 구성되어 있으며, 인스턴스를 생성하지 않고도 직접 메서드를 호출할 수 있습니다. 특징 정적 메서드로만 구성되어 클래스의 인스턴스를 생성하지 않고도 직접 메서드를 호출할 수 있도록 합니다. 상태를 가지지 않고, 입력 값을 받아 결과를 반환하는 메서드들로 이루어집니다. 즉, 상태를 갖는 인스턴스 변수를 가지지 않습니다. 재사용 가능한 메서드들을 제공합니다. 유틸리티 클래스의 메서드들은 어떤 특정한 작업을 수행하는데 필요한 로직들을 캡슐화하고, 다양한 곳에서 재사용이 가능하도록 설계됩니다. 객체 생성이 필요 없습니다. 주로 객체 생성에 관련이 없거나 객체의 생성이 필요하..

개발지식공간 2024.03.11

암호화된 값을 URL 인코딩 시 주의할점 + Tip!

1. Base64 Encoding 후 URL 인코딩 대부분의 암호화 알고리즘은 이진 데이터를 생성하므로, 보통 Base64 인코딩을 하여 텍스트로 변환합니다. 그 후에 URL Encoding을 적용합니다. Base64로 인코딩한 값은 URL 안전하지 않은 문자를 포함할 수 있기 때문에 URL 인코딩을 추가로 적용하여 안전한 URL 문자열로 만들어야 합니다. 2. 특수 문자 처리 URL에 사용되는 몇 가지 특수문자들은 문제를 일으킬 수 있습니다. 예를 들어 '+' 문자는 URL에서 공백을 나타내는 데 사용되어 주의가 필요합니다. Base64 인코딩 후에 나타날 수 있는 '+'문자를 '%2B'로 바꾸어야 합니다. 3. 길이와 URL 제한 URL에는 길이 제한이 있을 수 있어, 암호화된 값이 너무 크면 URL..

개발지식공간 2024.02.29

Base64와 UTF-8의 차이점

1. Base64(인코딩/디코딩) 주로 이진 데이터를 텍스트로 변환하는 데 사용합니다. 이진 데이터는 특수한 문자나 제어 문자를 포함할 수 있어서 일반적인 텍스트로 처리하기 어려울 때 Base64를 사용하여 안전하게 전송하거나 저장할 수 있습니다. 64개의 문자로 이루어진 알파벳(영문 대소문자, 숫자, '+' 및 '/')을 사용하여 이진 데이터를 표현합니다. 각 6비트의 이진 데이터 뭉치를 하나의 문자로 매핑하여 문자열을 생성합니다. 2. UTF-8(문자 인코딩) 텍스트 데이터를 컴퓨터에서 처리하고 저장하기 위한 문자 인코딩 방식 중 하나입니다. 주로 유니코드 문자를 나타냅니다. 가변 길이 인코딩 방식으로, 각 문자를 1byte에서 4byte까지 다양한 크기의 byte로 나타냅니다. Base64는 이진 ..

개발지식공간 2024.02.29

Algorithm 알고리즘이란?

velog에서 정리 한 것들을 블로그 이전하는 김에 다시 재정리를 하려고 한다. 2023년 2월 15일 - https://velog.io/@yujin-17/TIL-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98 알고리즘이란? 알고리즘은 어떠한 문제를 해결하려는 방법과 절차입니다. 우리가 하려는 프로그래밍에 꼭 필요한 요소로 볼 수 있습니다. 이러한 알고리즘에는 조건이 있습니다. 입력 : 외부에서 제공되는 자료 출력 : 적어도 2개 이상의 서로 다른 경로가 출력 명확성 : 수행과정은 무엇을 하기 위한 것인지 명확하게 정의 유한성 : 알고리즘의 명령어 대로 수행하였을 때 처리된 후 종료 효율성 : 시공간적 효율성을 가져야하며, 명백하게 실행 가능 좋은 알고리즘이란? 밑의 4가지를 충족하는 ..

개발지식공간 2024.01.31

삭제한 Git stash 복구하기 (SourceTree 및 기타 툴에서도 가능한 방법)

회사에서 있었던 Git stash 삭제 이슈를 도와주다가 발견한 숨은 꿀팁을 공유하려고 합니다! 지금까지 했던 모든 개발을 모두 날려버릴 뻔했던 상황에 그 스태시를 날린 컴퓨터만 있다면 가능한 방법입니다! 1. 내가 개발중인 프로젝트 파일 위치에 찾아 들어갑니다. 기초 명령어 ls 현재 있는 위치의 리스트를 전부 보여줍니다. cd 폴더명 지금 있는 곳에서 폴더명으로 Change Directory를 합니다. (현재 있는 곳과 연결된 곳만 가능합니다.) cd .. 바로 이전 폴더로 이동합니다. 저는 현재 MacOS를 사용하고 있는데요! 기본 명령어는 모든 운영체제에서 거의 동일하게 사용되고 있으니 처음 터미널을 사용해 보더라도 당황하지 말고 사용해 보세요! 2. 프로젝트 파일 위치에서 아래 명령어를 입력합니..

개발지식공간 2024.01.31

Flowchart(흐름도)

velog에서 정리 한 것들을 블로그 이전하는 김에 다시 재정리를 하려고 한다. 2023년 2월 14일 - https://velog.io/@yujin-17/TIL-9.-Java-%EC%A1%B0%EA%B1%B4%EB%AC%B8%EA%B3%BC-%EB%B0%98%EB%B3%B5%EB%AC%B8 Java | 조건문 글과 분리해 Flowchart 글을 작성하려고 한다. Flowchart(흐름도) 어떠한 일처리 과정을 순서대로 간단한 기호화 도형으로 도식화한 것이다. 알고리즘이나 프로그램의 논리 혹은 흐름을 그림으로 표현하는 방법이다. Flowchart를 쉽게 그릴 수 있는 사이트입니다. Flowchart Maker & Online Diagram Software Flowchart Maker and Online ..

개발지식공간 2024.01.12

Compile언어와 Interpreter언어

지난번 velog를 이전할 때, 기존 velog 글이 너무 길어 나눠서 쓰려고 한다. java 이전기록과 이어진다. 본 글 링크 - https://velog.io/@yujin-17/TIL-07.-Java 07. Java *객체지향 언어(객체지향 언어의 중심에는 Class가 존재) -> Java는 클래스 없이 개발 불가능. 개발의 시작과 끝 모두 클래스에서 시작하고 클래스에서 끝난다. velog.io Compile 언어 소스파일 전체를 컴파일 후, 기계어를 CPU와 Memory를 통해 읽어 바로 실행하는 방식으로 동작한다. 종류 : C, C++, Java, C# 특징 소스파일의 크기가 커질수록 컴파일 과정이 오래 걸린다. 컴파일이 된 후에 기계어로 바로 실행이 되어 실행속도가 빠르다. java는 javac..

개발지식공간 2024.01.12