。゚(*´□`)゚。

코딩의 즐거움과 도전, 그리고 일상의 소소한 순간들이 어우러진 블로그

[네이버클라우드] 클라우드 기반의 개발자 과정 7기/웹프로그래밍 104

[NC7기-39일차(6월20일)] - 웹프로그래밍 20일차

Stack, Queue 자료구조 구현 breadcrumb (지나온 흔적) - 헨젤과그레텔에서 나온 말 Stack 구동원리 LIFO : Last In First Out 응용 : *방문하는 메뉴 이름 저장 & 방문하는 폴더 이름 저장 & 방문하는 웹페이지 저장 예) c:/ 사용자 / bitcamp / git / bitcamp-study 뒤로가면 마지막 방문 순서대로 나오는 거 Stack 구현 점선화살표: implement 실선화살표: 상속 List obj; obj = new ArrayList(); obj = new LinkedList(); obj = new Stack(); sub 클래스는 super클래스가 구현한 메서드를 사용할 수 있다. = super 클래스가 인터페이스를 구현했으면 sub클래스도 구현한 ..

[NC7기-38일차(6월19일)] - 웹프로그래밍 19일차

## 20. LinkedList 자료구조 구현하기 - 목록 관리 범용 클래스 LinkedList 정의 - LinkedList 구동원리 이해 및 구현 - 중첩 클래스 활용 - MemberHandler와 BoardHandler에 적용 linkedList를 통해 인스턴스주소(레퍼런스)를 이해하고 있는지 알 수 있음. 취직에도 공부에도 겸사겸사 좋음 [전] App - BoardHandler - ArrayList (Board를 포함) [후] App - BoardHandler - LinkedList (Board를 포함) ArrayList vs LinkedList ArrayList LinkedList 초기 크기 일정 메모리 확보 (배열) 0부터 시작 크기 증가 O -> 기존 배열이 garbage가 됨 O -> gar..

[NC7기-37일차(6월16일)] - 웹프로그래밍 18일차

오전수업 GRASP 패턴 High cohesion(응집력) : 서로 관련된 기능을 묶는 것. 관련없는 기능은 분리. 클래스가 더 전문적인 역할을 하게 됨. => 이점: 유지보수가 쉬워진다. 역할을 잘게 쪼갤수록 재사용하기가 쉬워진다. 교체도 쉽다. 우리가 지금 짠건 CLI 화면에서 사용하는건데 결국엔 웹브라우저에서 해야함 이때 재 사용 가능함. 유지보수가 쉽게하기위해 쪼개기때문에 묶는것이 관리하기 편하면 묶기도 함. 쪼개는 게 무조건 정답이 아님. 19. 다형성을 이용하여 MemberList를 범용으로 만들기 FRAME WORK : 틀 멤버핸들러, 멤버리스트 소스가 있으면 , 나도 똑같이 포토핸들러, 포토리스트 만들면 됨. 유지보수의 일관성, 통일성을 위해 속도가 떨어지더라도 프레임워크를 따라감. 일반적..

[NC7기-36일차(6월15일)] - 웹프로그래밍 17일차

Handler에게 메뉴 기능 위임 여기서부터 jdk 가 디버깅 모드 실행함 일반 모드에서는 break point 무시됨. 디버그 모드에서만 실행함 MEMBERHANDLER 에게 메뉴 기능을 위임 하는데 ,, ,! 문제점 : Handler 클래스를 작성하고 개발자가 어떤 이름으로 메서드를 만드느냐에 따라 App에게 호출하는 코드가 달라진다. => 개발자가 같은 이름으로 메서드를 만들면 되는것이 아닌가,,/? =>강제성이 없어 개발자의 선의에 기댈 수 밖에 없다 . => 엔지니어링 공학세계에서 선의에 기대는 것은 의미가 없다 . .. => 클래스 사용법을 특정방식으로 강제할 수 있는 문법이 필요하다. => 인터페이스 (Interface) 규칙 :객체사용규칙을 정하는 문법(여기서의 객체: 클래스) (객체는 클..

[NC7기-35일차(6월14일)] - 웹프로그래밍 16일차

null point exception 게시글 CRUD 추가 인스턴스 필드와 인스턴스 매서드 활용 의존 객체 주입(dependency Injection. DI 1교시 null.getNo() 이면 null point exception 주소값이 null 값이면 getNo 실행하지도 않음 들여다보지도 않음. 유효한 인스턴스 주소를 가지고 호출해야함. 안 유효한걸 부르면 null point exception임. board.setViewCount(board.getViewCount()+1); 조회수 수정하기 System.out.printf("제목(%s)? >", board.getTitle()); board.setTitle(Prompt.inputString("")); --- public static String inp..

[NC7기-34일차(6월13일)] - 웹프로그래밍 15일차

인스턴스, 스태틱 변수, 클래스 로딩, 어떤 메모리 영역에 생성되는 지 자바랭 셋팅에 include 있기때문에 그냥 java lang에서 gradle eclipse하면 됨 eclipse 아이콘에 느낌표떠서 안 되면 eclipse clean하고 다시 grade ecalipse 해서 refresh하면 됨 ex01 +++ oop 0510 정리하기 +++ oop 0740정리하기 void 먼지 3교시 변수의 종류 스태틱필드는 당연히 main과 별도로 생성됨 메인메서드는 메서드 에리어에 생성되고 메인메서드에서 사용할 로컬변수들이 jvm stack에 생성됨 논스태틱 필드만 heap에 생성됨 인스턴스 변수 = 논스태틱 변수 heap에 생성됨 메인메서드는 바로 되지만. 다른 클래스 로딩은 new 명령을 만났을 때 로딩됨..

[NC7기-33일차(6월12일)] - 웹프로그래밍 14일차

생성자 & getter & setter Eclipse 설치 1교시 & 2교시 스태틱은 스태틱끼리 사용 가능 중첩 클래스 (메인 클래스 안에 클래스: 로컬 클래스, 밖에는 스태틱 중첩 클래스 ) 논스태틱메서드 this.변수 // 내장된 this에 들어있음 . 논스태틱메서드 사용할 땐 파라미터를 넘겨줄 필요가 없음 생성자 new명령이랑 같이 써야하고 반드시 써야함... 생성자는 클래스이름이랑 똑같아야함. 리턴타입이 없어야함(ex void) new하면 생성자랑 무조건 결합해야되구 생성자 안 만들어 놓으면 자바 컴파일러가 자동으로 만듬. (빈 생성자를) 탑레벨 클래스 : 패키지에 소속된 클래스 getter & setter : private으로 접근이 막힌 변수 값을 리턴해주는 메서드- 인스턴스 메서드로 만들어줘..

[NC7기-32일차(6월9일)] - 웹프로그래밍 13일차

1교시 & 2교시&3교시 UML과 패턴의 적용 책 추천 클래스 1. 메서드를 분류 2. 데이터 타입 정의 메서드 스태틱 변수 (메서드끼리 변수를 공유하고 싶을 때 사용) 클래스 Test Test Test Calculator.class 추가 main() main() plus() minus() multiple() divide() main() plus() ... ------------------------ static int result plus() minus() multiple() divide() --------- result result = multiple(2,3); result = plus(result,7); result = minus(result,2); result = divide(result,2); ..

[NC7기-31일차(6월8일)] - 웹프로그래밍 12일차

*클래스 관계: UML 표기법(Unified Modeling Language) *사용자 정의 데이터 타입 만들기 *클래스와 인스턴스 1교시 class : 역할에 따라 메서드를 분류한 것 package: 클래스를 역할에 따라 분류한 것 클래스 관계: UML 표기법(Unified Modeling Language) 객체 관리 그룹 OMG (object Management Group)에서 지정한 표준화한 클래스 관계를 표기하는 기법 1. 상속 관계 (inheritance) (ex. 자동차에 덤프 트럭 기능 상속/ 기존 기능 + 특별 기능 추가) class 자동차 { 시동 기능 {}, run() {}, stop() {} } class 덤프트럭 extend 자동차 { dump() {..} } 2. 연관 (assoc..

[NC7기-30일차(6월7일)] - 웹프로그래밍 11일차

1교시 애플 고글 2교시 주석 막고 단순 입력 if문, 메서드 정의 if (menuNo.equals("6")) { break; } 문자열이랑 숫자랑 == 사용할 수 없음. .equals() 사용해서 입력값 비교 3교시 java.lang.(패키지에 소속된 클래스를 사용할 땐 굳이 import 안 해도 됨) Integer.parseInt() => 숫자로 된 문자열을 정수값으로 변환 for (int i = 0; i < length; i++) { if (no[i] == Integer.parseInt(memberNo)) { // i번째 항목에 저장된 회원정보 출력 return; } } 삼항연산자 //삼항연산자 int b = (5 < 4) ? 50 : 40; System.out.println(b); //결과 = 4..