전체 글579 Aspect-oriented programming (AOP) Aspect-oriented Programming (AOP) AOP(Aspect-Oriented Programming)는 교차 편집 문제를 분리하여 모듈성을 높이는 것을 목표로 하는 프로그래밍 패러다임입니다 교차 편집 문제는 로깅, 보안 및 트랜잭션 관리와 같은 다른 부분에 영향을 미치는 프로그램의 일부입니다 이러한 종류의 문제는 종종 코드를 분산시키거나 엉키게 하여 전통적인 객체 지향 프로그래밍(Object-Oriented Programming, OOP) 달성하고자 하는 문제의 분리를 위반합니다. AOP는 OOP에 추가 차원을 추가하여 이러한 문제를 해결합니다. AOP에서 모듈성의 주요 단위는 aspect Aspect는 여러 클래스에 영향을 미치는 동작을 재사용 가능한 모듈로 캡슐화합니다. 결과적으로 .. DEV/Java 2023. 5. 11. Spring 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/Java 2023. 5. 11. AWS의 서버 종류 AWS의 서버 AWS 서버를 보다보면, EC2와 S3 등이 보입니다. 사실 서버 인스턴스를 생성해서 사용했었지만 정확히 어떤 것을 목적으로 만들어진 서비스인지 모르고 사용해서 정리합니다 Amazon EC2 - 크기 조정이 가능한 컴퓨팅 용량을 클라우드에서 제공하는 웹 서비스 Amazon S3 - 확장성, 가용성, 내구성을 가진 데이터 저장 공간(Simple Storage)을 제공. Amazon RDS - 관계형 DB 관리 서비스. 관계형 DB(MySQL, Oracle 등)를 모니터링, 주기적 백업 S3란 무엇인가요? Amazon S3(Simple Storage Service)는 인터넷 데이터를 위한 안정적이고 빠르며 저렴한 데이터 스토리지 인프라를 제공하는 개체 스토리지 서비스입니다. 사용자는 웹 어디에.. DEV/Backend 2023. 5. 10. 메모리 구조 메모리 구조 요즘 🐥 카카오 테크 캠퍼스에서 Java를 공부하는데 강의에서 메모리 구조와 연관지어 설명하니 귀에 쏙쏙 들어온다. 좀 더 깊은 이해를 위해서는 메모리 구조가 필수란 생각이 들어 복습 한다 프로그램이 실행되기 위해서는 먼저 프로그램이 메모리에 로드되어야 합니다. 이때 프로그램이 사용하는 변수들을 저장할 메모리 공간도 필요하며, 이러한 메모리 공간은 운영체제가 제공합니다. 프로그램이 운영체제로부터 할당받는 대표적인 메모리 공간은 코드(code) 영역, 데이터(data) 영역, 스택(stack) 영역, 힙(heap) 영역 등이 있습니다. 운영체제는 이러한 메모리 공간을 효율적으로 관리함으로써 프로그램의 안정성과 성능을 보장할 수 있습니다. 메모리의 기본 구조 코드(code) 영역: 실행할 프로그.. Computer Science/운영체제 2023. 5. 10. Java의 Hook Method Java의 Hook Method Java의 후크 메서드는 기본 클래스에서 선언되지만 해당 동작을 사용자 지정하기 위해 하위 클래스에서 재정의되는 메서드입니다. 이러한 메서드는 미리 정의된 워크플로 또는 일련의 작업에 삽입할 수 있는 사용자 지정 코드의 자리 표시자 역할을 합니다 즉 기본 코드를 변경할 필요 없이 코드 설계의 유연성을 높이고 코드 재사용을 촉진할 수 있습니다 Java 컨텍스트에서 후크 메서드는 기본 클래스에서 알고리즘의 골격을 정의하는 방법을 제공합니다 또는, 하위 클래스가 후크 메서드를 재정의하여 알고리즘의 특정 단계를 사용자 지정할 수 있는 템플릿 메소드 디자인 패턴을 구현하는 데 일반적으로 사용됩니다. 이를 통해 일반 프레임워크 구성 요소를 재사용하고 애플리케이션별 논리를 실행할 수 .. DEV/Java 2023. 5. 10. Ubuntu PostgreSQL 원격 접속시 발생하는 에러 해결 방법 Connection to IP Address Refused. Check That the Hostname and Port Are Correct PostgreSQL을 학교에서 대여 받은 NHN 클라우드에 배포해서 연결하려고 했더니 에러가 발생 하였습니다. TypeORM으로 Ubuntu의 PostgreSQL의 접근하는 상황이었습니다 먼저, 대여한 클라우드의 기본 PostgreSQL 포트인 5432를 열어주었습니다 해결 과정 - PostGreSQL 접근 제어 이슈 방화벽을 해제했음에도 여전히 접근 할 수 없었습니다. 찾아보니 기본적으로 PostgreSQL에서 접근 제어를 하고 있었습니다 이를 해결하기 위해 먼저 설정 파일들이 몰려 있는 쿼리 파일 구성 위치를 찾습니다 sudo -u postgres psql SH.. DEV/Backend 2023. 5. 9. BlindTok (4) - Entity와 Service를 너머 API까지 BlindTok (4) - Entity와 Service를 너머 API까지 Entity와 Service를 생성하며, 특이 사항들을 기록합니다. 파일을 어떻게 저장했는지, 친구 관계들을 어떻게 인덱스 하나로 처리했는지 등 제가 겪은 어려움을 기록합니다 File 기능 구현의 어려움 저희 서비스에서는 user의 이미지와 음악 파일들을 저장해야하기에 기존의 music 테이블을 지우고, file 테이블을 생성하도록 하였습니다. File Id에 UUID부여 uudi를 사용한 이유는 uuid를 사용하면 전역적으로 유니크한 아이디를 가지기 때문에 테이블에서 중복 문제를 해결 할 수 있습니다. 또한 pk를 자동으로 증가시키는 것보다 추측이나 예측이 어렵기 때문에 보안이 강화됩니다 import {v4 as uuidv4} f.. 프로젝트/사이드 프로젝트 2023. 5. 8. Cannot read properties of undefined (reading 'joinColumns') Cannot Read Properties of Undefined (reading ‘joinColumns’) 프로젝트 개발을 하던 도중 Postman으로 User api 테스트를 하는데 아래 에러가 발생하였습니다. { "statusCode": 500, "error": "Internal Server Error", "message": "Cannot read properties of undefined (reading 'joinColumns')" } 에러가 발생 한 곳은 Entity-Service-API 흐름 중 Entity에서 발생하였습니다. 오늘은 에러 해결 과정과 그 이유를 파악하도록 하겠습니다 문제 원인 위는 제가 작성한 User 엔티티의 일부분입니다. 유저의 Meta 정보를 UserMeta 엔티티를 참조.. ETC 2023. 5. 8. Python 가상 환경 구성 Python 가상 환경(Virtual env) 구성 with Mac 먼저 Mac에서 터미널 앱을 엽니다. Python 3이 설치되어 있는지 확인합니다. python3 --version Python 3.3 이상과 함께 제공되는 venv 모듈을 설치합니다. 이전 버전의 Python이 있는 경우 다음을 실행하여 virtualenv 패키지를 사용할 수 있습니다. python3 -m pip install --user virtualenv 가상 환경을 만들 디렉터리로 이동합니다. 예를 들어 문서 폴더의 "my_project"라는 폴더에 가상 환경을 만들려면 다음을 실행합니다 cd ~/Documents/my_project 가상환경을 이제 생성하고 실행합니다 필요한 패키지가 있다면 가상 환경에 설치하고, 이제부터 가상환.. ETC 2023. 5. 5. NAT NAT(network Address translation) NAT(네트워크 주소 변환)는 인터넷에 연결할 때 로컬 네트워크의 여러 장치가 단일 공용 IP 주소를 공유할 수 있도록 하는 네트워킹 기술입니다. 사용 가능한 IPv4 주소의 수가 제한되어 있기 때문에 IPv4 주소 고갈 문제를 해결하기 위한 솔루션으로 NAT가 도입되었습니다. 종종 로컬 네트워크와 인터넷 사이의 게이트웨이 역할을 하는 라우터 및 모뎀과 같은 장치는 NAT와 유사한 기능을 수행합니다. 사용법 일반적인 홈 네트워크 시나리오에서 ISP(Internet Service Provider)는 DHCP(Dynamic Host Configuration Protocol)를 사용하여 가정에 단일 IP 주소를 할당합니다. 컴퓨터 및 스마트폰과 같은 .. Computer Science/네트워크 2023. 5. 4. SSH의 포트포워딩 SSH의 포트포워딩 SSH 터널링이라고도 하는 SSH 포트 포워딩은 클라이언트 시스템에서 서버 시스템으로 또는 그 반대로 응용 프로그램 포트를 터널링하기 위한 SSH의 메커니즘입니다 SSH 포트 포워딩은 로컬 포트 포워딩과 원격 포트 포워딩 의 두 가지 유형으로 분류할 수 있습니다. 로컬 포트 포워딩 로컬 포트 포워딩은 보다 일반적인 포트 포워딩 유형입니다. 사용자가 암호화된 SSH 터널을 통해 로컬 컴퓨터에서 다른 서버로 연결할 수 있도록 하는 데 사용됩니다. 이렇게 하면 액세스된 서비스 자체가 암호화되지 않은 경우에도 통신을 암호화된 상태로 유지하면서 원격 서비스에 안전하게 액세스할 수 있습니다. 원격 포트 포워딩 원격 포트 포워딩을 사용하면 원격 서버가 암호화된 SSH 터널을 통해 로컬 .. Computer Science/Security 2023. 5. 4. 데코레이터 패턴(Decorator Pattern) 데코레이터 패턴(Decorator Pattern) 데코레이터 패턴은 동일한 클래스의 다른 개체의 동작에 영향을 주지 않고 정적 또는 동적으로 개별 개체에 동작을 추가할 수 있는 디자인 패턴입니다. 이 패턴은 비헤이비어가 포함된 특수 래퍼 개체 안에 이러한 개체를 배치하여 개체에 새 동작을 연결하는 것과 관련된 구조적 패턴입니다. 데코레이터 패턴의 핵심 포인트 및 이점 데코레이터 패턴을 사용하면 구조를 변경하지 않고 객체에 새로운 기능을 추가할 수 있습니다. 런타임에 동작을 동적으로 추가하고 제거할 수 있기 때문에 상속 기반 접근 방식보다 더 유연합니다. 데코레이터를 함께 연결하여 복잡하고 복합적인 동작을 제공할 수 있습니다. 패턴은 클래스가 확장에는 열려 있지만 수정에는 닫혀 있는 개방-폐쇄 설계 원칙을.. Computer Science/디자인패턴 2023. 5. 3. 이전 1 ··· 28 29 30 31 32 33 34 ··· 49 다음