오늘은 Join에 대해서 알아보겠습니다. 일단 Join에 간단한 개념은 서로 다른 두테이블이 있고, 각 테이블의 Primary key 이름이 같을 때,어떠한 값을 조회할 때 테이블을 합쳐서 보여질 수 있음을 의미합니다. 일단 Join을 직접 해보기 위해서 테이블을 2개를 생성합니다.create table practiceA (id INT NOT NULL auto_increment primary key,name varchar(50),age varchar(50));create table practiceB (id INT NOT NULL auto_increment primary key,school varchar(50),explains varchar(50)); 그리고 각 테이블에 insert를 해줍니다.ins..
오늘은 트랜잭션에 대해서 공부를 해봤습니다. 트랜잭션에 내용은 여러분들이 DB를 배우게 되면 제일 맨처음 배우는 내용이 아마 트랜잭션일 것이라고 생각합니다.저는 단어에 대한 개념이 생소했어서, 제가 배웠던 내용이 트랜잭션인지도 모르고 공부를 했습니다. 제가 무엇을 말하는지 예상이 가시나요? 바로 "CRUD" 가 트랜잭션에 기본 입니다. 🖐 그러면 트랜잭션은 개념에 대해서 알아보겠습니다 (Transaction) -> 데이터베이스 상태를 변화시키기 위해 수행하는 작업의 단위 데이터베이스 상태를 변화시킨다는 뜻을 보면 뭐가 생각이 나나요?? 저는 Update, Delete 이 두개의 쿼리부터 생각이 났습니다. 즉 어떻게 보면 db 상태를 변화시킨다는 것은, 데이터를 조작하는 행위라고 볼수있겠죠?결국 db..
안녕하세요🖐 공부를 하다가, 엔티티는 DB와 직접적으로 접근하는 영역이기 때문에 건들면 안된다는 이야기를 들었습니다 왜 건들면 안된다는 걸까요❓ 그러면 엔티티에 접근을 안하고, 어떻게 DB에 접근해서 CRUD를 진행할까? 라는 생각이 먼저 들었습니다. 이에 대한 내용을 포스팅 해보겠습니다. 일단 저는 간단한 Rest API 연습을 하기 위해서 CRUD 게시판을 짜기 위해 공부중이였습니다. 최대한 객체지향 적으로 짜기 위해, 스프링 3Layer Architecture 를 도입해서 진행을 했습니다. 설명 : https://hyeonq.tistory.com/131 일단 Entity를 생성을 하겠습니다. @Getter @NoArgsConstructor @Entity public class Question { @..
안녕하세요🖐 오늘은 비밀번호 유효성 검사에 대한 예제를 통하여 TDD에 대해서 공부를 해보았습니다. 비밀번호 유효성 검사 조건 길이가 8글자 이상 0부터 9사이의 숫자를 포함 대문자 포함 - 모든 규칙을 충족하면 STRONG - 2개의 규칙을 충족하면 NORMAL - 1개의 규칙을 충족하면 WEAK 위 조건을 만족하는 테스트 코드를 작성해야 합니다. 암호 검사를 하는 경우를 생각해봤을 때, 가장 쉽거나, 가장 예외적인 상황은 무엇일까? 모든 규칙을 충족하는 경우 모든 규칙을 충족하지 않는 경우 모든 규칙을 충족하지 않는 경우는 모든 조건을 다 걸어야하기 때문에, 로직이 복잡하게 짜인다. 그러나 모든 규칙을 충족하는 경우는 쉽게 테스트를 통과시킬 수 있습니다. 바로 시작해보겠습니다. 1) 모든 규칙을 충족..
안녕하세요🖐 오늘은 객체지향 개념에서 협력,책임,역할 에 대하여 이야기를 해보려고 합니다. 우리가 살아가고 있는 곳에서 협력은 무엇을 의미할까요? 우리가 무언가를 필요로 할 때 도움을 요청하는 것? 도움을 요청하였을 때 요청을 수락하는 것? 간단하게 이정도로 말할 수 있을 것 같습니다. 프로그래밍에서 협력이란 단어에서 유추 할 수 있는 뜻은 무엇을 해야하는지 무엇을 누가? (잘하는지/할줄 아는지) 를 아는 것 무엇을 누군가에게 요청하기 그러면 객체지향 프로그래밍에서 왜 협력이 필요할까요❓ 객체지향 프로그래밍에서 기능을 구현하는 유일한 방법이기 때문이다. 객체가 협력을 하기 위해서는 위에서 유추한 내용이 필요합니다. 무엇을 해야하는지 무엇을 누가? (잘하는지/할줄 아는지) 를 아는 것 무엇을 누군가에게 요..
안녕하세요🖐 오늘은 객체지향 핵심에 대하여 포스팅을 해보겠습니다. 변화에 적응하는 소프트웨어의 특징은 무엇일까요? 저는 이 질문에 대하여 고민을 해보았는데 마땅히 떠오르는게 확장성? 정도 였습니다. 정답은 바로 유연성 확장성 유지 보수성 이 3가지가 충족이 된다면 변화에 적응하는 소프트웨어의 특징입니다. 그러면 이 3가지를 충족시키기 위해서 중요하게 관리해야하는 것이 있다고 합니다 바로 '의존' 입니다. 의존이란? 어떠한 일을 자신의 힘으로 하지 못하고 다른 어떤 것의 도움을 받아 의지하는 것 의존은 코드에서는 어떻게 표현될까? 객체 참조에 의한 관계 메서드 리턴타입이나 파라미터로서의 의존관계 상속에 의한 의존 관계 구현에 의하 의존 관계 등 여러가지가 있을 것 입니다. 1) 객체 참조에 의한 연관 관계..
안녕하세요🖐 오늘은 제가 토이프로젝트 시작에 앞서, 어떻게 패키지를 구성하고, 파일을 관리할지 고민을 하던 중에 스프링 계층 구조에 대해서 알게되어서 공부하게 되었습니다. 그 내용을 포스팅 해보겠습니다. 저는 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 라는 책을 보며, 스프링 계층구조에 대하여 자세히 알게되었습니다. 위 사진이 대표적인 스프링의 계층 구조라고 합니다. 각각의 계층은 계층마다 독립적으로 분리하여 구현하는 것이 가능해야하고, 각 계층에서 담당해야 할 기능들이 있다. Web Layer(= Presentation Layer) 우리가 흔히 사용하는 Controller와 View 영역입니다. 스프링을 사용하면서 MVC패턴을 들어보셨을 것이라고 생각합니다. 그 중에서 View와 Controlle..
시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 180611 62158 44997 33.907% 문제 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점수를 얻게 된다. 예를 들어 와 같이 시작점에서부터 첫 번째, 두 번째, 네 번째, 여섯 번째 계단을 밟아 도착점에 도달하면 총 점수는 10 + 20 + 25 + 20 = 75점이 된다. 계단 오르는 데는 다음과 같은 규칙이 있다. 계단은 한 번에 한 계단씩 또는 두 계단씩 오를 수 있다. 즉, 한 계단을 밟으면서 이어서 다음 계단이나, 다음 다음 계단으로 오를 수 있다. 연속된 세 개의 계단을 모두 ..