전체 글 42

SOLID : 객체 지향 설계 5원칙

"SOLID"는 소프트웨어 개발에서 사용되는 객체 지향 프로그래밍과 설계의 원칙들을 가리키는 약어로 아래와 같다. SRP(Single Responsibility Principle): 단일 책임 원칙 OCP(Open Closed Priciple): 개방 폐쇄 원칙 LSP(Listov Substitution Priciple): 리스코프 치환 원칙 ISP(Interface Segregation Principle): 인터페이스 분리 원칙 DIP(Dependency Inversion Principle): 의존 역전 원칙 Single Responsibility Principle (SRP): 각 클래스는 하나의 책임만을 가져야 합니다. 이 원칙은 클래스가 변경되어야 하는 이유가 하나만 있어야 함을 의미합니다. SRP..

Backend 2023.05.12

정규식 알아보기

https://school.programmers.co.kr/learn/courses/30/lessons/72410 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 위 문제를 풀면서 정규식으로 풀면 되겠다라는 건 생각할 수 있었지만, 정규식으로 표현할 수가 없어 검색을 하여 문제를 해결하였다. 이 참에 정규식에 대해서 자세히 알아보면 좋을 듯하여 글을 정리하여 보았다. 더보기 정규표현식은 다음과 같은 구성 요소로 이루어져 있습니다: 리터럴(Literal) 문자: 일반 문자들은 자신과 정확히 일치하는 문자를 찾습니다. 예를 들어, 'abc'라는 패턴은 'abc..

Java 2023.04.28

openApi 활용(4) : servlet redirection, GeoLocation, 버튼 구현

