분류 전체보기 346

[AI/Concepts] 07. Optimization

최적화 및 탐색 알고리즘 개요최적화 (Optimization)정의: 가능한 여러 옵션 중에서 최선의 옵션을 선택하는 것.문제 해결 도구: 비용을 최소화하는 방법을 찾는 것 등 더 넓은 범위의 문제 해결.탐색 문제: 최선의 방법을 찾는 문제.탐색 방법: 그 중 하나로 지역 탐색이 있음.지역 탐색 (Local Search)정의: 단일 노드를 유지하고 인접 노드로 이동하여 탐색하는 알고리즘.미로 해결과의 비교:미로: 목표까지 가장 빠른 경로를 찾음.지역 탐색: 질문에 대한 최선의 답을 찾는 데 중점.특징:종종 최적의 답을 찾지는 못하지만, "충분히 좋은" 답을 찾아 계산 자원을 절약함.예시: 병원 위치 선정평가 기준: 이동 거리를 비용(cost)으로 사용.현재 결정의 평가 기준: 현재 decision이 얼마나..

AI/Concepts 2024.11.19

[AI/Concepts] 06. Uncertainty

AI Concepts불확실성 (Uncertainty)현실에서는 인공지능이 세계에 대한 부분적인 지식만을 갖고 있기 때문에 불확실성(uncertainty)이 존재합니다.이러한 상황에서도 우리는 인공지능이 가능한 최선의 결정을 내리길 바랍니다.예측 (Prediction)내일 날씨를 100% 정확하게 예측할 수 있는 방법은 없지만, 우리는 최선의 방법을 찾으려 합니다.강수확률: 확률로 표현되며, 이는 불확실성을 나타냅니다.Uncertainty: Likelihood를 숫자로 표현Probability: 특정 사건이 일어날 확률우연?불확실성은 여러 사건과 각각의 사건의 수, likelihood, probability로 나타낼 수 있습니다.Likelihood: 사건들을 설명할 수 있는 통계 모델Probability:..

AI/Concepts 2024.11.19

[AI/Concepts] 05. Knowledge

AI Concepts지식 (Knowledge)인간은 기존의 지식(existing knowledge)을 바탕으로 추론하여 결론을 도출(draw conclusion)합니다.Reason: Thinking rationally사고과정이 knowledge에 기반하여 이루어진다.지식을 표현하고 그로부터 결론을 도출하는 개념은 인공지능(AI)에서도 사용됩니다.지식 기반 에이전트 (Knowledge-based Agents)지식의 내부 표현을 바탕으로 추론하는 에이전트."지식을 기반으로 추론하여 결론을 도출한다 (“reasoning based on knowledge to draw a conclusion)”의 의미는 무엇인가요?예시: 해리 포터 사례비가 오지 않았다면, 해리는 오늘 해그리드를 방문했다.해리는 오늘 해그리드나..

AI/Concepts 2024.11.19

[Spring MVC] 03. 서블릿, JSP, MVC 패턴

03. 서블릿, JSP, MVC 패턴#Spring/MVC1. 서블릿으로 HTML 동적으로 제공하기서블릿으로 회원 등록 HTML 폼을 제공response.setContentType("text/html");response.setCharacterEncoding("utf-8");PrintWriter w = response.getWriter();w.write("")...자바 코드로 HTML을 제공해야 하므로 쉽지 않은 작업이다. 너무 불편하다회원 데이터가 저장memberRepository.save(member);response.setContentType("text/html");response.setCharacterEncoding("utf-8");PrintWriter w = response.getWriter();...

Spring/MVC 2024.11.19

[Spring MVC] 02. 서블릿

02. 서블릿#Spring/MVC스프링 부트 서블릿 환경 구성스프링 부트는 서블릿을 직접 등록해서 사용할 수 있도록 @ServletComponentScan 을 지원ㅇ한다.서블릿 등록인텔리제이에서 ctrl + o로 오버라이딩 할 수 있는데, 자물쇠 잠겨있는 service(protected)를 오버라이딩해주자. 서블릿이 호출되면, 서비스 메서드가 호출된다.@WebServlet 서블릿 애노테이션name: 서블릿 이름urlPatterns: URL 매핑HTTP 요청을 통해 매핑된 URL이 호출되면 서블릿 컨테이너는 다음 메서드를 실행한다.protected void service(HttpServletRequest request, HttpServletResponse response)HttpServletRequest,..

Spring/MVC 2024.11.19

[Spring MVC] 01. Web Application의 이해

