It's going to be one day 🍀

안녕하세요! 매일 매일 공부하려고 노력하는 백엔드 개발자 지망생의 공부 흔적입니다.

전체 글 134

[자료구조] 정렬

버블 정렬- 첫 번째 for문을 하나의 루프라고 생각해야됨. 첫 번째 루프(i)에서 가장 큰 범위가 뒤로 이동하므로 두 번째 for문에서는 비교 범위에서 제외해야함. 그래서 범위를 N-1-i로 설정함.- 로직을 생각하긴했는데 하나의 루프를 여러번 반복할 때 가장 큰 범위를 제외시켜야한다는 조건을 생각하지 못했다.import java.io.*;import java.util.StringTokenizer;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); in..

[Spring] API와 REST API/MyBatis 블로그 만들기 실습 정리

API : (Application Programming Interface) : 프로그램간에 상호작용하기 위한 매개체 API는 클라이언트의 요청을 서버에 잘 전달하고, 서버의 결과물을 클라이언트에게 잘 돌려주는 역할을 한다, -> HTTP 프로토콜을 사용하여 클라이언트와 서버 간의 통신을 하기 위한 인터페이스 REST API : 이해하기 쉬운 URL로 설계를 한 API 장점) - URL만 보고도 무슨 행동을 하는 API인지 명확하게 알 수 있다. - 상태가 없다는 특징이 있어서 클라이언트와 서버의 역할이 명확하게 분리된다. - HTTP 표준을 사용하는 모든 플랫폼에서 사용할 수 있다. 단점) - GET, POST와 같은 방식의 개수에 제한이 있다. REST API를 사용하는 방법 규칙1 : URL에는 동사..

Back-End/Spring 2024.03.11

[spring] 강의 중 개념 정리 (외부)

spring의 기본 역할 1) @RestController, @Controller, @Service, @Repository, @Component, @Bean... 이런 어노테이션을 달아놓은 클래스들에 대해서는 spring이 대신 new 해서 만들어줄 것이다. 이때 범위를 알려주는 것 : 컴포넌트 스캔 2) 1번을 통해 만들어놓은 인스턴스들을 필요한 사람이 손들어서 요청하면 내가 전달해줄 것이다. DI - @Autowired, 생성자를 통해 선언을 하거나, setter method를 통해 선언하면 spring이 해당 인스턴스(=빈)을 찾아서 꽂아준다. 실습 코드로 예를 들어보면, -> HiController에서 HiService를 사용하겠다. @RestController public class HiCont..

Back-End/Spring 2024.03.08

[Spring] MyBatis 실습 / JPA 개념 (외부)

MyBatis 실습 MyBatis란? : 자바의 관계형 데이터베이스 프로그래밍을 좀 더 쉽게 할 수 있게 도와주는 개발 프레임워크. 복잡한 jdbc보다 사용하기에 더 깔끔하다. JPA : 자바에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스 인터페이스이므로 실제 사용을 위해서는 ORM 프레임워크를 추가로 선택해야함. ex) hibernate hibernate : JPA 인터페이스를 구현한 구현체이자 자바용 ORM 프레임워크. 내부적으로는 JDBC API를 사용한다. 하이버네이트의 목표는 자바 객체를 통해 데이터베이스 종류에 상관없이 데이터베이스를 자유자재로 사용할 수 있게 하는것이다. 엔티티 엔티티(Entity)는 데이터베이스의 테이블과 매핑되는 객체를 말한다. 데이터베이스의 테이블과 직접 연..

Back-End/Spring 2024.03.07

[Spring] Docker, JPA 기초 실습 (외부)

Docker 명령어 docker-compose up -d : 실행 시작 docker-compose down : 실행 종료 docker-compose ps : 상태 표시 docker logs :container_name : container_name의 로그 보기 WorkBench 사용 11802로 만드려는데 (도커랑 연결) 도저히 안됨 - 다시 깔아봤음 & 재부팅 해봤음 & MySQL 자체를 싹 지우고 다시 해봤음 안됨!!!! - my.ini 건드려봤음. 내용 함부로 건드렸다가 아예 실행안되서 다시 지웠다 깔음... - windows 11 home은 이미 wsl2 강제 사용중이라 도커 환경설정에서 체크 안풀어지는 듯 - 예상으로는 아마 내 윈도우가 전체 권한을 가지고 있지 않거나(?) 엄청 타이트한 보안환..

Back-End/Spring 2024.03.06

[Spring] 동적 페이지 구현/스프링 핵심 개념

Thymeleaf : 템플릿 엔진 - 서버에서 데이터를 받아 우리가 보는 HTML 웹페이지에 데이터를 넣어 보여주는 도구를 뜻함. - HTML 파일을 그대로 유지하면서 템플릿을 렌더링할 수 있는 기능이 가능함. 만약 서버에서 아래와 같은 json이 넘어왔을 때, 템플릿 엔진은 아래 값을 받아서 HTML에 값을 적용한다. { "이름" : "김자바", "나이" : 20 } 타임리프 표현식과 문법 타임리프를 사용하기 위해 HTML 파일에 다음과 같은 선언문을 작성해야 한다. - 타임리프의 핵심은, th:xxx가 붙은 부분은 서버에서 렌더링되고 th 라는 값이 없으면 HTML의 기존 태그를 따른다. 동적 페이지 구현해보기 1) html 파일 셋팅 - 먼저 html 파일을 Thymleaf를 사용하여 템플릿 렌더링..

Back-End/Spring 2024.03.05