썸네일 🎟인터페이스와 🖼추상클래스의 차이점에 대해 설명해주세요 키워드 추상 메소드란? 🖼추상 클래스란? 🎟 인터페이스란? 🖼추상 클래스와 🎟 인터페이스의 공통점 왜 굳이 🎟 인터페이스를 사용할까? 🖼인터페이스와 🎟 추상 클래스 언제 사용할까? 추상 메소드란? 선언부만 작성하고 구현부는 작성하지 않은 채로 남겨둔 것이 추상 메소드입니다. 머리만 있고 꼬리(내용)는 없는 메소드라고 생각하면 됩니다. 🖼 추상 클래스란? 추상 클래스와 일반 클래스는 상속 관계에 놓여있습니다. 추상 클래스는 새로운 일반 클래스를 위한 부모 클래스의 용도로만 사용됩니다. 일반 클래스들의 필드와 메소드를 통일하여 일반 클래스 작성 시 시간을 절약할 수 있습니다. 추상 클래스는 단일 상속만 가능하며, 일반 변수를 가질 수 있습니다. 🎟 인터페이스란? 추상 클래스의 하나로, 추상 메소드로만 이루어..
썸네일 🚗오버라이딩과 🏠오버로딩에 대해 설명해주세요 키워드 🚗오버라이딩 🚗? : 엄마 차를 내 마음대로 꾸미고, 활용하는 것 부모 클래스의 메소드를 내 입맛대로 "재정의"하는 것 오버라이딩을 이해하기 위한 배경 지식 오버라이딩의 특징 오버라이딩의 성립 조건 @Override 어노테이션 🏠오버로딩 🏠? 같은 학교에 동명이인이 있어도 수업을 들을 수 있는 것 같은 클래스 내에 다른 매개변수의 타입, 개수가 다르면 같은 메소드 명을 사용할 수 있다는 것 🚗오버라이딩과 🏠오버로딩이 뭐가 다를까? 🚗오버라이딩을 이해하기 위한 배경 지식 상속 클래스 단위로 상속이 이루어지고, 이는 코드의 재사용성을 높이기 위함입니다! 클래스 상속이랑 자식클래스가 부모 클래스의 속성과 메소드를 100% 상속 받는 것을 의미해요. (자식 클래스는 부모 생성자와 private 요소를 제..
썸네일 [파이널 프로젝트 회고] 진짜_최종_찐_마지막! 지난번과 달라진 점이 있다면? 게타에서 만나요! 코로나로 인해 팀원들과 친해질 기회가 없었던 게 지난 프로젝트에서 아쉬움이 남는 부분이었다. 스몰톡이 얼마나 중요한지를 깨달았고, 이를 위해서 어떤 방법이 있을까 고민하다가 요즘 핫한 메타버스인 을 이용해보았다. 각자 랜각코(*랜선에서 각자 코딩하는 것)와 랜선 회의를 자유롭게 할 수 있었고, 우리 팀원뿐만 아니라 다른 팀의 팀원들까지 친해질 수 있는 계기가 되었다. 덕분에 더욱 편안한 분위기에서 자유롭게 커뮤니케이션할 수 있었다. 실제로 나중에는 디코보다 게타에서 더 많은 회의를 진행하게 되었다. baby steps 기억하기 ! 사소해 보이는 일들도 일단 해야 할 일 목록에 리스트업 했다. 그리고, 매주 월요일 아침, 주간 회고를 통해서 내가 달성 했던 ..
썸네일 [Spring Boot] 레이아웃 템플릿 만들기 3.4.2 레이아웃 템플릿 만들기 파라미터로 필요한 영역을 전달해서 처리한다 = 레이아웃 전체를 하나의 페이지로 구서하고 필요한 부분을 파라미터로 전달하는 방식으로 공통의 레이아웃을 사용할 수 있습니다. HEADER CONTENT FOOTER 다음과 같은 모습으로 출력됩니다. 7/24 😂500에러 떴다! 8/2 😅 해결 역시 오타 문제였다. 오류 문구에는 라고 나와있었는데, 나는 exTemplate.html만 엄청 찾아봤다..ㅎ 하지만 layout1.html에서 오타가 있었던 것 ! fragement가 아니라 fragment 였다. 의미있는 삽질이었다고 생각하자..!
썸네일 CORS란? CORS란? Cross-Origin Resource Sharing, 교차 출처 리소스 공유 방식이라고 할 수 있습니다. 동일 출처의 반대 개념입니다. 다른 출처 간에 리소스를 공유할 수 있도록 이 권한을 브라우저에게 알려주는 체체이며, 추가 HTTP 헤더를 사용하고 있습니다. 출처? 리소스? 더보기 출처는 보내고 받는 각각의 위치 즉, 웹사이트와 API의 주소이며, 리소스는 주고받아지는 데이터입니다. 언제 발생할까? 한 사이트에서 주소가 다른 서버로 요청을 보낼 때 접하게 되는 오류입니다. 웹사이트를 여는 곳 (브라우저)에서 일어나는 , 즉 프론트에서 일어나는 문제점입니다. CORS가 왜 필요할까? 웹 생태계가 다양해지면서 여러 서비스 간에 자유로운 데이터 교환이 필요해졌습니다. (😉 제가 만든 웹 사이..
썸네일 [BOJ] 8393 | 합 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int a = Integer.parseInt(br.readLine()); br.close(); int result = 0; for(int i=1;i 성능적인 부분도 신경쓰기! ✔ for문의 조건식을 차근 차근 ..
썸네일 🏖RESTful과 📋REST API란 무엇인가요? API란? 클라이언트, 서버와 같은 서로 다른 프로그램에서 요청과 응답을 주고받을 수 있게 만든 체계 RESTful한 API를 사용하는 이유는? REST API란? 어떤 URI에 어떤 메소드를 사용할지 CRUD를 하나의 주소로 관리하자!는 개발자들 사이에서 널리 지켜지는 약속 HTTP의 다양한 메소드 REST API에서는 주로 HTTP의 메소드인 GET/POST/DELETE/PUT/PATCH를 사용합니다. 📋REST API는 HTTP상 두 노드가 소통하는데 중요한 역할을 담당하고 있습니다. = 정보를 주고받는 데 있어서 개발자들 사이에서 널리 쓰이는 일종의 📋형식입니다 = 형식이기 때문에 기술에 구애를 받지 않습니다. 즉 어떤 프로그래밍 언어든 어떤 프레임워크든 해당 폼에 맞춰서 기능을 만들면 되는 것입..
썸네일 [TOAST UI Editor] 토스트 UI 기본적인 화면 구현하기 프로젝트를 위해 토스트 UI 에디터를 사용하게 되었다. 처음에는 엄청나게 큰 산처럼 느껴졌었는데, API 문서를 차근 차근 읽어보니 성공할 수 있었다! 😜 * 다들 어렵지 않게 성공했다고 하는데, 이 부분은 동의하면서도 비동의한다. 처음에는 그런거 모르겠고 다 어렵거든요 😂 일단 두어번 하면 숨쉬듯 할 수 있을 거라는 믿음을 가지고 꼭 성공해보길 바랍니다! 토스트 UI 새로운 버전인 V3.0을 기준으로 작성했다. API문서를 토대로 V2.0과 차이점을 비교해보면 좋을 것 같아서 같이 가져왔다! 의존성 정보 변경 에디터 3.0에서는 v2.x에서 사용하던 의존성 모듈들이 제거되었다. 만약 CDN 환경에서 개발하고 있다면, v2.x에서 사용하던 CodeMirror 의존성 코드는 더 이상 필요없으니 제거해야 한..
썸네일 [Spring Boot] 제어문 처리 3.2.2 제어문 처리 타임리프의 제어문 처리 th:if ~ unless 삼항 연산자 스타일 th:if ~ unless 실행 결과 삼항 연산자를 사용하는 방법 실행 결과 응용
썸네일 [Like 5] DB 피드백 정리 이번 프로젝트 DB 피드백을 정리한 내용입니다. 각각 DB 상황에 따라 다를 수 있습니다. AS-IS TO-BE 배운 점 소셜 로그인 ( 카카오, 네이버 ) 로컬 로그인 + 소셜 로그인 카카오, 네이버 없는 사용자가 있을 수 있으니까 기본적으로 로컬 로그인 기능 구현은 구현하기 board 테이블의 board_content 컬럼의 데이터 타입 VARCHAR2(4000) CLOB으로 변경 HTML 태그도 사용하는 경우에는 길이가 길어지기 때문에 VARCHAR2(4000)은 부족할 수 있다. 따라서 CLOB이라는 데이터 타입을 사용하자 태그 테이블과 board 테이블 연결 관계 태그와 board 테이블의 연결 관계는 해제하고 board 테이블에 태그명이라는 컬럼 추가 태그 테이블은 조회 용도로만 가져오기, b..
썸네일 [Spring Boot] 스프링 MVC와 Thymeleaf | 포트 번호 바꾸기 | 404 에러 해결 📚코드로 배우는 스프링 부트 웹 프로젝트를 통해 공부한 내용들을 정리해보았습니다. 82p -88p 스프링 부트는 설정을 통해서 JSP등을 사용할 수도 있지만, JSP 대신에 Thymeleaf이나 FreeMarker,Mustache등을 이용해서 화면을 처리합니다. Thymeleaf(타임리프)를 이용하는 이유 JSP와 유사하게 ${}을 별도의 처리 없이 이용할 수 있습니다. Model에 담긴 객체를 화면에서 JavaScript로 처리하기 편리합니다. 연산이나 포맷과 관련된 기능을 추가적인 개발 없이 지원합니다 개발 도구를 이용할 때 .html 파일로 생성하는데 문제가 없고 별도의 확장자를 이용하지 않습니다. 3.1 타임리프를 사용하는 프로젝트 생성 83p 참고 타임리프를 이용하는 프로젝트는 변경 후에 만들어..
썸네일 [Spring Boot] 쿼리 메서드와 Pageable의 결합 📚코드로 배우는 스프링 부트 웹 프로젝트를 통해 공부한 내용들을 정리해보았습니다. 74p - 78p 쿼리 메서드와 Pageable의 결합 MemoRepository 인터페이스의 변경 public interface MemoRepository extends JpaRepository { List findByMnoBetweenOrderByMnoDesc(Long from, Long to); Page findeByMnoBetween(Long from, Long to, Pageable pageable); } 정렬 조건은 Pageable을 통해서 조절할 수 있습니다. Pageable 파라미터는 모든 쿼리 메소드에 적용 가능합니다. 일반적인 경우 쿼리 메서드에 정렬 조건을 생략하고 만드는 경우가 많습니다. MemoRep..