01. Web Application의 이해#Spring/MVCWeb - HTTPHTTP 메시지에 HTML, TEXT, IMAGE, JSON,…. 거의 모든 형태의 데이터를 전송한다.서버간에 데이터를 주고 받을 때도 대부분 HTTP를 사용한다.웹 서버기본적으로 정적 리소스를 제공하고, 기타 부가 기능을 제공한다.정적(파일) HTML, CSS, JS, 이미지, 영상ex) NGINX, APACHE웹 애플리케이션 서버(WAS - Web Application Server)웹 서버 기능을 포함하고, 정적 리소스 제공 기능도 가지고 있다.프로그램 코드를 실행해서 애플리케이션 로직 수행동적 HTML, HTTP API(JSON)서블릿, JSP, 스프링 MVC예) 톰캣(Tomcat) Jetty, Undertow웹 서버 v..

Spring/MVC 2024.11.19

[클린 코드] #4 주석

클린 코드 #4 주석#클린코드잘 달린 주석은 정말 유용하지만, 잘못 달린 주석은 독이다.우리가 코드를 잘 짰다면 사실 주석은 거의 필요가 없다. 코드로 의도를 표현하지 못해서 주석을 사용하는 것이다.주석은 오래될 수록 코드에서 점점 멀어진다. 코드를 유지보수하면서 주석까지 유지 보수하기는 현실적으로 불가능하다. 점점 더 주석과 코드가 분리되버린다.주석을 엄격하게 관리해야 하지만, 코드를 깔끔하게 정리하는 대에 더 많은 신경을 쓰는게 좋다.코드만이 진실을 이야기한다.주석은 나쁜 코드를 보완하지 못한다.난장판을 주석으로 표현하지 말고, 난장판을 치우는데에 시간을 써라.코드로 의도를 표현하라.조금만 더 생각하면 코드로 대다수 의도를 표현할 수 있다. 주석으로 달려는 설명을 차라리 함수로 만들어서 표현해도 충분..

[우테코/프리코스] Week2. 2주차 프리코스 회고

목표 1. Clean Code 작성하는 습관우테코 프리코스를 통해서 우선 코드를 작성하는 좋은 습관을 들이고 싶었다. 우테코 깃허브에 있는 PR전 체크리스트에 있는 내용을 종종 확인하면서 안좋은 습관들을 버리려고 노력을 하고 있다. 일급 컬렉션, 원시값 포장 같은 처음 들어봤던 내용들을 찾아 공부해보고, 학교 도서관에서 클린 코드 책을 빌려서 틈틈히 읽고 있다. 목표 2. 자바 기본기 다지기그리고 자바 기본기를 다시 한 번 탄탄하게 해보고 싶었다. 우테코 프리코스 미션을 하면서 콘솔에서 주어진 문자열 파싱을 하거나, 여러 컬렉션을 사용하게 되었다. 그러다보니 확실히 부족하고 익숙치 않은 부분들에서 많이 배우고 있고, 개인 블로그를 통해서 공부한 내용을 따로 정리하고 있다. 알고 있다고 생각했지만 모르는 ..

[JPA] 엔티티 매핑

엔티티 매핑#Spring/DB/JPA/기본엔티티 매핑에 사용하는 대표적인 애노테이션은 다음과 같다.객체와 테이블 매핑 : @Entity, @Table필드와 칼럼 매핑 : @ColumnPK 매핑 : @Id연관관계 매핑 : @ManyToOne, @JoinColumn객체와 테이블 매핑@Entity@Entity가 붙은 클래스는 JPA가 관리, 엔티티라 한다.JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 필수주의기본 생성자 필수(파라미터가 없는 public 또는 protected 생성자)JPA에서 reflection, proxy 등의 기술을 사용하기 때문에 기본 생성자가 필요하다.final 클래스, enum, interface, inner 클래스 사용X저장할 필드에 final 사용 X@Entity 속성..

Spring/JPA 2024.11.08

[Java] 21. 열거형 - ENUM

열거형 - ENUM#Java열거형이 생겨난 이유문자열로 처리에피소드 : 고객은 3등급으로 나누고, 상품 구매시 등급별로 할인을 적용한다. 할인시 소수점 이하는 버린다.BASIC 10% 할인GOLD 20% 할인DIAMOND 30% 할인만약 if문을 통해서 구현한다면public int discount(String grade, int price) { int discountPercent = 0; if (grade.equals("BASIC")) { discountPercent = 10; } else if (grade.equals("GOLD")) { discountPercent = 20; } else if (grade.equals("DIAMOND")) { discountPercent = 30; } els..