전체 글

회원 등록 기능 package hello.hellospring.controller; public class MemberForm { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } 1. 컨트롤러에 MemberForm을 만들 이유가 있나요? -> 사실 컨트롤러에 MemberForm 대신에 Member를 그대로 받아도 기술적인 문제는 없습니다. 다만 지금은 예제이지만, 실무에서는 컨트롤러에 넘어오는 정보가 Member가 필요한 데이터 이상으로 많은 데이터들이 들어옵니다. 예를 들어서 회원 정보 뿐만 아니라 약관 정보도 들어오고, 화면을 처리하기 위..
@Controller public class MemberController { } @controller 지정시 생기는일 1. spring 시작시 spring container라는 통이 생김. 2. @Controller 어노테이션이 있으면 MemberContoller 객체를 생성해서 넣어둠. 3. 스프링이 관리 -> 스프링컨테이너에서 스프링 빈이 관리된다 라고 표현. @Controller public class MemberController { private final MemberService memberService = new MemberService(); } 처음에 MemberController에서 MemberService 를 가져와서 써야됨. new를 통해 객체를 생성해서 사용할 수 있음. But 여..
비즈니스 요구사항 데이터: 회원ID, 이름 기능: 회원 등록, 조회 아직 데이터 저장소가 선정되지 않음(가상의 시나리오) 컨트롤러: 웹 MVC의 컨트롤러 역할 서비스: 핵심 비즈니스 로직 구현(ex: 회원중복가입X) -> 비즈니스적인 용어사용하기 리포지토리: DB에 접근, 도메인 객체를 DB에 저장하고 관리 -> 기계적인, 개발적인용어선택 도메인: 비즈니스 도메인 객체 예)회원, 주문, 쿠폰 등등 주로 DB에 저장하고 관리됨 회원리포지토리 -> interface로 설계 why?? 아직 DB선정 X 우선 메모리 구현체로 만듦 향후에 구체적 기술이 선정되면 바꿀거임 따라서 인터페이스를 사용 Optional java8에들어간기능 Null이반환될때 처리방법 -> Optional을 많이사용 감싸사 반환하면 클라이..
함수 오버로딩 함수의 이름은 동일 매개변수의 type, 갯수가 다름 return type은 관계없음 연산자 오버로딩 C++ 은 다양한 연산자 오버로딩 가능 >>,
복사 생성자 다른 객체(같은 클래스)를 이용해서 새로운 객체를 초기화 암시적(implicit) 복사 생성자 코드에 복사생성자가 없는 경우, 컴파일러가 암시적 복사생성자를 자동생성 암시적 복사 생성자는 얕은 복사를 수행 얕은 복사?? 각멤버값을 복사해서 넣음. 얕은 복사의 문제점 -> 안에 포인터형 변수가 동적메모리를 가리킨다면 주소만 바뀌어 별도의 메모리공간이 아닌 같은 메모리 공간을 가리키게 되는 문제점 발생 따라서 직접 복사생성자를 만들어 깊은 복사를 수행하여야함.
String class 키보드 입력 Cstyle: cin.getline(배열주소, 크기, 구분자) C++style: getline(cin, string class, 구분자) string 함수 string base = "Hello" 문자열의 크기 base.size(), base.length() 문자열 추가 base.append("Word") 할당된 메모리의 크기: base.capacity() 값 추출: base.at(index) 검색함수 : base.find(문자열, index) index부터 문자열 찾아서 첫번째 위치 리턴 검색함수: base.replace(index, 원래있던 문자열의 길이, 바꿀문자열) 문자연산자: >, >=, == 슬라이싱: substr(index, 크기) -> index 부터 크기..
LTSGOD
TS's log