본문 바로가기

코딩

(19)
Spring Boot(스프링 부트) > 회원 서비스 개발 2 - 전 포스팅에 이어서... 간단한 회원 기능을 구현 및 테스트를 완료하였고, 이제 간단한 로직을 구현한다! hello-spring -> src -> main -> java -> hello.hellospring에서 service 이름의 패키지를 만들고 MemberService 클래스를 만든다.이 곳에서 회원 서비스 기능을 작성하는 것이다. import ...public class MemberService {   private final MemberRepository memberRepository;         public MemberService(MemberRepository memberRepository) {      this.memberRepository = memberRepository;   }   // 회원 가입   pub..
Spring Boot > 세션과 쿠키 세션(Session) 세션은 서버 측에서 사용자별로 고유하게 상태 정보를 저장하는 방식이다.사용자가 웹 애플리케이션에 접속하면 서버는 고유한 세션 ID를 생성하고 이를 사용하여 해당 사용자의 상태 정보를 관리한다.세션은 상태 정보가 서버에 저장되기 때문에 보안이 상대적으로 높으며, 일정 시간이 지나면 만료된다. 또 세션 클라이언트는 세션 ID를 쿠키나 URL 파라미터로 서버에 전송한다.세션은 로그인 상태 유지, 장바구니 정보 저장 등 사용자 별로 유지해야 할 정보를 저장할 때 사용된다. 쿠키(Cookie) 쿠키는 사용자 브라우저에 저장되는 작은 데이터 조각이다.서버가 HTTP 응답의 일부로 쿠키를 보내고, 클라이언트는 이후 요청 시, 이 쿠키를 포함시켜 서버로 전송한다.쿠키는 클라이언트(브라우저)에 저장..
Spring Boot(스프링 부트) > 백엔드 개발(회원 관리 예제) 김영한 스프링 입문 3주차를 수강하고 남기는 포스팅이다!이번에는 매우매우 간단한 회원 서비스를 만들어 본다고 하였다.매우 복잡 그 자체였다.. 아직 감도 안 잡히고 큰일이다!열심히 수강하면 조금씩 발전하는 나를 볼 수 있지 않을까 하는 요즘이다.. 다음은 일반적인 웹 애플리케이션 계층 구조이다.컨트롤러: 웹 MVC의 컨트롤러 역할서비스: 핵심 비즈니스 로직 구현리포지토리: 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리도메인: 비즈니스 도메인 객체, ex) 회원, 주문, 쿠폰 등 주로 데이터베이스에 저장하고 관리됨 부가 설명을 하자면 컨트롤러는 이전 포스팅에 다루었던(ex. API) 내용들을 의미하고서비스는 핵심 비즈니스 로직, 서비스는 비즈니스 도메인 객체를 가지고 비즈니스 로직이 동작하도록 ..
Spring Boot(스프링 부트) > 스프링 웹 개발(정적 컨텐츠, MVC와 템플릿 엔진, API) 스프링에서 웹 개발을 할 수 있는 방법은 크게 3가지가 있다. 1. 정적 컨텐츠2. MVC와 템플릿 엔진3. API 이 3가지 방식 중 정적 컨텐츠 제외하고 실무에서 나머지 2, 3번이 많이 쓰인다고 한다! 1. 정적 컨텐츠 정적 컨텐츠는 html 파일을 그대로 읽어와 웹에 뿌려주는 컨텐츠이다.예시 방법은 다음과 같다. hello-spring(프로젝트 이름) -> src -> main -> resources -> static 경로에 들어가 hello-static.html 파일을 생성해 준다.생성해 준 후 다음 코드를 삽입해 준다.   정적 컨텐츠 입니다. 그런 후 build를 해주게 되면http://localhost:8080/hello-static.html 를 주소 창에 검색하게 되면 위에 코드로 작성한..
Spring Boot(스프링 부트) > 간단한 View 환경설정과 빌드하고 실행하 이번에 새로운 학교 동아리에 들어가 활동을 시작하였다!개인적으로 백엔드 관련해서 관심이 있었는데 그와 관련해서 학교 전공 수업이라거나 프로그램들이 없었던 거 같다멘토링 활동에서 멘토가 적극적으로 추천해주면서 동아리에 참여하게 되었고, 감사하게도 스프링 부트를 학습할 수 있는 기회가 되었다 김영한 선생님의 스프링 부트 입문을 수강하며 필요한 내용을 정리하고자 한다! 필요한 프로그램은 Java JDK와 IntelliJ이다실행 전, 두 개의 프로그램은 필수로 설치해야 한다현재 IntelliJ 프로그램을 동작하기 위해서 Java JDK 버전이 최소 11이상이 되어야 한다 View 환경설정1단계: https://start.spring.io/ 접속 위 홈페이지에 들어가게 되면 다음과 같은 구성이 보일 것이다.  P..
자료구조 > 이중 연결 리스트(C언어) 이전 글 CPU 스케줄링 프로그램 구현을 위해 자료구조의 이중 연결 리스트를 활용해야 한다는 사실을 알게되었다.내 생각과 다르게 스케줄링을 구현하는 것이 이렇게 어려웠나 싶었다..그래도 앞으로의 발전을 위해 거부감없이 다 공부할 것이다! 이중 연결 리스트는 말 그대로 리스트인데 이중으로 연결되어 있는 리스트를 의미한다.이중 연결 리스트를 알기 전 단순 연결 리스트도 알 필요가 있다.단순 연결 리스트와, 이중 연결 리스트의 간단한 정의를 알아보자!단순 연결 리스트(Singly Linked List)- 동적 메모리 할당을 이용해 리스트를 구현하는 가장 간단한 형태의 자료 구조- 동적 메모리 할당을 받아 노드를 저장하고, 노드는 레퍼런스를 이용하여 다음 노드를 단 방향으로 가리키도록 만들어 노드들을 한 줄로 ..
C언어 > CPU 스케줄링 프로그램 구현(Feedback + FCFS + Round-Robin) - 1 대학교에서 운영체제를 처음 수강하면서 잘 이해가 되지 않았지만, 중간고사 공부를 빡세게 하니.. 눈에 조금씩 들어오기 시작한 거 같다.자료구조와 유닉스 기초를 수강해야 운영체제를 들을 수 있다고 하였지만 '나를 믿어보자'라는 다짐으로 수강하게 되었다모르면 알아가면 되는 거니까!!CPU 스케줄링 구현을 C언어로 구현해볼 수 있다는 사실을 알게 되면서 흥미를 가지게 되었다.교수님 생각으로 어렵다고 생각한 실시간 프로세스, Feedback 스케줄링과 FCFS 스케줄링, Round-Robin 스케줄링을 합친 CPU 스케줄링을 구현해 보려고 한다.자료구조와 유닉스 기초에 대한 지식은 없지만 차근차근 완성해 볼 계획이다! 만들어볼 CPU 스케줄링에 대한 설명이다.프로세스의 종류는 실시간 프로세스와 일반 프로세스로 ..
Kotlin(코틀린) > 사칙연산을 수행하는 계산기를 만들어 보자! - 2 저번 포스팅과 이어서 사칙연산을 수행하는 계산기를 만들어 본다. 저번 포스팅에는 1. 레이아웃 구성 2. id와 각각의 text, 힌트 설정 3. 덧셈 버튼 기능 구현 까지 완성하였다. 덧셈 버튼 기능을 만든 것과 같이 나머지 기능을 다음과 같이 구현한다. 사실상 같은 코드가 반복되어 있어서 복사 붙여넣기 후 수정을 하면 편할 것이다! num1 = binding.edit1.text.toString() num2 = binding.edit2.text.toString() 위 코드를 함수 바깥으로 빼서 애뮬레이터를 돌렸는데 과부하에 걸렸는지 튕김 현상이 발생했다. 아마 계속적으로 텍스트 입력값을 받아서 그런듯 하다. 계산기의 전체적인 기능은 만들었고, 0을 나누었을 때 예외처리가 필요할 것이다 만약 0을 나누었..