본문 바로가기

수업 & 공부

(65)
46 : 제네릭 (Generics) 제네릭(Generics) 이란? 제네릭(Generics)은 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입체크를 해주는 기능이다. > 특정타입을 미리 지정해주는 것이 아닌 필요에 의해 지정할 수 있도록 하는 일반(Generic) 타입이라는 것 제네릭을 쓰는 이유? 형변환이 필요없고, 타입의 안정성이 보장된다. 코드가 간결해지고 재사용성이 높아진다. 제네릭 타입을 사용함으로써 잘못된 타입이 사용될 수 있는 문제를 컴파일 과정에서 제거가능 클래스명 뒤에 를 붙여서 선언한다. public class ApiResponse { private final boolean success; private String message = n..
43- Git-branch & Merge Git - Branch 를 왜 사용할까? board 수정하다 comment수정하다 보면 history에서 여러가지 파일들이 섞여있는 것을 볼 수 있다. 그렇다면 텍스트(파일)들의 변화를 어떻게 관리할까? git - branch를 연습해보자 1. C\gitpractice\ 파일 안에 git파일을 생성하고 sourcetree에 추가해서 환경을 만들었다. 그리고 source.txt 파일을 생성 후 commit하였다. 2. 우선 master 상태에서 branch를 생성하여 commit을 따로 해보자. 가지(make-branch)를 생성하고 make-branch 가지가 선택된 상태에서 새로운 파일 makebranch.txt 파일을 아까의 위치에 추가하여 commit을 했다. 3. 아래 사진과 같이 branch가 ..
39 : Springboot (Rest API - @PathVariable ) @PathVariable URL 경로에 변수를 넣어주는 어노테이션이다. 항상 Rest API는 httpMethod를 기준으로 URL 분류 > URL 분류를 간략화 해준다. 여기서 Rest API? (분명 들었는데 기억이 나지 않는다...) “Representational State Transfer” 의 약자로 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미한다. (출처 : https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html) 균일한 인터페이스 제공 : 요청이 어디에서 오는지와 무관하게, 동일한 리소스에 대한 모든 API 요청은 동일하게 NOT REST API 읽기- GET http://localhost..
Postman (1) 계속 추가 1. 왼쪽은 Request 오른쪽은 Response 역할을 한다! 2. rsponse의 Body 밑 버튼으로 출력 방식을 바꿀 수 있다 3. Post방식으로 insert! Body > raw > JSON 방식으로 값을 입력해서 넣음! 아래 참고
33- 게시판 리뷰 (회원가입) 1. 추가된 페이지와 변경점 4- 게시판 (회원가입 기능) 추가된 페이지와 구조 signUp.jsp 1. script를 사용하여 비밀번호 검사를 구현한다. (pwd와 pwdCheck가 같아야지 submit 통과) 2. 비밀번호 검사를 통과했을때 EndUser에게 입력받은 id와 pwd값을 controller를 통.. dwc04112.tistory.com PasswordEncoder 여기서 hash처리 로직을 Common 패키지의 PasswordEncoder로 빼서 구현했다. Hash처리하는 코드를 다른곳에서 쉽게 불러올 수 있다. 아래는 PasswordEncoder 코드이다 public class PasswordEncoder { public static String getEncodedPassword(St..
[Eclipse 오류] the eclipse executable launcher was unable to locate its companion shared library the eclipse executable launcher was unable to locate its companion shared library 위의 에러가 발생했다 eclipse.ini 파일의 stratup 경로와 lucher.library 경로를 정확히 잡아줘야 한다. 수정 전-- -startup plugins/org.eclipse.equinox.launcher_1.6.200.v20210416-2027.jar --launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.2.200.v20210429-1609 수정 후-- -startup C:\eclipse-java-2021-06-R-win32-x86_64\eclipse\plu..
32- Hash에 대해 알아보자 Hash는 Key와 Value가 쌍을 이루는 자료구조이다 >> 필요한 데이터를 키 값을 통해, 아주 빠르게 탐색가능하다 Hash는 Key값을 Hash Function을 통해, HashCode를 뱉어서 저장공간의 Size로 나눠 Index를 정하여 Value값을 저장한다 Hash Function? 데이터의 효율적 관리를 위해 임의의 길이를 가진 데이터를 고정된 길이를 가진 데이터를 매핑해주는 함수이고, input(Key)과 output(HashCode)을 가진다. 해시 충돌이란? 위 과정에서 다른 Key값에 대해서 Hash Function이 같은 HashCode를 내밷어서 같은 Index에 연결되어 저장되기도하고, 다른 Key값에 대해서 Hash Function이 다른 HashCode를 내밷어도, Inde..
31- 게시판 만들기 (로그인 기능) 추가된 페이지와 역할 connection 코드를 model의 DBConnection으로 이동 > MemberDAO에서도 쉽게 쓸수있게 하려고 LoginCmd.Java - EndUser에게 입력받은 id, pwd를 DB에 저장된 id, pwd와 비교하는 역할 MemberDAO - 유저의 정보 즉 Member테이블과 DB작업을 위한 쿼리 MemberDTO - 유저의 정보 데이터 정의 로그인기능 구현 1 id와 pwd를 EndUser에게 입력받아 LoginCmd로 넘긴다 2 LoginCmd 에서 받은id값을 DB에 넣어서 해당 id의 DB데이터를 가져온다 (memberDAO, DTO 만들기) >> DB에서 가져온 값을 사용하기 위해 MemberDTO에 넣어서 리턴 3 비밀번호를 비교하는 isPasswordMa..