카테캠

MIME(Multipurpose Internet Mail Extensions) MIME는 RFC 5322 프레임워크의 확장으로서, SMTP나 다른 메일 전송 프로토콜과 이메일 RFC 5322가 가진 문제점과 제약 사항을 해결하였다 또한, MIME은 이메일을 통해 비 ASCII 문자, 비디오, 오디오, 이미지 같은 이진 파일을 전송하기 위해 설계된 인터넷 표준이다 특징 MIME는 이메일을 통해 다양한 형식의 데이터를 안전하게 전송할 수 있게 해줍니다. MIME 타입은 보통 "타입/하위 타입"으로 구성되어 있습니다. 예를 들어, "text/html"은 HTML 문서를 나타내는 MIME 타입입니다. MIME는 헤더 필드를 통해 메시지의 본문과 첨부파일에 대한 정보를 제공합니다. 등장 배경 MIME는 원래 SM..
· DEV/Frontend
Base64 Base64는 바이너리 데이터를 ASCII 문자열로 변환하는 인코딩 방식입니다. 이 방식은 바이너리 데이터를 텍스트 형식으로 안전하게 전송하거나 저장할 수 있게 해줍니다. Base64는 주로 이메일 메시지의 첨부파일, 웹에서 이미지 데이터를 전송하거나, 복잡한 정보를 URL 안에 인코딩하는 데 사용됩니다. Base64 인코딩은 바이너리 데이터를 6비트 단위로 잘라서 64개의 인코딩된 문자 중 하나를 대응시킵니다. 만약 입력 데이터의 길이가 6비트가 안되어 공백을 채워야 한다면, 패딩 문자 '='가 추가됩니다. 예제 : Base64를 HTML 소스로 바로 입력해보자 Base64 Encoded Image An image from Base64 data: img 태그의 src 속성에서 "data:i..
· DEV/Java
Aspect-oriented Programming (AOP) AOP(Aspect-Oriented Programming)는 교차 편집 문제를 분리하여 모듈성을 높이는 것을 목표로 하는 프로그래밍 패러다임입니다 교차 편집 문제는 로깅, 보안 및 트랜잭션 관리와 같은 다른 부분에 영향을 미치는 프로그램의 일부입니다 이러한 종류의 문제는 종종 코드를 분산시키거나 엉키게 하여 전통적인 객체 지향 프로그래밍(Object-Oriented Programming, OOP) 달성하고자 하는 문제의 분리를 위반합니다. AOP는 OOP에 추가 차원을 추가하여 이러한 문제를 해결합니다. AOP에서 모듈성의 주요 단위는 aspect Aspect는 여러 클래스에 영향을 미치는 동작을 재사용 가능한 모듈로 캡슐화합니다. 결과적으로 ..
· DEV/Java
Spring Spring 프로젝트 template 생성해주는 웹 사이트 Spring Framework의 주요 기능 의존성 주입/제어 반전(IoC) Spring 프레임워크의 핵심 IoC Container를 통해 생성에서 소멸까지 Java 객체를 관리 Spring은 종속성 주입을 사용하여 구성 요소를 독립적으로 개발하고 테스트 Aspect-oriented programming (AOP) 이 기능은 aspect의 교차 편집 문제 모듈화 Spring AOP(Aspect Oriented Programming)는 대부분의 엔터프라이즈 애플리케이션에서 필요한 로깅, 보안, 트랜잭션 관리와 같은 기능을 구현하는 데 사용 Spring MVC 다른 프레임워크와의 통합 Spring은 Hibernate, JPA, Struts..
· DEV/Backend
AWS의 서버 AWS 서버를 보다보면, EC2와 S3 등이 보입니다. 사실 서버 인스턴스를 생성해서 사용했었지만 정확히 어떤 것을 목적으로 만들어진 서비스인지 모르고 사용해서 정리합니다 Amazon EC2 - 크기 조정이 가능한 컴퓨팅 용량을 클라우드에서 제공하는 웹 서비스 Amazon S3 - 확장성, 가용성, 내구성을 가진 데이터 저장 공간(Simple Storage)을 제공. Amazon RDS - 관계형 DB 관리 서비스. 관계형 DB(MySQL, Oracle 등)를 모니터링, 주기적 백업 S3란 무엇인가요? Amazon S3(Simple Storage Service)는 인터넷 데이터를 위한 안정적이고 빠르며 저렴한 데이터 스토리지 인프라를 제공하는 개체 스토리지 서비스입니다. 사용자는 웹 어디에..
메모리 구조 요즘 🐥 카카오 테크 캠퍼스에서 Java를 공부하는데 강의에서 메모리 구조와 연관지어 설명하니 귀에 쏙쏙 들어온다. 좀 더 깊은 이해를 위해서는 메모리 구조가 필수란 생각이 들어 복습 한다 프로그램이 실행되기 위해서는 먼저 프로그램이 메모리에 로드되어야 합니다. 이때 프로그램이 사용하는 변수들을 저장할 메모리 공간도 필요하며, 이러한 메모리 공간은 운영체제가 제공합니다. 프로그램이 운영체제로부터 할당받는 대표적인 메모리 공간은 코드(code) 영역, 데이터(data) 영역, 스택(stack) 영역, 힙(heap) 영역 등이 있습니다. 운영체제는 이러한 메모리 공간을 효율적으로 관리함으로써 프로그램의 안정성과 성능을 보장할 수 있습니다. 메모리의 기본 구조 코드(code) 영역: 실행할 프로그..
· DEV/Java
Java의 Hook Method Java의 후크 메서드는 기본 클래스에서 선언되지만 해당 동작을 사용자 지정하기 위해 하위 클래스에서 재정의되는 메서드입니다. 이러한 메서드는 미리 정의된 워크플로 또는 일련의 작업에 삽입할 수 있는 사용자 지정 코드의 자리 표시자 역할을 합니다 즉 기본 코드를 변경할 필요 없이 코드 설계의 유연성을 높이고 코드 재사용을 촉진할 수 있습니다 Java 컨텍스트에서 후크 메서드는 기본 클래스에서 알고리즘의 골격을 정의하는 방법을 제공합니다 또는, 하위 클래스가 후크 메서드를 재정의하여 알고리즘의 특정 단계를 사용자 지정할 수 있는 템플릿 메소드 디자인 패턴을 구현하는 데 일반적으로 사용됩니다. 이를 통해 일반 프레임워크 구성 요소를 재사용하고 애플리케이션별 논리를 실행할 수 ..
· ETC
Github로 똑똑하게 협업하는 방법 - 🐥 카카오 테크 캠퍼스 이슈(Issue) GitHub Issue는 개발자와 프로젝트 팀이 작업, 버그 및 기능 요청을 추적하고 관리하는 방법입니다. Issue를 작성하여 자신이 해야 할 일을 관리하거나 매니저는 해야 할 일을 분배 할 수 있습니다. 또한, Issue의 경우 뒤에 나올 PR과 인덱스를 공유합니다. Github에서는 이슈와 PR을 연동해서 발생한 문제에 일종의 태그(연결)이 가능합니다. 개발자들은 이 기능을 통해서 개발 과정을 좀 더 유연하게 가져갈 수 있습니다 라벨(Label,레이블) 레이블은 개발자가 Github에서 문제를 관리하고 분류하는 데 도움이 되도록 사용할 수도 있습니다. 버그 대 기능, 우선 순위 또는 상태와 같은 다양한 기준에 따라 문..
· ETC
Git Branch - 🐥 카카오 테크 캠퍼스 git branch는 Git의 핵심 기능 중 하나로, 프로젝트에서 독립적으로 작업을 진행할 수 있게 해주는 포인터입니다. 브랜치를 사용하면 여러 개발자들이 동시에 프로젝트의 다양한 기능을 개발하거나 수정할 수 있으며, 이후에 각 작업을 병합하여 최종 결과물을 완성합니다. 독립적인 작업 브랜치를 통해 개발자들은 서로 영향을 주지 않고 독립적으로 작업할 수 있습니다. 이를 통해 효율적인 작업 흐름을 구성할 수 있습니다. 병합 작업이 완료된 브랜치는 다른 브랜치와 병합할 수 있습니다. 이 과정에서 충돌이 발생할 수 있으나, Git은 충돌을 해결할 수 있는 도구를 제공합니다. 가지치기 더 이상 필요하지 않은 브랜치는 삭제할 수 있습니다. 이를 통해 프로젝트의 관리가..
berom
'카테캠' 태그의 글 목록 (2 Page)