지난 글에서 java 코드로 DB 연결을 성공하였고, 이번 글에서는 web application에서 DB에 접근하고, 가까운 거리 순으로 wifi 위치를 표시하기 위해서 client의 공인 ip를 확인하고, ip 기반으로 GeoLocatin api를 사용해 위도,경도로 변경하여 저장하였다. openApi 활용(3) DB 연동하기 지난 글에서 Gson 라이브러리를 사용해 get 호출로 받은 Json 데이터를 파싱하여 객체에 저장하였다. 이번 글에서는 MariaDB를 사용하여 java에서 객체를 데이터베이스를 저장한다. 1. DB 시스템 구성(Ma myu7769.tistory.com 리다이렉션으로 DB에 저장하기 jsp 파일에서 servlet 리다이렉션을 하여 init() 단계에서 전체 wifi 객체 를 g..

Backend 2023.04.17

openApi 활용(3) DB 연동하기

지난 글에서 Gson 라이브러리를 사용해 get 호출로 받은 Json 데이터를 파싱하여 객체에 저장하였다. 이번 글에서는 MariaDB를 사용하여 java에서 객체를 데이터베이스를 저장한다. 1. DB 시스템 구성(MariaDB) MariaDB를 로컬에 기본 port, localhost:3306으로 구성하였으며, test 계정을 생성하고, 권한을 부여하였다. use mysql; SELECT HOST, USER, PASSWORD FROM USER; CREATE USER '아이디'@'%' IDENTIFIED BY '비밀번호'; create user 'test'@'localhost' identified by 'password'; -- 사용자 권한 주기 GRANT ALL PRIVILEGES ON 데이터베이스.*..

Backend 2023.04.16

openApi 활용(2) : gson

Gson은 Google에서 개발한 Java 기반의 라이브러리로, JSON 데이터와 자바 객체 간의 직렬화와 역직렬화를 수행하는데 사용됩니다. Gson은 JSON 데이터를 파싱하고, JSON 문자열을 자바 객체로 변환하고, 자바 객체를 JSON 문자열로 변환할 수 있습니다. Gson은 매우 간편하고 유연한 API를 제공하여 사용자가 JSON 데이터와 자바 객체 간의 변환을 쉽게 수행할 수 있습니다. Gson은 JSON 데이터에 대한 파싱을 수행하면서 예외를 처리하고, 개발자가 원하는 방식으로 오류를 처리할 수 있도록 해줍니다. Gson은 다른 라이브러리와의 통합도 용이하며, JSON 데이터와 자바 객체 간의 변환을 자주 수행하는 애플리케이션에서 매우 유용합니다. Gson은 오픈소스로 공개되어 있으며, 라이..

Backend 2023.04.11

openApi 활용(1) : okhttp3 사용해보기

Open API는 다른 소프트웨어 애플리케이션에서 사용할 수 있는 인터페이스를 제공하는 소프트웨어 API입니다. 오픈 API는 웹 애플리케이션, 모바일 애플리케이션 등에서 많이 사용됩니다. 개발자가 애플리케이션에서 제공하는 서비스에 대한 다른 사용자 또는 시스템이 접근할 수 있도록 하기 위해 사용됩니다. Open API는 다양한 형태로 제공됩니다. RESTful API, SOAP API 등이 있습니다. Open API를 사용하면 다른 애플리케이션에서 데이터를 가져오거나 기능을 수행할 수 있습니다. 예를 들어, 공공기관에서 제공하는 지하철 시간표, 날씨 정보 등의 데이터를 Open API로 제공하여 다른 애플리케이션에서 이용할 수 있도록 합니다. 이러한 Open API는 애플리케이션 개발자들이 쉽게 활용할..

Backend 2023.04.11

[Linux] Shell script 기초

Shell 스크립트는 쉘(shell)에서 실행되는 명령어들을 순차적으로 나열한 프로그래밍 스크립트입니다. 쉘은 사용자와 컴퓨터 시스템 간의 인터페이스로, 텍스트 기반의 명령어를 사용하여 시스템을 제어하고 작업을 수행할 수 있습니다. 대표적인 쉘로는 Bash, Zsh, Ksh, Csh 등이 있습니다. Shell 스크립트는 주로 시스템 관리, 자동화, 배치 작업 등에 사용되며, 명령어들을 조합하여 복잡한 작업을 간단하게 처리할 수 있습니다. Shell 스크립트는 변수, 조건문, 반복문, 함수 등의 프로그래밍 요소를 포함할 수 있어 효율적인 작업 수행이 가능합니다. Shell 스크립트는 텍스트 파일로 작성되며, 파일 확장자는 주로 .sh를 사용합니다. 스크립트를 실행하려면 실행 권한을 부여한 뒤 쉘 환경에서 ..

카테고리 없음 2023.04.09

[알고리즘] 04/06 알고리즘 공부

종합 시험이 있어 건네 받은 문제 은행을 토대로 DP, Greedy, Divide and Conquer, Master 정리, P,NP,NP-complete,NP-Hard, 정지 문제에 대해 공부한 내용으로 정리하였다. DP(Dynamic Programming, 동적 계획법) - 큰 문제를 작은 문제로 나누어 푸는 최적화 기법 - 중복되는 부분 문제가 존재하고, 이를 한번만 계산하고 결과를 저장해둠으로써 중복 계산을 줄임 - Memoization(메모이제이션) 기법을 사용하여 이미 계산된 값을 저장해둠 - 예시: 피보나치 수열, 최장 증가 부분 수열(LIS) 등 Greedy Algorithm(탐욕 알고리즘) - 각 단계에서 지금까지의 선택이 전체적인 결과를 만족시키는 최적해가 되는 방식 - 각 선택마다 최..

Java 2023.04.07

[java] 프로그래머스 : 등굣길

https://school.programmers.co.kr/learn/courses/30/lessons/42898 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 접근법 : n,m으로 DP 배열(n+1, m+1)을 만들고 웅덩이는 루트 계산에서 빼기 위해 0으로 처리해 경로 계산을 해준다. dp[i][j] += (dp[i-1][j]+dp[i][j-1]) 의 의미는 왼쪽에서 오는 경우와 위쪽에서 오는 경우를 합친 경우의 수이다 class Solution { public int solution(int m, int n, int[][] puddles) { i..

Java 2023.04.04

[java] 프로그래머스 : 정수 삼각형

https://school.programmers.co.kr/learn/courses/30/lessons/43105?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 접근법 : DP 메모이제이션 방법으로 위에서부터 아래로 가면서 좌,우의 큰 값과 해당 위치에 triangle[x][y]를 더해줘 가장 마지막 줄에 맥스값을 리턴해준다. package programmers; public class lesson_43105 { public static void main(String[] args) { lesson_43105.Solution ..

Java 2023.04.04