전체 글 67

상속과 다형성 예제로 이해하기

상속 class의 access modifier : public 또는 [생략]만 가능하다. private, protected 사용 불가. 기본 생성자 : 객체가 생성되는 시점에만 할 일이 있을 때 사용한다. final : 재정의 불가. class Person { // class의 access modifier는 public 또는 [생략]만 가능하다. private, protected 사용 불가. String name; // 제한자를 private으로 두면 다른 곳에서 쓸 수 없기 때문에 get, set을 사용한다. int age; /* 기본 생성자 : 객체가 생성되는 시점에만 할 일이 있을 때 e.g. member field에 있는 변수들을 초기화할 때 */ public Person() { this.name..

카테고리 없음 2023.09.06

[Spring] DI(Dependency Injection)

정의 DI는 의존성 주입이라고 번역할 수 있다. 여기서 의존성이란 무엇일까? 의존성 예를 들어, 회원 가입을 처리하는 기능을 구현한다고 해보자. Service 클래스에서 DAO 객체의 메서드를 이용해서 동일 이메일을 가진 회원이 있는 지 확인한다. 만약 같은 이메일이 있다면 예외를 발생시킨다. 결론적으로, 한 클래스에서 다른 클래스의 메서드를 실행할 때 의존하는 것을 볼 수 있다. 따라서, Service 클래스가 DAO 클래스에 의존한다고 표현할 수 있다. DI를 통한 의존 주입은 객체 직접 생성 대신 의존 객체를 전달받는 방식을 사용한다. 그렇다면 왜 직접 생성하지 않고 굳이 생성자를 통해 의존하는 객체를 주입할까? 유지보수 관점 의존 객체 직접 생성 public class MemberRegisterS..

카테고리 없음 2023.09.06

[Algorithm] 백준 문제 풀이

Naver Blog Posting Migration 작성일 : 2022.12.16 17:37 원문 https://blog.naver.com/parkyl0208/222957606819 PYL : 네이버 블로그 당신의 모든 기록을 담는 공간 blog.naver.com 1000번 a, b = map(int, input().split()) print(a+b) map 함수 10869번 a, b = map(int, input().split()) print(a+b) print(a-b) print(a*b) print(int(a/b)) print(a%b) 결과가 정수이므로 print시 int로 type casting 18108. y = int(input()) print(y-543) int 입력 3003번 chess = ..

카테고리 없음 2023.08.28

[OpenCV] 앱 개발 일지

Naver Blog Posting Migration 작성일 : 2022.11.7 10:08 원문 https://blog.naver.com/parkyl0208/222922079176 OpenCV 앱 개발 일지 (수정 중) 221107 Mon 저번주 주말 Kakao Oven으로 UI 설계, Notion으로 작성한 기능 명세서를 바탕... blog.naver.com 221107 Mon 저번주 주말 Kakao Oven으로 UI 설계, Notion으로 작성한 기능 명세서를 바탕으로 본격적으로 코드로 구현 시작. Andriod Studio에서 Flutter로 개발 예정. Dart SDK, gradle version 환경 설정 해결 완료. Do IT 플러터 앱 프로그래밍 책으로 플러터 내부 구조 및 위젯 파트 개념 ..

Project 2023.08.09

[프로그래머스] 방금 그 곡 Java

입력 파싱, m을 musicinfo의 melody에서 찾기 -> 이렇게 하면 불필요하게 한 번 더 돌아야 한다. musicinfo의 melody를 m에서 찾기. import java.util.Arrays; class Solution { public static String solution(String m, String[] musicinfos) { String answer = ""; // 0. 파싱하기 // musicinfos를 시작 시간, 끝나는 시간 / 노래 제목 / 멜로디 int len = musicinfos.length; int[] time = new int[len]; String[] title = new String[len]; String[] melody = new String[len]; for(..

Algorithm 2023.08.01

[프로그래머스] 캐시

https://school.programmers.co.kr/learn/courses/30/lessons/17680 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코딩테스트 연습 > 2018 KAKAO BLIND RECRUITMENT > [1차] 캐시 후기 네 시간 동안 이 문제를 붙잡고 있었는데 결국은 ArrayList으로 간단하게 해결했다. 문제를 어렵게 푸는 경향이 있는 것 같다. 왜인지 1차인데 어렵다 했다. LRU를 이중 연결 리스트로 구현한다는 접근 방식에서 삽질을 했던 것 같다. ArrayList의 remove의 쓰임을 새롭게 알게 됐다. 처음..

Algorithm 2023.07.18

EC2 서버에 올라간 Spring Boot와 React 연동 시 CORS 설정

CodeStates Project team 3 Backend 에러 및 해결 에러 EC2 서버에 올라간 Spring Boot와 React 연동 시 CORS 설정 해결 React에서 package.json에 프록시 설정 npm i http-proxy-middleware 로 라이브러리 설치 setProxy.js 에 코드 추가 "proxy": "[]", const { createProxyMiddleware } = require("http-proxy-middleware"); module.exports = function (app) { app.use( createProxyMiddleware("/api/v1", { target: "http://localhost:8082", changeOrigin: true, }) )..

Project 2023.07.13

[코드스테이츠] Day07 BE

To do aws 프리티어 계정 가입 - RESTful하게 개발 - CSR : client 측에서 rendering하는 것. Spring Security 크게 두 가지 역할을 수행/자동화 해준다. 인증(Authentication) - 로그인 인가(Authorization) - 네이버 카페(인증된 ‘나’라는 객체가 행동할 수 있는 권한을 체크한다.) Business Logic에만 집중할 수 있도록 함. Security 동작 원리 filter : 특정 신호에서 원하지 않는 신호를 차단하거나 원하는 신호만을 통과하게 하는 과정. step 1. step 1.3. Filter step 1.5. Dispatcher Servlet step 2. presentation layer client : front 단에서 만든..

TIL 2023.07.05

[코드스테이츠] Day06 BE

학습 목표 Blog API 개발 H2(DB) - in memory Spring data JPA 실습 안내 새 프로젝트를 만들고, Blog API, JPA를 실습한다.(H2 DB 사용) 1차시(실습) 새 프로젝트 만들기(dependencies 추가) 2차시(개념) JPA Java Persistence(DB와 관련) API DB 통신을 할 때 DB에서는 query 방식을 권장한다. ORM(Object Relational Mapping) Framework Spring Boot로 만든 Application ↔ DB와 통신 directly하게 통신하지 않고 Hibernate를 통해서 JDBC를 해석한다. e.g. MySQL을 PostgreSQL[포스트그레스큐엘]로 바꿀 때 유지보수성 향상. JPA는 원론적인 기술..

TIL 2023.07.03