TIL 27

[TIL] 최대공약수(GCD)와 최소공배수(LCM) 효율적으로 구하기 (JAVA)

오늘의 데일리 루틴 문제는 '최대공약수와 최소공배수'이다.https://school.programmers.co.kr/learn/courses/30/lessons/12940 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 내가 아는 최대공약수, 최소공배수 구하는 방식을 적용해서 풀어보았는데, 아무리 생각해도 좀 유치한가 싶기도하고, 분명 이것보다 더 효율적인 방법이 있을텐데..하는 찝찝한 마음을 떨쳐버릴 수가 없어서 정보를 찾아보았다. 아래는 내가 초기에 작성한 코드이다.초등학생이 최소공배수, 최대공약수 구하듯이 한땀한땀 정성스럽게 비교해가며 구한다.최소공배수는 브루트 포스를 사용했는데, 수를 하나씩 넣어..

TIL/JAVA 2024.11.08

[TIL] 왜 2차원 배열은 '열(colum)'의 개수를 명시하지 않고도 초기화가 가능할까? (JAVA)

오늘 문제 풀이를 하면서 2차원 배열을 사용할 일이 있었는데, 문득 2차원 배열이 '열'을 초기화하지 않고도 사용할 수 있는 이유가 궁금해졌다. 아직 이 의문이 완전히 해소된건 아니지만, GPT와의 열띤 토론으로 도출해낸 나만의 생각을 정리해본다.  어디까지나 추측이라 흐지부지 끝남 주의..오류 정정은 언제나 환영이다!!! 제발...일단 JAVA에서는 2차원 배열을 선언할 때, '행'의 개수만 초기화해도 된다.// 행의 개수만 지정하여 2차원 배열 선언int[][] array = new int[3][];// 각 행의 열의 개수를 개별적으로 초기화array[0] = new int[4]; // 첫 번째 행에 4개의 열 할당array[1] = new int[5]; // 두 번째 행에 5개의 열 할당array[..

TIL/JAVA 2024.11.08

[TIL] Fetch를 활용한 웹 통신(+ GET & POST)

🟡 Fetch API란?Fetch API는 JavaScript에서 HTTP 계층에서의 요청과 응답을 처리하고 조작할 수 있도록 하는 인터페이스를 제공한다. 🟡  Fetch의 기본 사용법1. GET 방식    기본적으로 GET 방식을 사용한다.fetch("URL 입력") // 웹 통신 요청을 보낼 URL.then(res => res.json()) // 통신 요청을 받은 데이터는 res라는 이름으로 JSON화.then(data => { ...//서버로부터 받은 데이터 처리}) // JSON 형태로 바뀐 데이터에 따로 변수명을 붙여 사용(여기서는 data)2. POST 방식fetch('API url', { //요청을 보낼 url 입력 method: 'POST', //요청 방식을 POST로 설정 hea..

TIL/네트워크 2024.11.04

[TIL] 인터페이스 - 다중 상속 (JAVA)

드디어 다형성 부분을 끝냈다. 추상 클래스, 순수 추상 클래스, 인터페이스 등 여러 흥미로운 내용을 학습했다. 오늘은 그중에서도 가장 인상 깊었던 '다중 상속'에 대해 정리해보겠다. JAVA의 상속을 공부할 때 'JAVA는 다중 상속을 지원하지 않는다.' 라고 배웠었다.그런데 이제 와서 다중 상속(구현)이 된다니 이게 무슨 소린가 싶었다. 🫠(정말 흥미로워..)차근차근 알아보도록 하자.1. 다이아몬드 문제자바에서 `extends` 대상은 단 하나로 제한된다. 즉, 자식은 하나의 부모만 선택할 수 있다.아래 그림과 같은 경우는 금지된다.위 그림과 같이 Child가 다중 상속을 사용한다고하자. 또한 부모 클래스 모두 순수 추상 클래스가 아니라고 가정한다.Child는 부모로부터 sing()이라는 기능을 호출..

TIL/JAVA 2024.10.30

[TIL] static 메서드에서 인스턴스 기능을 사용할 수 없는 이유

강의에서 정적 메서드가 인스턴스의 기능을 사용할 수 없는 이유를 다음과 같이 설명했다.'인스턴스의 기능을 사용하려면 참조값을 알아야한다. 하지만 정적 메서드는 참조값 없이 호출되기 때문에 인스턴스의 기능을 사용할 수 없다.' 음... 두 번째 줄이 어딘가 잘 이해가 가지 않았다.🤔  강의도 반복해서 듣고, 여기저기 검색해본 뒤 나름의 결론을 아래에 다시 정리해보았다.🟡 일반적으로 static메서드에서는 인스턴스 메서드와 인스턴스 변수를 사용할 수 없다.이유는 static 메서드와 인스턴스의 '생성 시점'이 다르기 때문이다.static 메서드/변수JVM이 .class 파일을 메모리에 올릴 때 생성. 즉, 프로그램 실행 시 메서드 영역에 생성된다.인스턴스 메서드/변수`new` 연산자로 생성자를 호출했을 ..

TIL/JAVA 2024.10.29

[TIL] #0 새로운 시작

나는 어떤 히스토리를 가지고 Spring 트랙에 참여하게 되었나요?원래는 교사를 목표로했지만, 현장실습도 나가보고, IT 쪽도 복수전공하면서 뒤늦게 개발자가 적성에 더 잘 맞는다는 것을 깨닫고 준비를 시작했습니다.본 코스 수료 후, 어떤 백엔드 개발자 혹은 원하는 직무로 성장하고 싶나요?'단 한 줄의 코드라도 나만의 철학을 담아내는 개발자'단순히 기능만 구현해내는 코더가 아닌, 항상 더 나은 방향을 고민하고 때로는 창의적인 방법도 제시할 수 있는 개발자가 되고싶습니다.그 외에 내일배움캠프에 기대하는 것이 있다면 자유롭게 작성해 주세요.가장 큰 목표는 전체적인 개발의 흐름을 경험하는 것뜻이 맞고, 같은 고민을 하고 있는 동료들과 함께 성장하는 것대학 시절 친구들과 '다같이 과탑하기'를 목표로 전공스터디를 ..

TIL 2024.10.28

[TIL] #1 스타터 노트

내가 내일배움캠프에 참여한 계기는 무엇인가요?졸업 후 뒤늦게 백엔드 개발자가 되기로 마음을 먹고 부랴부랴 공부를 시작했습니다. 본격적으로 독학을 시작하기 전 여러 백엔드 개발자 로드맵을 찾아보았지만 사람마다 이야기가 다르고, 또 처음 들어보는 낯선 용어들 때문에 많은 혼란을 겪었습니다.그래도 일단 'JAVA' 와 'Spring'을 많이 사용한다고 하길래 무작정 공부를 시작했습니다. 한 달.. 두 달.. 시간은 흐르는데 낯선 길은 혼자 걸어가려다 보니 진도는 더뎠고, '이것만 하면 되는건가?', '포트폴리오가 중요하다던데 프로젝트는 어떻게 하는거지?' 등등 불안감만 커져갔습니다.그러던 중 '내배캠'을 알게 되었고, 이곳에서라면 '개발자가 되기위해 무엇을 준비해야하고, 팀 프로젝트는 어떻게 해야하는지' 등 ..

TIL 2024.10.28