목록Programing (115)
월루를 꿈꾸는 대학생
setState - build 메서드를 호출해서 새로 랜더링함 - 하단 전체 위젯을 다 리빌드하기에 비효율적!! - 동시에 다른 위젯의 state를 업데이트 시키지 못함 Provider - create 파라미터에서 모델을 받고 이를 하위 child 밑에 위젯들이 참조해서 사용이가능 - 하나의 데이터를 하위 위젯에서 바로 바로 사용이 가능하기 때문에 편리 - 쉽게 위젯이 데이터에 접근이 가능 with ChangeNotifier - mixin - within -> 상속과 별개로 사용 다트에서 다중상속을 허용하지 않기 때문에 결속력은 약하지만 여러개 붙여서 사용할 수 있도록 사용 - 모델이 변화하면 ChangeNotifier의 notifyListeneres를 통해서 ChangeNotifiter를 Listen하..
mvc 패턴의 불편한 점을 개선한 것이 MVP -> MVVM 점점 발전해 가는 중 어떤 것이 개선 되었는가 ..? 기능별 역할별 분리를 해 서로의 의존성을 최소화 하는 중 MVC -> View와 Model간의 의존성이 높음 MVVM Model : 데이터와 관련있는 모델 View Model : View에서 사용되는 모델 --> 컨트롤러랑 비슷? mvc - 컨트롤러에서 모델의 갱신을 감지하고 뷰에 갱신 요청을 함 - 컨트롤러가 뷰랑 모델 둘 다 신경 써야함 MVVM - 컨트롤러가 뷰를 신경쓰지 않음.. 모델 변경되어도 변경사항만 수정하고 View에 요청 따윈 없음 VIew에 스트림 빌더 사용 StreamBuilder( stream: viewModel.mvvmStream, builder: ((context, ..
패턴은 총 3가지 1. mvc 2. mvp 3. mvvm 세상에 완벽한 패턴은 없음 mvc 쓰다가 부족함을 느끼고 개선하기 위해 mvp 그리고 마지막 mvvm이 나옴 디자인 패턴은 모두 기능성 역할을 구분하고 의존성을 최소하 하는 것이 목표 디자인 패턴은 그냥 코드의 형식을 정의한 것 뿐 확장된 기능을 여러 곳에서 사용할 수 있도록 거치고 거치고 거쳐서 만들어진 것 ex_ 싱글톤 패턴, 옵저버 패턴 등등 디자인 패턴을 써야하는 이유 - 내가 짠 코드는 내가 작성한 거니까 잘 아는데 협업시 다른 개발자는 보기 힘듦 .. 공통 규격?이 필요 - 이미 다른 사람이 열심히 검증하고 써왔던 코드가 있는데 안 쓸 이유가 없다 = 시간 절약 * 혼자 개발하는 경우 일단 기능부터 빨리 구현하는 것이 답일 수도 있다. ..
JVM이란 무엇인가 - Java Virtual Machine : 자바 실행을 위한 가상 컴퓨터 - 자바의 특징 중 하나 os 에 종속적이지 않다 -> os에 종속적이지 않기 위해서는 os말고 java를 실행시킬 다른 무언가가 필요 = JVM - 컨테이너 비슷하게 쓰는 듯 - 코드가 jvm 한 번 거친 후에 os 전달 되기에 조금 느림 다만 os에 직접 전달이 아니기에 종속적이지가 않음 -> write once , run anywhere 컴파일 하는 방법 - .java 파일을 컴파일러가 .class 파일로 변경 - .class 파일은 컴퓨터가 읽는 파일이 아니라 JVM이 읽을 수 있는 파일의 형태 - javac test.java 이런 식으로 컴파일 하면 class 파일이 나옴 실행하는 방법 - javac ..
14 전역 변수의 문제점 지역변수는 해당 스코프 안에서만 생성되고 함수가 종료되면 소멸 전역 변수 선언문의 경우 어디에 있든 가장 먼저 실행됨 지역 변수는 함수 호출과 종료에 따라 그대로 따라감 호이스팅 - 변수 선언이 스코프으이 선두로 끌어 올려진 것처럼 동작하는 특징 전역 변수 생명 주기 - 명시적인 호출 없읻도 자동 실행 : 로드되자마자 실행 - var 키워드로 선언한 전역변수 생명중기는 전역 객체의 생명주기와 일치 전역 변수 문제점 1) 암묵적 결합 - 모든 코드가 전역변수를 참조하고 변경 가능 - 가독성이 나빠지고 의도치 않게 값 변경 될 위험성 높음 2) 긴 생명주기 - 메모리 리소스 차지 3) 스코프 체인 상에서 종점 존재 - 검색 속도가 가장 느리다 4) 네임스페이스 오염 - 파일이 분리되..
데이터 베이스 설정하기 1) 서버 설치 = bitnami 2) 데이터 베이스 생성 3) 테이블 생성 BITNAMI 의 WAMP 패키지 실행 PHPMYADMIN 실행 phpmyadmin 접속 사용자 계정 -> 사용자 추가 필요한 사용자 추가 테이블이 아무것도 없으니 테이블 생성해두기 - 누가 어떤 메세지를 넣는지 관리하는 테이블 생성 : msg_board 1) number : INT 자동으로 숫자가 올라가는 auto_crement PK (기본키) 2) name : varchar(100) 글쓴이 3) message : varchar(255) 메세지 저장후 테이블 확인 htdocs/board/ - index.php ( 글 조회 , 검색 ,삭제 ) - view.php ( 글 보기 ) - write.php ( 글..
쿠키 - 쿠키의 이름 , 쿠키의 값 , 만기 날짜가 중요 - 구분을 쉼표로 함 - 클라이언트에 저장됨 https://www.php.net/manual/en/function.setcookie.php PHP: setcookie - Manual The server my php code is running on has sessions disabled so I am forced to store a fair bit of arbitrary data in cookies. Using array names was impractical and problematic, so I implemented a splitting routine. I do not serialize any class instances, www.php.net..
브라우저에 주소를 치고 ENTER를 누르는 순간 해당 주소의 서버에다가 GET방식으로 요청을 함 그 검색결과로 해당 페이지가 있으면 브라우저로 해당 파일을 출력 시켜줌 ?q=검색어 : 쿼리로 해당 검색어를 질의 - productid 라는 값이 20이 넘어오면 이 페이지 get-input.php 파일에 $product_id에 저장되어 출력됨 - $_GET['productid'] -> get으로 넘어온 값을 반환 - 슈퍼 글로벌 변수는 어느 페이지 어느 경로에 있어도 사용이 가능하다 - get 방식으로 넘어오는 데이터를 구분할 때는 & 로 구분 - productid 와 같이 limit라는 값들을 & 로 연결해서 넘겨줌 - 옛날에는 저기 주소창에 를 넣어서 악의적인 조작이 가능했으나 요즘 브라우저는 자체적으로..
전송방식 GET . POST - 사용자 입력을 받아 데이터베이스에 전송 - 가장 기초적으로 사용할 수 있는 것이 form을 사용해서 사용자의 입력을 받음 - 사용자 입력을 받은 FORM 태그 안의 내용들이 ACTION에 있는 경로로 보내짐 이떄 보내는 방식 METHOD에 따라 달라짐 - label과 input을 id로 연결시켜줌 연결시켜줘야 input으로 넣을 때 label이 반응 - 데이터 베이스에서 사용자가 입력한 데이터가 들어갈 필드명이 필요 = name 태그 request.php - form 태그에서 method 방식으로 넘긴 데이터를 받음 - 최상위 슈퍼 글로벌 배열 GET 혹은 POST에서 호출 가능 - MTHOD 에서 넘어온 어떤 데이터든 NAME에서 지정한 이름 넣어주면 값 출력 가능 Na..
외부 공통으로 쓰는 파일 불러오기 가능 html은 상단에 반복되는 header body 등 이런 반복되는 이런 거를 별도의 파일로 불러오는 방법이 없다 = 수십수백번 copy paste 해야함 이런 거 막기 위해 php는 include와 require 쓰고 있다! 1) include - 해당 경로의 파일을 불러온다 - include에서 불러온 파일에 에러가 있어도 개의치 않고 그 밑의 코드를 실행시킴 - 단순 반복 출력문, 에러가 있어도 문제없는 파일에 주로 사용 - include_once를 통해 중복된 코드를 한 번만 실행시켜줌 // include는 여러번 호출해도 에러 없음 2) require - include와 비슷한 역할 해당 경로의 파일을 호출 - require에서 불러온 파일에 에러가 있으면 ..