일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Codeup
- 파이썬
- 알고리즘
- 캡슐화
- 브랜치
- java
- CRUD
- 부스트코스
- @AllArgsConstructor
- stringbuffer
- github
- 코드업
- DTO
- SQL
- html tag
- 자바
- @NoArgsConstructor
- HTML
- git
- entity
- 기본생성자
- 깃허브
- 상속
- 부트캠프
- HashSet
- 프로그래머스
- 에러
- @builder
- lv1
- Python
- Today
- Total
목록전체 글 (90)
잉?
항상 나에게 명확한 의미로 다가오지 않던 추상클래스. 이름처럼 나에겐 추상적인 존재였다. 하지만 지금은 어느 정도 이미지가 잡힌 듯하여 적어보려 한다. 클래스는 설계도라 할 수 있다. 객체라는 부품을 가지고 기능을 만드는 그 설계도. 그렇다면 추상클래스는? 추상클래스는 미완성 설계도라 할 수 있다. 이 추상클래스를 완성하도록 상속을 통해 자식클래스에 넘겨준다. 추상클래스는 자식클래스에서 공통적인 필드나 메서드를 추출해서 만들 수 있다. 또한 abstract 키워드를 사용해 선언할 수 있다. 예를 들면 사칙연산을 하는 기능을 만들고자 한다면 연산에 공통적으로 필요한 Operation이라는 클래스를 만들고, 그 안에 operate라는 메서드와 사칙연산에 필요한 최소한의 두 개의 수(firstNumber, s..
컬렉션(Collection)? 배열을 고도화시켜서 컬렉션이라고 부른다. 컬렉션은 참조형 변수만 저장한다. 참조형 변수는 주소값을 저장하는 변수이다. 우리가 변수에 값을 넣으면 그 값을 가리키는 주소가 있는데 그 주소를 저장하는 변수이다. (예시: 집이라는 변수에 우리집이라는 값을 넣으면 우리집을 가리키는 "서울시 동대문구 --동"이 저장되는 것) 컬렉션 종류 List - 순서가 있는 데이터 집합(데이터 중복 O, 배열(Array)과 비슷 - ArrayList : 일렬로 데이터를 저장하고 순번대로 값을 하나씩 조회 가능 - LinkedList - Stack Queue : 위아래가 뚫린 통에 데이터를 넣고 반대쪽에서 데이터를 뺄 수 있는 집합.(FIFO;First In First Out) Set - 순서가 ..
Scanner는 값을 입력받을 때 사용하는 클래스이다. 이 클래스 안에 다양한 메소드가 있는데 그중 next()와 nextLine()을 짚고 넘어가겠다. 일단 코드 구조를 보면 어떻게 사용하는지 알 수 있다. Scanner sc = new Scanner(System.in); // sc라는 Scanner 객체를 선언한다. String input = sc.next(); // input이라는 변수에 sc.next()메소드를 통해 값을 입력한다. System.out.println(input); // 입력한 값을 출력한다. 더 자세히 알아보자. next()와 nextLine()은 문자열을 반환하는 메서드이다. 그렇다면 이 둘의 차이점은 무엇일까? next()는 개행문자를 무시하고 입력을 받는다. 즉, 공백 전까지..
일단 나는 파이썬 flask를 이용해 미니프로젝트를 만들고 있었다. 근데 아래와 같은 오류가 발생했다. 뭐 명확한 이유도 없고.. 그저 데이터들을 JSON을 통해 가져오려 하니깐 "html파일은 JSON파일이 아니라고 SyntaxError가 났다."라고만 메시지가 뜬다. *SyntaxError는 문법적으로 유효하지 않을 때 나는 에러다. 구글링을 한 결과 오류 메시지는 같은데 해결법이 다 달랐다. 첫번째로, 부분에 jquery 스크립트를 붙여넣지 않아서 발생한 사람도 있었고, 두번째로, fetch("guestbook") 에서 /를 빼먹어서 발생한 사람도 있었다.(밑의 코드블럭 처럼 작성해야 함) function save_comment() { let formData = new FormData(); let ..
브랜치 ; Branch? 브랜치를 직역하면 나뭇가지라는 뜻을 가지고 있다. 나뭇가지처럼 여러 갈래로 공간을 만들 수 있다는 건데 즉, 버전의 분기이다. 그렇다면 왜 브랜치를 사용할까? 사용이유는?? 같은 코드를 기반으로 A는 기능을 추가하기도 하고, B는 기능을 수정하기도 할 텐데 A의 버전과 B의 버전의 서로 다른 코드가 만들어진다. 서로 다른 코드를 병합할 경우 같은 코드를 다르게 수정한 부분(충돌)이 뒤섞일 수 있다. 충돌이 날 경우 일일이 수작업으로 수정해줘야 하는 불상사가 생긴다. 솔직히 나도 브랜치를 적극 활용해보지는 못해서 자세한 제약 사항이 있는지 모르지만 여러 작업(수정, 기능 추가, 버전 이력 등)을 동시에 진행할 수 있다는 점. 독립적인 자신의 공간에서 독립적인 어떤 작업을 진행하기 ..
Git(깃) 이란? - CLI(명령어 기반 인터페이스) - 버전 관리를 위한 도구 - 로컬 저장소를 사용한다. ( 작업을 공유하기 어려움) Github(깃허브)란? - 개발자들의 SNS이기도 하다. - 클라우드 서버를 통해 로컬 저장소의 코드를 업로드할 수 있다. - 원격 저장소 호스팅 서비스. - 즉, 서버 컴퓨터의 전체 또는 일정 공간을 이용할 수 있도록 임대해 주는 서비스 왜 Git(깃)을 배워야 할까? 만약 깃을 사용하지 않는다면? - 변경 내역 확인이 어렵다. - 작업을 되돌리기 어렵다. (버전 관리) - 협력하기 어렵다. 버전이란? 유의미한 변화가 결과물로 나온 것.(삭제, 변경, 추가 등) 필요하다면 작업을 되돌릴 수 있다. 여러 명의 코드를 쉽게 나누고 합칠 수 있다. 깃을 관리하는 세 개..
원하는 데이터를 쉽게, Subquery 큰 쿼리문 안에 들어가는 쿼리문들을 다 서브쿼리문이라고 한다. 핵심 내용을 서브쿼리가, 그다음 부가적인 부분을 밖에서 처리한다. where절에 들어갈 수도, select user_id, name, email from users where user_id in ( select user_id from orders o where payment_method = 'kakaopay' ) select절에 들어갈 수도, select c.checkin_id, c.user_id, c.likes, ( select avg(likes) from checkins where user_id = c.user_id ) as avg_likes_user from checkins c from절에 들어갈 ..
테이블을 연결하는 Join 두 테이블의 공통된 정보 (key값)을 기준으로 테이블을 연결해서 한 테이블처럼 보는 것을 의미 Join 종류 Left Join? select * from users u left join point_users p on u.user_id = p.user_id user_id를 기준으로 조인해준다. 없으면 NULL로 보여준다. *누구에게 누구를 붙이는지 순서가 중요하다. *한쪽에는 있는데 다른 한쪽에는 없는 것을 가지고 통계내고 싶을 때 사용한다. 💡7월 10일 ~ 7월 19일에 가입한 고객 중, 포인트를 가진 고객의 숫자, 그리고 비율을 보여주세요. *count는 NULL을 세지 않는다. 즉, is not NULL을 할 필요가 없다. 답) select count(pu.point) ..