TIL 44

IoC와 DI

IoC (Inversion of Control) : 제어의 역전, 설계원칙DI (Dependency Injection) : 의존성 주입, 디자인패턴 비슷한 기능을 하는 객체로 변경을 하는 경우!강하게 결합되어 있다면 의존하는 객체의 코드도 수정이 되어야 한다그러나 비슷한 기능을 하는 객체들을 Interface로 묶어준다면?-> Interface의 객체를 사용하여 새로 추가된 객체라도 코드 수정이 간단해진다 DI를 통한 IoC의존성 주입을 통한 제어의 역전 강한결합/* 강한 결합 */public class Consumer { void eat() { Chicken chicken = new Chicken(); chicken.eat(); } public static ..

TIL 2024.08.14

프로그래머스 코딩테스트연습 133499 '옹알이 (2)'

https://school.programmers.co.kr/learn/courses/30/lessons/133499 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 설명머쓱이는 태어난 지 11개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음과 네 가지 발음을 조합해서 만들 수 있는 발음밖에 하지 못하고 연속해서 같은 발음을 하는 것을 어려워합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요...

TIL 2024.08.13

Spring Boot MVC Controller @Controller 와 @RestController

@RestController를 사용하면 해당 클래스의 모든 Method에 @ResponseBody Annotation이 부여된다@Controller의 클래스에서 내부 Method에 @ResponseBody가 붙어 있는 것과 같다 ControllerHTTP Response@ResponseBodyReturn TypeReturn ValueHeaderBodyXString"{View name}"Content-Type: text/htmlView (HTML)의 text 내용 타임리프 기준/templates/{View name}.html"redirect:/{redirect URL}"Location:{Host URL}/{redirect URL}XOString"{Text}"Content-Type:text/html"{Tex..

TIL 2024.08.12

240809

Spring 강의 학습노트 정리 Server란 무엇인가?네트워크여러대의 장비가 서로 연결되어 정보를 주고받는 기술 Client와 ServerClient는 Server의 IP주소로 요청을 보냄 IP Adress (Internet Protocol)IP (192.168.***.***)port (8080, ...) Web ServerClient의 용청에 응답하는 일종의 컴퓨터Web Server가 요청을 받으면 HTTP Response를 통해 데이터를 브라우저에 전송 API (Application Programming Interface)일종의 "약속", 서로 다른 Application이 정해진 방식의 API 요청을 수행하면 정해진 결과물을 반환 RESTful API (Representational State Tr..

TIL 2024.08.09

240808

프로그래머스 모의고사 문제 바로가기 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr우선은 문제 해결을 목표로 하고좀 더 효율적인 코드는 이 후에 생각하는 방식으로 진행하고 있다아래 코드로 작성을 했는데 논리적으로 어디가 잘못됐는지 모르겠는데10, 11, 12 케이스에서 실패를 했다import java.util.*;class Solution { public int[] solution(int[] answers) { int[] answer = {}; int[] stu1 = {1, 2, 3, 4, 5}; int[] stu2 ..

TIL 2024.08.08

240807

내일배움캠프 4주차두번째 팀프로젝트가 끝나간다 기본세팅 되어있는 프로젝트로 시작을 했고코드 분석에 충분히 시간을 썼는데도고려하지 못했던 부분이 있어서 어려움을 겪었다 기능 구현을 우선으로 두고 진행을 했더니중간에 객체 나누는 것을 적용하면서 코드 구조를 다 바꿔야 했다이미 작성된 코드도 많았고 각자 작업을 나눠서 개발을 했기때문에서로 사용하는 메소드들이 다 얽혀있어서 수정이 쉽지 않았다 구조를 바꾸면서 에러가 나는 부분을 고치다가답이 없는것 같아서 아예 다 밀고 새로 작성했다(구현이 어려운 프로젝트가 아니라 다행..)네시간정도 소요됨.. 프로젝트 진행 시 기획단계에서 꼭 체크해야 할 부분1. 객체지향 구조 (Static을 쓰지 않고 각 클래스를 객체로 생성하여 쓸것)2. 기능 세분화 (하나의 method..

TIL 2024.08.07

240805

내배캠 4주차! 아좌잣! 가보자고! IntelliJ의 *.iml(IntelliJ 모듈)파일 때문에 일부 로컬에서 실행이 되지 않는 상황이 발생했다명확한 에러메세지를 띄워주지는 않고 다음과 같은 상황이 반복됐다프로그램 실행시 분석중 로딩이 끝나지 않음한번은 정상실행 되지만 이후 RUN버튼이 비활성화됨캐시를 지우면 실행 가능 (한번 실행 후 다시 실행되지 않음).gitignore 파일에 ".iml" 설정을 하지 않아서push를 하는 과정에서 각 로컬의 iml파일이 모두 Github에 업로드 되었고pull을 하게 되면 iml파일이 여러개가 되면서 충돌이 일어나는 현상 우선 Github에 업로드된 iml파일을 모두 삭제하고 .gitignore에 설정을 추가해줬다*.iml이 과정에서 iml파일이 없는 상태를 pu..

TIL 2024.08.05

240802

팀프로젝트 3일차기본 기능 구현이 완료되어 1차 code formatting을 진행했다개발할때는 문제 없지만 개발이 완료된 시점에서는 꼭 해주는 것이 좋다마지막 제출전에도 주석과 출력을 전체적으로 점검할 계획 이중맵을 사용하면서 어려움이 있었다// 구조 -> Map>// 기능 -> 점수 인스턴스 등록// 내가 생각한 로직if(scoreStore.get(studentId).get(subjectId) == null){ scoreStore.put(...,new Score(...));}// 결과 -> ERROR!// 점수를 등록한 적이 없다면 get(studentId)에서 이미 null이기 때문에 오류가 난다// 수정한 로직if (!scoreStore.containsKey(studentId) || !sco..

TIL 2024.08.02