본문 바로가기

Study43

[ Python ] 이터레이터(Iterator) vs 제너레이터 (Generator) 이터레이터 (Iterator) ? - 집합에서 값을 차례대로 꺼낼 수 있는 객체 - For 문을 순회할 수 있음 - iter()로 반복 가능한 객체로 변환한 후, next()로 다음 값을 뽑는다 - 한 번 반복하면 재사용 불가 a = [1, 2, 3] iterator = iter(a) next(iterator) # 1 출력 next(iterator) # 2 출력 next(iterator) # 3 출력 next(iterator) # StopIteration 에러 발생 제너레이터 (Generator) - 이터레이터를 생성해주는 함수 - 순차적로 다른 값을 반환하길 원할 때 - yield() def generator(): yield 'a' yield 'b' yield 'c' g = generator() nex.. 2024. 3. 31.
[Spring] 게시판 만들기 1 https://www.youtube.com/@hancoding 한코딩 안녕하세요. 한코딩입니다. 학습한 코딩 지식을 공유하여 구독자님들과 함께 좋은 개발자로 발전하고 싶습니다. 영상이 도움이 되셨다면 구독과 좋아요 부탁드리고 영상의 부족한 부분이나 피 www.youtube.com 면접 가기 전에 뭐라도 만들고 싶어서 유튜브 한코딩님 강의를 들으며 Spring으로 간단한 게시판 만들기 실습을 진행하고 있습니다.' 먼저 다음과 같이 start.spring.io 에서 스프링 프로젝트를 생성하였습니다. 하나하나 기능들을 왜 쓰는지 살펴보면 1. Spring Web : 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크 2. Spring Data JPA : JPA를 편히 쓰기 위해 만들어 놓은 모듈이다. 그럼 .. 2022. 12. 3.
[2022-11-30] Java의 정석 2 - 11. 컬렉션 프레임웍 컬렉션 프레임웍? '데이터군을 저장하는 클래스들을 표준화한 설계' 컬렉션데이터 그룹은 크게 3가지 타입이 존재. 1. List - 순서가 있는 데이터의 집합. 데이터의 중복을 허용한다 구현 클래스 : ArrayList, LinkedList, Stack, Vector 등 ArrayList ArrayList는 Object배열을 이용해서 데이터를 순차적으로 저장한다. 첫번째로 저장한 객체는 0번째 위치에 저장된다. 배열에 더 이상 저장할 공간이 없으면 보다 큰 새로운 배열을 생성해서 기존의 배열에 저장된 내용을 새로운 배열로 복사한 다음에 저장된다. import java.util.*; class ArrayListEx1 { public static void main(String[] args) { ArrayLis.. 2022. 11. 30.
[2022-11-29] Java의 정석 - 1편 마지막~ 추상클래스 추상클래스란? 미완성 설계도다. 미완성 설계도로 제품을 만들 수 없듯, 추상클래스로 인스턴스는 생성할 수 없다. 추상 클래스는 상속을 통해서 자손클래스에 의해서만 완성될 수 있다. 추상클래스를 사용한느 이유는 추상 클래스 자체로는 클래스로서 역할을 다 못하지만, 아무것도 없는 상태에서 시작하는 것 보다 완전하지 않아도 어느정도 갖춰진 상태에서 시작하는것이 나을 것 이다. 추상클래스는 키워드 'abstract'을 붙이기만 하면 된다. 추상 클래스는 추상 메서드를 포함하고 있다는 것을 제외하고는 일반 클래스와 전혀 다르지 않다. 추상클래스에도 생성자가 있으며, 멤버변수와 메서드도 갖고 있다. 추상메서드 메서드는 선언부와 구현부로 구성되어있다. 추상 메서드는 선언부만 작성하고 구현부는 작성하지 않은.. 2022. 11. 29.
[2022-11-28] Java의 정석 - 객체지향II 상속 : 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 : 코드의 재사용성을 높이고 코드의 중복 제거하여 생산성, 유지보수에 크게 기여함 : 단일 상속만 가능하다. class Parent { int age; } class Child extends Parant { void play() { //내용 } } 조상 클래스 : 상속해주는 클래스 , 부모클래스, 상위클래스 , 기반클래스 자손 클래스 : 상속 받는 클래스 , 자손 클래스, 하위 클래스, 파생된 클래스 만일 Parent클래스에 age라는 정수형 변수를 멤버 변수로 추가하면, 자손 클래스는 조상의 멤벌르 모두 상속 받기 때문에, Child 클래스는 자동적으로 age라는 멤버 변수가 추가된다. - 자손 클래스의 멤버변수 개수는 조상 클래스 보다 .. 2022. 11. 29.
[2022-11-28] JAVA의 정석 - 객체지향 I 객체지향 언어 특징 : 코드의 재사용성이 높다. : 코드의 관리가 용이하다. : 신뢰성이 높은 프로그래밍을 가능하게 한다. 클래스와 객체 클래스 정의 : 객체를 정의해 놓은 것 (설계도) && 사용자정의 타입 클래스 용도 : 객체를 생성하는데 사용된다. 객체의 정의 : 실제로 존재하는 것. 사물 또는 개념 객체의 용도 : 객체가 가지고 있는 기능과 속성에 따라 다름 유형의 객체 : 사물 무형의 객체 : 논리, 개념 1. 변수 : 하나의 데이터를 저장할 수 있는 공간 2. 배열 : 같은 종류의 여러 데이털르 하나의 집합으로 저장할 수 있는 공간 3. 구조체 : 서로 관련된 여러 데이터를 종류에 관계없이 하나의 집합으로 저장할 수 있는 공간 4. 클래스 : 데이터와 함수의 결합 (구조체 + 함수) 객체와 인.. 2022. 11. 28.
[2022-11-25] Java의 정석 저번 면접을 보고.. 백엔드 개발자를 희망하는데 할 수 있는게 뭐냐는 질문을 받았기에 다음 날 바로 자바의 정석을 구매했다. 그동안 다른 곳 면접 준비하느라~ 공부를 못했는데~(핑계) 그 회사.. 남은 면접 약 2주.. 그 안에 자바의 정석 1회독 + 토이 프로젝트 1개 하는 것이 목표다. 해서 자바의 정석 그날 공부의 요약본을 올리고자 한다. 아는 것 들은 skip 하고 python과 다른 java의 부분 위주로 올릴 거다! Java언어 특징 1. 운영체제에 독립적이다. : 자바는 운영체제나 하드웨어가 아닌 JVM과 통신한다. JVM이 자바로 부터 전달 받은 명령을 운영체제가 이해할 수 있게 변환하여 전달해준다. (다만 JVM은 운영체제에 종속적이기 때문에 운영체제에 맞는 JVM을 설치 해야 한다.) .. 2022. 11. 25.
재귀 & 백트래킹 저번 주 이번 주 재귀와 백트래킹을 공부했기에 글을 쓴다. 근데 사실 글을 쓰고 있는 지금도 내가 재귀와 백트래킹을 제대로 이해하고 있는지 모르겠다. 확실한 건 백트래킹 너무 어려웠는데 이번 기회에 감은 잡았다.. 정도..? 재귀 먼저 재귀를 살짝 짚고 넘어가자면 재귀는 반복되는 계산에 주로 쓰이며 자신을 호출하여 점점 더 작은 계산을 한다. 작은 계산의 답이 어느 일정 값이 수렴하면 그 값을 return 하며 답을 구한다. 재귀는 스택 구조라 호출될수록 메모리가 계속해서 쌓이고 함수가 return되면 그 함수가 갖고 있었던 메모리 또한 비워지게 되기에, 그때서야 메모리를 반환하게 된다. 즉 return 조건을 만나기 전까지 재귀는 계속해서 메모리를 쌓기에 아무 생각 없이 재귀를 쓰다간 메모리 초과가 날.. 2022. 9. 4.
이분탐색 이분 탐색은 여러 알고리즘 종류 중 나를 애먹게 했던 Best 5 (너무 많나?) 안에 들었던 알고리즘이다. 투 포인터니 뭐니 포인터라는 말만 나오면 몸에 경기를 일으키는 나라서.. 문제만 보고 거부감이 들었던 알고리즘이기도 하다. 하지만.. 난 취업을 해야 하고.. 어쩌겠는고 피할 수 없으면 부딪히고 즐겨야지! 해서 저번 주 평일 아침에 매일매일 하는 알고리즘 스터디에서 그 주 알고리즘을 이분 탐색으로 정하고 문제를 풀었다. 근데 웬걸? 신내림을 받은 듯이 이분 탐색의 접근법을 깨우쳐버렸다....(다는 아니지만 어느정도..) 너무 감사한 것.. 그래서 나만의 이분 탐색 접근법을 잊지 않기 위해 블로그에 정리해둔다. 1. 먼저 문제에서 구해야 하는 값이 무엇인지 명확히 알아야 한다. 백준 1072번 - .. 2022. 8. 9.