일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- portfolio
- pymongo
- POST
- github
- Project
- mysql
- OOP
- beautifulsoup
- CRUD
- CSS
- get
- javascript
- json
- requests
- java
- NAS
- atlas
- flask
- fetch
- Crawling
- flaskframework
- body
- PYTHON
- openapi
- backend
- venv
- synology
- Algorithm
- frontend
- mongodb
- Today
- Total
목록Java & Algorithm (42)
wisePocket
계산기의 기본 틀을 익힌 이후로 나만의 정해진 규칙이 생겼다. 핵심이 되었던 연습 과정은 아래 두개 과정이다. 물론 이 구조가 이제 Java를 배우면서 더 깊게 변경 될 예정이다. 하지만 해당 카테고리 페이지는 알고리즘 문제 해결을 하기 위한 연습이 주 목적이라서 기본적으로 내가 객체 인스턴스화를 통해 메서드 호출을 구분하면서 "연산"에 집중 할 수 있는 나만의 틀로 활용하고자 한다. https://ohnyong.tistory.com/177 [Algorithm★] 4칙연산을 해주는 계산기 - 객체 지향 - 혼자 만들기+ChatGPT의 피드백 받기 https://ohnyong.tistory.com/178 [Algorithm★] 4칙연산을 해주는 계산기 - 객체 지향 - 혼자 만들기+ChatGPT의 피드백 ..
몇시간 전 ChatGPT로부터 지역, 전역 변수를 활용한 반복문 탈출을 배웠다. 이를 통해서 완벽하게 내가 원하던 구성들을 갖춘 계산기를 구현 할 수 있었다. 이전에 CLI 프로젝트를 만들었을 때도 3중 메뉴형태였는데 지역변수, 전역변수에 대한 이해도가 부족했었나보다. 응용으로 지역에서 전역 변수로 특정값을 보내고, 파라미터를 활용한 메서드 이용도 이번 연습하면서 많은것을 얻어서 뿌듯했다. 완성된 계산기는 다음과 같다. 1. Main.java 아무것도 없다. 이것이 내가 바라던 형태로 객체 생성, 호출 이외에 드러나는 것이 하나도 없도록 구현해 볼 수 있었다. package Algorithm; public class Main { public static void main(String[] args) { /..
알고리즘 기본 문제를 객체 지향적 프로그래밍을 적용해서 계산기 형태로 만들고 풀어보려했다. 처음엔 두 수의 합을 구현하는 것을 완료했지만 뭔가 부족한 느낌이 들었고, 뭔가 프로그램처럼 만들어보고 싶었다. 분명히 예제 코드들은 인터넷에 널려있겠지만, 아무 샘플 코드도 주어지지 않은 상태에서 혼자 처음부터 모든것을 타이핑해보려 했다. 이를 통해서 기본적인 간단한 프로그램이더라도 객체 지향적으로 설계하고 만들어보는 연습을 하고 싶었다. 따라서 내가 설정한 제약 조건은 Main.java에서는 최대한 노출되는 코드가 없이 Class(설계도)에 정의된 객체를 생성하여 인스턴스화 시키고 객체로부터 기능을 연결하는 코드들만 보이도록 하고 싶었다. 객체를 설계, 정의하는 Class는 Solution()이며 기본 생성자(..
27에서 Class 선언 -> 필드 선언 -> Constuctor 선언 -> Method 선언 까지 기본 골격을 갖췄다. 이제 기본 골격을 실제로 사용하기 위해서는 선언된 변수 초기화(값 할당) 내부 접근 외부 접근 Method 이용 이 단계 까지 필요하다. 이 단계까지 하면 기본적으로 간단한 입력을 받는 CLI 계산기 정도는 만들 수 있다. 이 골격을 활용해서 Algorithm 문제를 풀려고 여기까지 일단 진도를 밟았다. 알고리즘 문제를 풀려고 첫 장을 열었을 때 "2개의 값을 입력 받아 합을 구하는 함수를 구현하세요." 가 나왔는데, 갑자기 예전에 배운것, 파이썬, 자바스크립트, 모든 구현 방법과 객체, 메서드? 너무 많은 정보가 급하게 배운 만큼 꼬이고 꼬여서 머릿속에 정리가 안됬었다. 당장 "in..
객체 지향 프로그래밍(Object-Oriented Programming, OOP), Java의 필살기 객체지향프로그래밍(Object-Oriented Programming, OOP)은 소프트웨어 개발 패러다임 중 하나, 객체지향프로그래밍 절차지향프로그래밍 처리방식 문제를 여러개의 객체로 나누어 처리 문제를 여러개의 함수로 나누어 처리 장점 - 코드 재사용이 용이하다 - 유지보수가 쉽다 - 대형 프로젝트에 적합하다 - 처리속도가 빠르다 - 실행 속도가 빠르다 단점 - 처리속도가 상대적으로 느리다 - 객체가 많으면 용량이 커진다 - 설계 시 많은 시간과 노력이 필요하다 - 유지보수가 어렵다 - 대규모 프로젝트에 부적합하다 예 JAVA, Python, C# C언어 프로그램을 여러 개의 객체(Object)들로 구..
알고리즘 문제 풀이 전에, 알고리즘이 무엇인지 부터 공부를 하기로 했다. 오늘은 코드보단 이것들이 뭔지에 대해서 개념을 공부했다. 이전에 수업을 듣긴 했지만, 어렵게 느껴져서 머리가 듣는 것을 거부한것 같다. 그래도 정리를 하고 나니 어느 정도 이해가 된다. 하지만 피보나치 수열 부분은 아직도 햇갈린다. ChatGPT를 이용해서 도움을 얻어봤다. 쉽게 알려줘 하니까 생각보다 좀 쉽게 알려준다. 이해가 안되는 부분을 좀 이용해도 좋을 것 같다. 너무 의존하면 공부가 방해 될 것 같아서 키워드를 얻는 과정이나 아주 어렵게 느껴지는 부분에 대해서 단축시켜 주는 용도로 사용할 것 같다. 아니면 코드 리뷰를 부탁해도 될지도? 알고리즘(Algorithm) 알고리즘(영어: algorithm), 셈법은 수학과 컴퓨터과..
Collection - Map 컬렉션은 이전 교육과정에서 좀 어렵다 생각하고 잠깐 놓친 사이에 지나가서 바로 알고리즘~SQL로 넘어가고해서 내가 가장 기본기가 약하다고 느끼던 부분이다. 그래서 블로그보단 집중해서 보려고 노력했다. 얼마나 놓친 부분이 많은지 체감되고있는데, 아직도 이해도가 좀 애매한 구석들이 많다. 조금 다양한 강의나 블로그를 통해서 나를 이해시켜줄만한 무언가 필요하다. 알고리즘과도 연결되는 것도 그렇지만 나중에 프로젝트에서 실제로 자주 쓰이는 부분이기 때문에 걱정이 많다. 여러 사람들이 이해한 방법들을 살펴보면서 나에게 맞는 이해가 될 때 스터디 동료들과 이것들에 대해 이해되는 것들을 공유하고 서로 알려주는 시간을 가져야 겠다. Map은 프로젝트에서 정말 많이 사용했다. 대부분의 배열을..
Collection - Set 집합, 순서 없고, 중복 없다. Set에 대해 복습 해보고자 한다. 순서가 보장되지 않는대신 중복을 허용하지 않는 곳에서 사용 빠른 검색이 필요할 때 사용하는 클래스,같은 자료를 중복 보관할 수 없다. Set 클래스(
Collection - Queue 원통, 통과하는 자료구조 Queue 복습해보고자 한다. 뚫려있는 원통같은 공간에 자료가 들어간다. 나올땐 처음 들어간 자료부터 나온다. First In First Out Interface라서 생성자가 없다. => LinkedList 또는 ArrayList로 객체를 만든다. 삽입 삭제시 배열 크기 재 조정때문에 추가 비용 및 연산이 발생. 그리고 공간 비효율성과 배열의 재배치가 일어남. LinkedList로 만드는 상황 처음, 중간 데이터 추가 삭제할 경우 LinkedList의 remove 함수 설명을 보면 '빈 공간을 채울 필요가 없다'고 되어있다. 삭제하고 싶은 원소를 null로 변경하기만 하면 되기때문에 매우 효율적이다. 빠르다. ArrayList로 만드는 상황 순차..
Collection - Stack 바구니, 쌓인다, Stack 자료구조에 대해 복습해보고자 한다. 자료를 넣으면 하나씩 쌓인다, 자료를 빼면 맨 마지막에 덮힌것이 빠진다 Last In First Out 사용하는 이유? 최근 저장된 데이터를 나열하고 싶을때, 데이터의 중복처리를 막고 싶을때. Method .push() .peek() .pop() 항상 공식 문서를 확인하고 정확한 명칭을 기억하려 노력하자 https://docs.oracle.com/javase/8/docs/api/java/util/Stack.html Stack (Java Platform SE 8 ) The Stack class represents a last-in-first-out (LIFO) stack of objects. It extend..