본문 바로가기
반응형

개발/기타13

[기타 자료] 스크립트(텍스트) 파일 UTF-8 인코딩 하는 방법 스크립트(텍스트) 파일 UTF-8 인코딩하는 방법이 필요한 경우 개발환경이 윈도우에서 맥으로 이동하면서 기존 스크립트 파일 속 한글이 모두 깨져서 나왔다. 그래서 해결 방안을 모색해봤다. 1. 메모장에서 파일을 다시 저장 파일 → 다른 이름으로 저장 인코딩 → UTF-8 선택 → 저장 2. visual studio code 설정 오른쪽 하단 인코딩 클릭 Reopen with Encoding을 선택하면 해당 파일을 vs 코드에서 다시 불러와 보여준다. Save with Encoding을 선택하면 해당 파일을 선택한 인코딩으로 저장한다. 원하는 인코딩 방식을 선택 3. 누군가가 만든 프로그램으로 사용 해당 프로그램에서는 폴더를 지정하면 폴더 하위에 있는 모든 파일을 일괄적으로 인코딩해준다. 링크 : http.. 2023. 12. 16.
[개발 상식]인터프리터(Interpreter)와 컴파일러(Compiler) 인터프리터(Interpreter)와 컴파일러(Compiler) 프로그래밍 언어의 실행 방식에는 주로 인터프리터(Interpreter)와 컴파일러(Compiler)라는 두 가지 접근 방식이 쓰입니다. 각각은 소스 코드를 실행 가능한 형태로 변환하는 방식에서 차이를 보이며 본문에서 각각의 특징을 자세히 알아보겠습니다. 1. 인터프리터(Interpreter) 인터프리터는 소스코드를 한 줄씩 읽고 해석하여 즉시 실행하는 방식입니다. 코드를 작성해서 바로 실행해 볼 수 있어 빠른 피드백을 제공합니다. 주로 Python, Ruby, JavaScript 등에서 사용됩니다. 한 마디 : 동시 통역 2. 컴파일러(Compiler) 컴파일러는 소스 코드 전체를 한 번에 기계어나 중간 언어로 번역하여 실행 파일을 생성하는 .. 2023. 12. 9.
[Git] 깃 명령어 목록 깃(git) 명령어 목록 명령 프롬프트(CMD)또는 git bash에서 "git help"를 치면 명령어 목록이 출력됩니다. 아래는 명령어 목록을 따로 정리해 봤습니다. //다음은 다양한 상황에서 사용되는 일반적인 Git 명령입니다 clone //저장소를 새 디렉터리에 복제 init //빈 저장소를 생성하거나 기존 저장소를 다시 초기화 add //파일 추가 mv //파일, 디렉터리 또는 심볼릭 링크 이동 또는 이름 바꾸기 restore //작업 트리 파일 복원 rm //작업 트리 및 인덱스에서 파일 제거 bisect //바이너리 검색을 사용하여 버그를 일으킨 커밋을 찾습니다. diff //커밋, 커밋, 작업 트리 등 간의 변경 사항 표시 grep //패턴과 일치하는 선 인쇄 log //커밋 로그 표시 s.. 2023. 12. 5.
[윈도우] 명령 프롬프트(CMD) 명령어 목록 윈도우 명령 프롬프트(CMD)명령어 목록 CMD 화면에서 "hlep" 라고만 쳐도 명령어 목록이 쭉 나옵니다. CMD 화면은 작업 표시줄 검색창에서 "cmd"라고 검색하면 "명령 프롬프트"가 나오며 클릭하면 됩니다. 아래는 명령어 목록을 따로 정리해봤습니다. ASSOC파일 확장명 연결을 보여주거나 수정합니다. ATTRIB파일 속성을 표시하거나 바꿉니다. BREAK확장된 CTRL+C 검사를 설정하거나 지웁니다. BCDEDIT부팅 로딩을 제어하기 위해 부팅 데이터베이스에서 속성을 설정합니다. CACLS파일의 액세스 컨트롤 목록(ACL)을 표시하거나 수정합니다. CALL한 일괄 프로그램에서 다른 일괄 프로그램을 호출합니다. CD현재 디렉터리 이름을 보여주거나 바꿉니다. CHCP활성화된 코드 페이지의 번호를 표.. 2023. 12. 3.
[Git Hub] 100Mb 넘는 파일 올릴 때 생긴 문제 해결 방법 깃 허브 (Git Hub) 100Mb 넘는 파일 올릴 때 생긴 문제 이나 해당 화면이 나오면 일단 'Cancel'을 합니다. 그리고 밑에 방법을 따라하면 좋을것 같습니다. 해결 방법 https://git-lfs.com/ 에 들어가서 설치 파일을 다운로드합니다. 다운 받은 설치 파일을 실행하여 git-lfs를 설치합니다. 콘솔을 통해 git-lfs 를 설치한다. git lfs install 100mb가 넘는 파일을 트래킹 한다.(저의 경우 파이어베이스 구성중에 있는 번들이었습니다.) git lfs track "*.bundle" .gitattributes를 add후 커밋 한다. git add .gitattributes 대용량 파일을 add후 커밋 한다. 해결! 2023. 12. 1.
[개발 상식]인터페이스(interface)와 추상 클래스(abstaract class) 인터페이스(interface)와 추상 클래스(abstaract class) 인터페이스(Interface) 장점 다중 상속 지원: 클래스는 여러 인터페이스를 동시에 구현할 수 있으므로 다중 상속을 흉내낼 수 있습니다. 유연성: 인터페이스를 사용하면 클래스가 여러 독립적인 계약을 따를 수 있으며, 이로 인해 코드의 유연성이 향상됩니다. 코드 재사용: 여러 클래스가 동일한 인터페이스를 구현할 수 있으므로 코드 재사용이 증가합니다. 단점 구현 강제: 인터페이스를 구현한 클래스는 인터페이스의 모든 멤버를 제공해야 하므로 더 많은 작업이 필요할 수 있습니다. 제한된 기능: 인터페이스는 멤버 구현을 갖지 않으므로 특정 동작을 정의하기 어렵습니다. 예시 public interface IShape { void Draw(.. 2023. 11. 9.
[개발 상식] 값 타입(Value Type)과 참조 타입(Refrence Type) 값 타입(Value Type)과 참조 타입(Refrence Type) 값 타입(Value Type) 값 타입은 데이터를 스택 메모리에 저장합니다. 값 타입은 변수가 값을 직접 포함하며, 메모리 상에서 독립된 복사본을 가집니다. 값 타입은 주로 기본 데이터 유형(예: 정수, 부울, 문자, 실수 등) 또는 사용자 정의 구조체(struct)로 나타납니다. 값 타입의 예: int x = 10; // 정수 (값 타입) char letter = 'A'; // 문자 (값 타입) DateTime date = DateTime.Now; // 날짜 및 시간 구조체 (값 타입) 참조 타입(Reference Type) 참조 타입은 데이터를 힙(heap) 메모리에 저장합니다. 변수는 힙 메모리에 있는 데이터를 가리키는 참조를 포.. 2023. 11. 8.
[개발 상식]박싱(Boxing)과 언박싱(Unboxing)에 대해 박싱(Boxing)과 언박싱(Unboxing) 박싱(Boxing)과 언박싱(Unboxing)은 값 형식과 참조 형식 간의 변환을 수행하는 프로세스입니다. 이러한 변환을 통해 값 형식(예: 정수, 부울, 실수 등)을 참조 형식(예: object 또는 인터페이스)으로 캐스트하고 다시 반대로 참조 형식을 값 형식으로 변환할 수 있습니다. 박싱(Boxing) 박싱은 값 형식을 참조 형식으로 변환하는 프로세스입니다. 이때 값 형식의 인스턴스는 힙 메모리에 새로운 객체로 복제됩니다. 박싱은 object 형식을 포함한 모든 참조 형식으로 수행될 수 있으며, object 형식은 모든 데이터 형식을 포괄합니다. 박싱은 값 형식을 참조 형식으로 저장하려는 경우, 다양한 데이터 형식을 일반화된 방식으로 처리할 때 유용합니다.. 2023. 11. 7.
[개발 상식]태스크(Task)와 코루틴(Coroutine) 태스크(Task)와 코루틴(Coroutine) 태스크 (Task) 특징 병렬 실행: 태스크는 주로 병렬 실행을 관리하기 위한 개념으로 사용됩니다. 여러 개의 테스크가 동시에 실행되며, 각 테스크는 독립적인 작업을 수행합니다. 스레드와 프로세스 내에서 사용: 태스크는 멀티스레딩 환경이나 멀티프로세스 환경에서 사용됩니다. 다른 스레드 또는 프로세스와 동시에 실행될 수 있습니다. 동시성 제어: 태스크는 일반적으로 스레드 또는 프로세스 간에 데이터 공유와 동시성 문제를 다루기 위한 메커니즘을 제공합니다. 예시) using System; using System.Threading.Tasks; class Program { static async Task FooAsync() { Console.WriteLine("Sta.. 2023. 11. 6.
[개발 상식]JSON, XML, CSV의 각 장단점 JSON, XML, CSV의 장단점 JSON (JavaScript Object Notation) 장점 다양한 프로그래밍 언어에서 지원되며, 파싱과 직렬화가 간단 데이터 구조를 효과적으로 표현할 수 있으며, 중첩된 데이터 및 복잡한 객체를 지원 문자열, 숫자, 배열, 객체 등 다양한 데이터 유형 처리 가능 키-값 쌍을 사용하여 데이터를 구조화하고 읽기 쉽게 만듬 단점 XML보다 데이터 양이 더 많을 수도 있음. 주석을 지원하지 않음 예시) { "name": "John Doe", "age": 30, "email": "johndoe@example.com", "hobbies": ["reading", "swimming", "traveling"], "address": { "street": "123 Main St",.. 2023. 11. 5.
[개발 상식]오버로딩(Overloading)과 오버라이딩(Overriding) 오버로딩(Overloading)과 오버라이딩(Overriding) 오버로딩(Overloading) 같은 이름의 여러 함수를 가질 수 있다. 다만 각 함수들은 매개 변수의 유형과 개수가 다르도록 하는 방법 예시) int GetSum() { return 0; } int GetSum(int a,int b) { return a+b; } int GetSum(int[] values) { int result = 0; foreach(int item in values) result =+ item; return result; } 오버라이딩(Overriding) 상속관계의 부모 클래스의 가상함수를 자식 클래스에서 재정의 하여 사용하는 방법 예시) //부모 클래스 public class Parent { public virtu.. 2023. 11. 4.
[개발 상식]프로세스(Process)와 스레드(Thread) 프로세스(Process)와 스레드(Thread) 프로세스(Process) 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 말한다. 또는 OS에서 할당한 프로그램 작업 단위 특징 독립성 : 각 프로세스는 독립된 메모리 공간을 가지며, 한 프로세스의 오류가 다른 프로세스에 영향을 끼치지 않음. 통신 : 프로세스 간 통신이 필요한 경우, 복잡한 메커니즘이 필요(ex 소켓 등) 생성 비용 : 프로세스를 생성하고 관리하는 데는 시스템 자원이 많이 필요하며, 많은 시간과 비용이 소요 안정성 : 프로세스 간의 오류나 출돌이 발생해도 다른 프로세스는 영향을 받지 않아 시스템 전체의 안정성이 유지 스레드(Thread) 프로세스 내에서 할당된 실행 단위, 모든 프로세스에는 하나 이상의 스레드가 실행된다. 특징 공유 .. 2023. 11. 3.
728x90