취준 note 2023
logic을 어떻게 표현할 것인가. -의사 코드 , 순서도
조건문 반복문을 공부하면서 문제를 푸는데, 문법은 알겠지만, 이것을 어떻게 구현하는지가 중요하다 의사코드는 정형화 되어 있는가? 의사코드는 상당히 주관적이며 표준화되어 있지 않다는 점을 기억하자. 의사코드에서 반드시 따라야 하는 규칙 같은 것은 없다. 하지만 다른 개발자들이 쉽게 이해할 수 있는 형식을 사용해야 한다. 혼자 개발한다면, 의사코드는 생각을 정리하고 계획한 것을 만드는데 도움이 되어야 한다. (다른 개발자, 하급 개발자, 프로그래밍 할 줄 모르는 사람 등) 여러 사람과 함께 개발하고 있다면, 모두가 지금 만드는 프로그램이 무엇인지 쉽게 이해할 수 있도록 프로젝트에서 사용할 최소한의 양식 정도는 만들어 두어야 할 것이다. https://42kchoi.tistory.com/114 https://..
헤드퍼스트 - 분리하기/옵저버 패턴
fly() quack()문제를 제외하면 Duck 클래스는 잘 작동하고 있으며, Duck 클래스는 그대로 두는 게 좋다 '변화하는 부분과 그대로 있는 부분'을 분리 (Duck 클래스와는 완전히 별개로) 2개의 클래스 집합을 만들어야함 fly()와 quack() 문제를 제외하면 Duck클래스는 잘 작동하고 있으며, Duck 클래스는 그대로 두는것이 좋다 변화하는 부분과 그대로 있는 부분을 분리할려면 (Duck클래스와는 완전히 별개로)2개의 클래스 집합을 만들어야한다 duck 클래스 바뀌는 부분뽑아내기 -> 나는 행동 , 꽥꽥거리는 행동 Duck클래스에 flyBehavior와 quackBehavior라는 인터페이스 형식의 인스턴스 변수를 추가한다 FlyBehavior와 QuackBehavior 인터페이스로 옮..
java 11 공식 문서 보는법
https://docs.oracle.com/en/java/javase/11/docs/api/index.html Overview (Java SE 11 & JDK 11 ) This document is divided into two sections: Java SE The Java Platform, Standard Edition (Java SE) APIs define the core Java platform for general-purpose computing. These APIs are in modules whose names start with java. JDK The Java Development Kit (JDK) AP docs.oracle.com https://javakong.tistory.com/13..
spring master - chap2 스프링빈 의존성 주입(IOC)
spring master은 스프링의 전반적인 사용에대해서 소개하는 책인데, 이해가되지 않은 부분이 많아서 블로그 여러글을 참조하면서 chap2내용을 정리 해보았다 JAVA- 클래스는 다른 클래스에 의존적, 클래스가 의존성의 인스턴스를 직접 생성하면 클래스 가내에 긴밀한 결합이 이뤄짐 스프링 - 객체 생성 및 연결 책임이 IOC컨테이너라는 새로운 구성 요소로 인계 클래스는 의존성을 정의, IOC 컨테이너는 객체를 만들고 의존성을 연결, 의존성 생성 및 와이어링 제어가 컨테이너에 의해 수행되는 혁신적인 개념은 ioc또는 의존성 주입으로 유명하다 쉬운 유지 관리성, 결합력 감소 및 테스트 가능성 개선, 스프링의 의존성 주입 옵션 - 자바 콘텍스트와 CDI에 대한 표준 의존성 주입 스펙과 스프링이 이를 어떻게 ..
참조변수를 쓰는 이유
https://velog.io/@squarebird/String%EC%9D%84-new%EB%A1%9C-%EC%84%A0%EC%96%B8%ED%95%98%EB%A9%B4-%EC%99%9C-equals%EC%9D%98-%EA%B2%B0%EA%B3%BC%EA%B0%80-false%EC%9D%BC%EA%B9%8C
코드없이 보는 스프링 부트 -페이징 정렬 처리하기
스프링과 Hibernate try〜 catch와 같은 많은 양의 코드를 직접 작성 Spring Data JPA 내부적으 로 클래스를 생성하는 방식으로 동작하면서 코드가 없는 형식의 개발이 가능 페이징 처리와 정렬은 전통적으로 SQL을 공부하는데 반드시 필요 오라클은 '인 라인 뷰(inline view)',mySQL은 limit JPA는 내부적으로 이런 처리를 'Dialect과는 존재를 이용해서 처리 JDBC 정보가 예제와 같이 MariaDB의 경우에는 자동으로 MariaDB를 위한 Dialect가 설정 application.properties 등을 이용해서 설정 JPA가 이처럼 실제 데이터베이스에서 나용하는 SQL의 처리를 자동화 SQL이 아닌 API의 객체와 메 니드를 사용하는 형태로 페이징 처리 sp..
컨트롤러와 RESTAPI
계층형 아키텍처의 이해-SW도 실제 코드 개발 전에 최종 SW가 되어야 할 모습을 설계 함 ■ SW 아키텍처란, SW의 구조를 정의한 것으로 SW를 구성하는 주요 요소들과 요소들의 관계를 정의한 것■ SW를 서로 다른 역할을 하는 3 〜 4개 계층으로 구분一 Presentation LayerApplication Layer 一 Business LayerData Access Layer■Client(웹 브라우저, 모바일 앱)의 요청을 받고 ■Application Layer에 요청에 대한 처리를 위임하며 ■Client에 최종 응답을 하는 역할view: Client가 요청에 대한 응답의 결과로 보게 되는 웹 페이지 - data: Client가 요청에 대한 응답으로 받는 데이터Controller 코드■ Spring..
코드없이 보는 데이터+알고리즘
출처- 코드없이 보는 알고리즘 데이터구조 1 데이터 구조 알고리즘 기본 자료형 빅 오(o)표기법 2 선형 데이터 구조인 배열,연결 리스트,스택,큐를 설명한다. 3 트리와 트리 기반 데이터 구조를 설명 4 해시 데이터 구조를 소개한다 5 그래프의 기초를 간략하게 설명한다 알고리즘 6 선형 탐색 이진 탐색 7 정렬 알고리즘이 버블 정렬, 선택 정렬, 삽입 정렬, 병합 정렬, 퀵 정렬을 설명한다 8탐색 알고리즘이 너비 우선 탐색, 데이크스트라 알고리즘, A*알고리즘 9군집 알고리즘이 K-평균 알고리즘과 K-최근접 이웃 알고리즘을 소개하고, 머신러닝과 신경망을 간단히 살펴본다 알고리즘과 데이터구조를 이해하는데 필요한 지식들 10무작위성 개념에 대한 몇가지 기본 지식을 설명한다 11스케줄링 알고리즘인 선착순 스케..
자료구조 - 시간복잡도
연결 리스트 스택 & 큐 체인 해시 트리 정렬 시간 복잡도 시간 복잡도는 서로 다른 알고리즘의 효율성을 비교할 때 사용합니다. 시간 복잡도에는 몇 가지 규칙이 있습니다. input \geq≥ 0 functions do more work for more input drop all constants ignore lower order terms ignore the base of logs - 2n = O(n)2n=O(n) => 2n \in O(n)2n∈O(n) 규칙 1. 입력값(n)은 항상 0보다 크다. 입력값이 음수일 수는 없습니다. 그래서 복잡도는 항상 0보다 크다고 가정하고 계산 규칙 2. 함수는 많은 입력값이 있을 때 더 많은 작업. 더 많은 입력값이 주어지면 어떤 작업을 하는 데 필요한 계산이나 처리 ..
코딩테스트 유용한 사이트
우선 coding test를 공부하기위해 선수지식이 필요하다. python문법 자료구조,알고리즘 이론 coding test 사이트 codeforces topcoder leetcode codechef 국내 백준, 코드업 -문제 - 문제집 -기초 100제 백준 -온라인 저지+알고리즘을 찾아 풀기 프로그래머스 -카카오의 문제스타일,다른사람의 문제풀이 참고 sw expert academy-삼성에서 공식적으로 제공하고 있는 알고리즘 학습사이트 coding test에 유리한언어 빠른시간 c/c++, python 큰숫자,리스트,문자열을 처리하는데 있어서 매우 편리한 기능 C++나 java에 비해서 사용할 라이브러리나 코드의 수가 훨씬 적다. online 개발환경 리플릿 - 온라인 코딩테스트대회에서 많이 사용한다. 파..
1 알고리즘을 배워야하는 이유
-클라우드와 가상화등의 발전으로 컴퓨터 리소스를 제약없이 사용하는 시대에 주요 알고리즘을 몰라도 되지않을까? ->시간과 비용면에서 효율을 높일 수 있다. 알고리즘은 무엇인가? -문제나 과제를 해결하기 위한 처리 절차 -레시피 처럼 -> 과제를 해결하기 위한 절차 programing시작은 요구 설계 알고리즘이 정해진 후에는 프로그래밍해야 한다. 코딩 프로그래밍 언어를 사용하여 알고리즘을 프로그램으로 만들어 나가는 것을 말한다. team단위로 작성-사양에 맞춰 프로그래밍을 진행한다. debug 어디에 문제가 있는지 규명하여 수정 what is good algorithm ? -알기쉽다 -속도가 빠르다 -효율적이다. -재이용하기 쉽다 절차가 알고리즘이기 위한 조건 -정확한 결과를 얻을 수 있어야한다 -반드시 종..
JAVA 객체지향-클래스 인스턴스 메서드
3.2 클래스변수와 인스턴스변수 Card클래스의 큼래스변수(static변수)인 width, height는 Card클래스의 인스턴스블 생성하지 않고도 •클래스이름.클래스변수’와 같은 방식으로 사용 할 수 있다. 인스턴스가 생성될 때 마다 생성되므로 인스턴스마다 각기 다른 값 유지, 클래스 변수는 모든 인스턴스가 하나의 저장공간을 공유. 3.3 메서드 특정 작업을 수행하는 일련의 문장들을 하나로묶은 것이다. 드에 넣을 값(입력)과 반환하는 결과(출력)만 알면 되는 것이다. 그래서 메서드를 내부가 보이 지 않는 ‘블랙박스(black box)’라고도 한다. sqrt()외에도 지금까지 빈번히 사용해온 println()이나 random()과 같은 메서드들 역 시 내부적으로 어떻게 동작하는지 몰라도 사용하는데 아무런..