Til 썸네일형 리스트형 객체지향 객체지향 프로그래밍 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다. 장점 코드 재사용이 용이하다 유지보수가 쉽다 대형프로젝트에 적합하다 단점 처리속도가 상대적으로 느림 객체가 많으면 용량이 커질 수 있음 설계시 많은 시간과 노력이 필요 클래스:집단에 속하는 속성과 행위를 변수와 메서드로 정의한 것 인스턴스(객체):클래스에서 정의한 것을 토대로 실제 메모리에 할당된 것으로 실제 프로그램에서 사용되는 데이터 추상화:공통의 속성이나 기능을 묶어 이름을 붙이는 것 캡슐화:기능과 특성의 모음을 클래스라는 캡슐에 분류해서 넣는 것 객체가 외부에 노출하지 않아야할 정보 또는 기능을 접근제어자를 통해 적절히 제어권한이 있는 .. 더보기 Spring MVC패턴 SpringMVC패턴 모델(Model) 애플리케이션 데이터만을 포함하고, 데이터를 조작하는 로직을 포함하지 않습니다. 뷰(View) 모델을 사용자에게 표시합니다 컨트롤러(Controller) 뷰에 의해 변경요쳥된 이벤트들을 감지하고, 이러한 이벤트들에 대한 적절한 로직을 실행합니다. 장점 1.여러 개발자가 역할을 나눠서 동시에 개발가능하다. 2.중복코드를 없앨 수 있고, 확장성있고 유연한 코딩이 가능하다. 3.각 컴포넌트별로 나눠져 있어 디버깅과 테스트가 용이 합니다. 단점 1.규모가 커질수록 파일이 많아져 복잡해질 수 있습니다. 2.개발자 수가 적으면 유지보수 시간이 길어질 수 있습니다. 더보기 for문 순열,XOR 연산자 숫자 1~3까지 중복되지 않게 뽑기 for (int i = 1; i < 4; i++) { for (int j = 1; j < 4; j++) { if (j != i) { for (int p = 1; p < 4; p++) { if (p != i && p != j) { System.out.println(i+" "+j+" "+p); } } } } } XOR연산자: ^ XOR:비트가 다르면 1,비트가 같으면 0을 반환하는 논리 연산자 더보기 객체 hashSet 중복제거 package Level2.October22; import java.util.HashSet; public class VisitLength { //방문길이 public static void main(String[] args) { String dirs = "ULURRDLLU"; System.out.println(solution(dirs)); } public static int solution(String dirs) { Coordinate coordinate = new Coordinate(0,0); HashSet hashSet = new HashSet(); for(int i=0; i=-5){ coordinate.update(-1,0); hashSet.add(new Coordinate(coordinate.get.. 더보기 객체 지향 설계 5원칙 SOLID 객체 지향 설계 5원칙 SOLID 1.SRP(단일 책임원칙):한 클래스는 하나의 책임만 가져야한다. 2.OCP(개방 폐쇄 원칙):소프트웨어 요소는 확장에는 열려있으나 변경에는 닫혀 있어야한다. 3.LSP(리스코프 치환 법칙):프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야한다. 4.ISP(인터페이스 분리법칙):특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다. 5.DIP(의존 역전 법칙):프로그래머는 추상화에 의존해야지, 구체화에 의존하면 안된다. 더보기 LRU,동적계획법,메모이제이션 LRU(Least Recently Used) 가장 오랫동안 참조되지 않은 페이지를 교체하는 방식 동적계획법(Dynamic Programming) 큰 문제를 한 번에 해결하기 힘들 때 작은 여러 개의 문제로 나누어서 푸는 기법 Top-down:상위 문제를 해결하기 위해서 하위 문제를 재귀적으로 호출하여 하위 문제를 해결함으로써 상위 문제를 해결하는 방식 bottom-up:하위에서부터 문제를 해결해나가면서 먼저 계산했던 문제들의 값을 활용해서 상위 문제를 해결해나가는 방식 메모이제이션(Memoization) 기존의 정보를 저장함으로써 같은 입력값에 대해 함수가 한번만 실행하게 됨 static int fibo(int x) { if( x ==1 || x==2) return 1; return fibo(x-1) +.. 더보기 운영체제,GUI,CUI,드라이버,시스템 콜,커널 운영체제 사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스 GUI 사용자가 전자장치와 상호 작용할 수 있도록 하는 사용자 인터페이스의 한 형태 CUI 그래픽이 아닌 명령어로 처리하는 인터페이스 드라이버 하드웨어를 제어하기 위한 소프트웨어 시스템 콜 운영체제가 커널에 접근하기 위한 인터페이스 커널 운영체제의 핵심 부분이자 시스템콜 인터페이스를 제공하며 보안,메모리,프로세스 등 운영체제의 중추적인 역할 더보기 이노베이션 캠프 1주차 WIL 파이참으로 첫 번째 프로젝트를 만들면서 필수과제인 JWT를 이용하여 회원가입과 로그인을 구현하였다. 회원가입 시 비밀번호를 해쉬값으로 변환하여 DB에 저장하여 해쉬값이 유출되더라도 비밀번호를 알 수 없도록 하게 했다. @app.route('/sign_up/save', methods=['POST']) def signup_save(): id_receive = request.form['id_give'] password_receive = request.form['password_give'] nickname_receive = request.form['nickname_give'] password_hash = hashlib.sha256(password_receive.encode('utf-8')).hexdigest().. 더보기 이전 1 2 3 4 다음