Edit Configuration을 통해 SQL DB로그인하기
·
Spring
같이 협업을 할때 테스트를 해보기 위해 보통 데이터베이스를 로컬로 놓는다. 그리고 보통 properties가 아닌 yml로 놓으면 이런식으로 입력하라고 뜬다. 보통은 이 자리에 자신의 SQL username하고 password를 입력하겠지만....문제점은 github에 push를 하고 다른 팀원들이 pull할시 나의 SQL username과 password 그리고 DB_NAME까지 남게된다.  몰론 더 이상 .yml을 만지지 않는 전제하에 .gitignore에 *.yml 추가하는 방법도 있지만 언제 버전 수정 할 순간도 있기에 굳이 추천하진 않는다.  그래서! 플레이 버튼 옆 Recent Configurations에서 Edit Configuartions으로 오면 DB_NAME에 스키마 명 입력하고 USE..
SNS 팀 프로젝트(1)
·
Spring/미니 프로젝트(뉴스피드)
뉴스피드 프로젝트이번 프로젝트에서는 Spring을 활용하여 협업 프로젝트를 진행하였다. 뉴스피드 기능을 포함한 SNS 애플리케이션을 개발할 예정입니다.뉴스피드란?친구들의 최신 게시물을 확인할 수 있는 페이지이다. 평소 유저분들이 자주 사용하는 인스타, 페북같은 SNS의 핵심 기능이라고 보면 된다.이번 진행할 팀에서는 이런식으로 개발 프로세스를 진행하였다.개발 프로세스 데이터베이스와 ORM데이터베이스 스키마 설계 -> ERD 통해 설계JPA를 통한 데이터베이스 연동 및 CRUD 작업 수행인증사용자 인증과 인가의 기본 원리 이해JWT 활용 -> 나중에 결정REST API기능에 맞는 REST API 설계 및 Spring Boot를 이용한 구현협업 및 버전 관리Git을 사용한 소스 코드 버전 관리브랜치를 이용한..
스마트 컨트렉트(Smart Contract)
·
Web지식/web3
스마트 계약이란? 세계 2위 암호화폐 거래소인 Coinbase에서는 스마트 컨트렉트 정의를 이렇게 정리했다.정의스마트 계약은 모든 계약과 마찬가지로 계약 조건을 설정합니다. 그러나 기존 계약과 달리 스마트 계약의 조건은 Ethereum과 같은 블록체인에서 실행되는 코드로 실행됩니다. 스마트 계약을 통해 개발자는 대출, 보험, 물류, 게임에 이르기까지 정교한 피어투피어 기능을 제공하는 동시에 블록체인 보안, 안정성 및 접근성을 활용하는 앱을 구축할 수 있습니다. -미국 암호화폐 코인거래소 CoinBasehttps://www.coinbase.com/learn/crypto-basics/what-is-a-smart-contract 즉 스마트 컨트렉트는 블록체인 기술 기반으로 자동 실행되는 계약이다. 계약 조건이..
메모리(Memory)
·
Computer Science
메모리(Memory)는 컴퓨터 시스템에서 데이터를 저장하고, 처리할 때 이 데이터를 임시로 유지하는 장치나 공간을 의미한다. 메모리는 컴퓨터가 작동하는 동안 프로그램과 데이터를 신속하게 읽고 쓸 수 있게 하여, 프로세서(CPU)가 필요한 정보를 빠르게 사용할 수 있도록 지원한다. 메모리의 주요 역할 데이터 저장: 프로그램이 실행되기 위해 필요한 데이터나 계산 결과를 저장한다. 명령어 저장: 실행 중인 프로그램의 명령어들을 저장하여 CPU가 이를 실행할 수 있도록 한다. 작업 공간 제공: 현재 실행 중인 작업에 필요한 데이터를 임시로 저장할 수 있는 공간을 제공한다.역사1940년대 초최초의 전자식 프로그래밍이 가능했던 디지털 컴퓨터인 ENIAC은 수천 개의 진공관을 사용하여 진공관에 저장된 10진수 20개..
N:M(다대다 관계)
·
Spring
스프링 프레임워크에서는 다대다(Many-to-Many)관계를 사용하는 것은 데이터베이스 모델링의 중요한 부분 중 하나이다. 다대다 관계는 두 엔티티 간의 복잡한 상호작용을 관리할 때 유용하지만, 이를 올바르게 구현하고 이해하는 것이 중요하다. 다음은 스프링의 JPA에서 다대다 관계를 보다 상세하게 설명하겠다. 다대다 관계의 기본 개념다대다 관계는 두 개의 엔티티가 서로 다수의 인스턴스를 참조할 수 있는 경우를 말한다. EX) 학생(Student)와 강좌(Course) 간의 관계에서는 한 학생이 여러 강좌를 수강할 수 있고, 한 강좌에는 여러 학생이 등록 하루 수 있다. 데이터베이스에 모델링을 하기 위해 필요한 구조Student 테이블Course 테이블 다대다 관계 구현방법기본적인 다대대 관계에서는 JPA..
Spring boot을 활용한 일정 관리 프로젝트(2)
·
Spring/미니 프로젝트(뉴스피드)
저번 프로젝트에 이어서 일정 관리에 관한 기능에 이어서 댓글, 아이디, 페이지네이션, JWT를 활용한 로그인 기능이 추가 되었다. Github주소https://github.com/wanduek/mj-schedule GitHub - wanduek/mj-scheduleContribute to wanduek/mj-schedule development by creating an account on GitHub.github.com해당 깃허브 read.me에 API명세서와 ERD가 있으니 많관부 바랍니다!회고전에는 못했던 3Layer structure 구현에 성공하였으며 각 클래스와 메서드가 명확한 역할을 수행하고 있다. 예를 들면, JwtUtil은 JWT 관련 작업을, UserService는 사용자 관련 비즈니스..
1:N(일대다), N:1(다대일)
·
Spring
Spring에서는 1:N과 N:1관계는 객체 지향 프로그래밍에서 데이터베이스의 테이블 간 관계를 표현하는 방법이다. 주로 JPA(Java Persistence API)를 사용하여 Entity간의 관계를 매핑할 때 사용된다. JPA(Java Persistance API): 자바 애플리케이션에서 데이터베이스와 객체 간의 매핑을 관리하고 수행하는 표준 API이다.Entity: 데이터베이스 테이블에 대응되는 자바 클래스이다. 클래스의 각 필드는 테이블의 각 열과 매핑된다. 1:N(일대다)관계관계는 하나의의 엔티티가 여러 개의 다른 엔티티와 연관되어 있는 관계를 의미한다. EX) 하나의 (Team)이 여러 명의 Member를 가질 수 있는 상황이 있다. Team class@Entitypublic class Tea..
모의 면접
·
카테고리 없음
RESTful API의 장점 확장성: 클라이언트와 서버의 상호작용이 명확하게 분리되어 있어 서비스 확장이 용이합니다.유연성: 다양한 형식의 데이터 전송이 가능하며, HTTP 프로토콜의 장점을 충분히 활용할 수 있습니다.표준성: 표준 HTTP 메서드와 상태 코드를 사용하기 때문에 이해하기 쉽고, 구현이 간단합니다. 1.  적절한 관심사 분리의 필요성관심사 분리(Separation of Concerns, SoC)가 필요한 이유는 유지보수 용이성, 재사용성, 테스트 용이성, 읽기 쉬운 코드, 확장성 때문에 필요합니다.유지보수 용이성: 관심사가 명확하게 분리되면 코드의 각 부분이 독립적으로 수정될 수 있어, 하나의 부분을 수정해도 다른 부분에 영향을 주지 않습니다. 이로 인해 코드의 유지보수가 쉬워집니다.재사용..
RESTful API
·
Spring
AWS에서 정의하는 RESTful API는?RESTful API는 두 컴퓨터 시스템이 인터넷을 통해 정보를 안전하게 교환하기 위해 사용하는 인터페이스입니다. 대부분의 비즈니스 애플리케이션은 다양한 태스크를 수행하기 위해 다른 내부 애플리케이션 및 서드 파티 애플리케이션과 통신해야 합니다. 예를 들어 월간 급여 명세서를 생성하려면 인보이스 발행을 자동화하고 내부의 근무 시간 기록 애플리케이션과 통신하기 위해 내부 계정 시스템이 데이터를 고객의 뱅킹 시스템과 공유해야 합니다. RESTful API는 안전하고 신뢰할 수 있으며 효율적인 소프트웨어 통신 표준을 따르므로 이러한 정보 교환을 지원합니다.https://aws.amazon.com/ko/what-is/restful-api/ RESTful API란 무엇인..
비밀지도
·
(Java)코테연습
문제 설명비밀지도네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다.지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 "공백"(" ") 또는 "벽"("#") 두 종류로 이루어져 있다.전체 지도는 두 장의 지도를 겹쳐서 얻을 수 있다. 각각 "지도 1"과 "지도 2"라고 하자. 지도 1 또는 지도 2 중 어느 하나라도 벽인 부분은 전체 지도에서도 벽이다. 지도 1과 지도 2에서 모두 공백인 부분은 전체 지도에서도 공백이다."지도 1"과 "지도 2"는 각각 정수 배열로 암호화되어 있다.암호화된 배열은 지도의 각 가로..