분류 전체보기

프로그래밍 언어/JAVA

상속과 다형성

상속과 다형성은 객체 지향 프로그래밍의 핵심 개념들이다. 다른 객체 지향 프로그래밍의 요소들에는 어떤 것이 있는지에 대한 설명은 여기서 확인할 수 있다.이 글에서는 상속과 다형성을 중점적으로 설명해 보겠다.1. 상속(Inheritance)상속은 아래처럼 Animal이라는 큰 부모 클래스의 속성과 메서드를 물려받아 재사용하고 확장할 수 있게 해 준다.이 상속을 자식 클래스가 되는 클래스에서 extends를 이용해 선언할 수 있다.이때, 부모 클래스의 public, protected는 속성과 메서드는 상속되지만 private은 상속되지 않는다.// 부모 클래스class Animal { void eat() { System.out.println("This animal eats food."); ..

후기 및 회고

Apple Developer Academy @ POSTECH 4기 지원, 합격 후기

애플 디벨로퍼 아카데미 4기 상반기 모집에 테크로 지원하고 합격했다.사실, 1년 전에 모집하였던 3기에도 batch 1과 batch 2에 지원을 했었는데 모두 인터뷰 과정에서 떨어졌었다.이번 4기는 작년 모집과 다르게 하나의 batch에만 지원이 가능하다고 하는데 이미 batch 1 모집이 끝났으니 상관없을 듯하다. 뭔가 작년보다 선발되기가 어려워진 듯한 느낌.. 그래도 더 많은 지원자들을 만날 기회가 주어지는 거니까 아카데미 입장에서는 아카데미에 핏한 지원자를 선발하기에 더 유리할지도?암튼, 다른 유명 부트캠프들과는 다르게 이제 3년 차로 운영되고 있는 짧은 과정이고 매년 세세하게 변경되는 지원 과정과 부족한 정보 때문에 이에 갈증을 느낄 다음 지원자들을 위해 지원 후기를 작성해보려고 한다. 검색해 보..

개발 관련 지식

[Linux 명령어] 기초 명령어

이번에 42Gyeongsan의 La Piscine에 참여하게 되면서 Linux 환경의 터미널에서 작업할 기회가 생겼다. 서버는 Linux 기반의 환경에서 최적화되어 동작하는 경우가 많기 때문에 백엔드 개발자로서 알아두면 좋은 지식이라고 생각해서 알게 된 것들을 정리해보고자 한다. pwd: print working directory의 약자로 현재 위치한 디렉토리를 보여준다.cd: change directory의 약자로 현재 위치한 디렉토리에서 어딘가로 이동할 때 사용한다. 그냥 cd만 쓰면 홈 디렉토리로 이동하고 cd 뒤에 현재 위치한 디렉토리 안의 디렉토리를 입력하면 해당 디렉토리로 이동할 수 있다.cd .. 을 하면 상위 디렉토리로 이동이 가능하다.ls: list의 약자로 현재 위치한 디렉토리의 내부 ..

Computer Science/운영체제

5. 프로세스 동기화

1-1. 프로세스 간 통신의 개념프로세스 간 통신의 종류공유 메모리나 공유 파일을 이용한 통신일정한 메모리 영역이나 파일을 공유하고 이를 통해 데이터를 주고받음가장 원시적파이프를 이용한 통신파이프는 프로세스 간 통신을 위해 OS가 제공하는 통신 기법fork()로 만들어진 부모-자식 간에 사용됨소켓을 이용한 통신소켓은 네트워크로 연결된 컴퓨터에서 데이터를 주고받기 위한 통신 기법초기화할 내용도 많고 시스템 자원도 많이 사용하므로 같은 컴퓨터에서 소켓 통신을 하는 것은 비효율적1-2. 프로세스 간 통신의 종류파일을 이용한 통신파일 열기open(”com.txt”, O_RDWR): com.txt 파일을 읽기, 쓰기가 가능한 상태로 준비, open 함수는 파일에 접근할 수 있는 권한인 파일 기술자 fd를 사용자에..

Back-end

API 서버의 동작 아키텍처

이 글에서는 일반적인 로그인 상황을 예시로 들어 API 서버가 클라이언트, 데이터베이스와 상호작용할 때 어떤 순서로 동작하고 데이터가 어떻게 이동하는 지에 대해서 알아도록 하겠다.클라이언트 요청사용자가 웹 브라우저나 모바일 앱을 통해 특정 작업을 요청한다.클라이언트는 HTTP/HTTPS 요청을 생성하고 이를 API 서버로 보낸다.ex) 클라이언트가 사용자 로그인을 요청하면, 로그인 폼 데이터가 API 서버로 전송된다.API 서버 수신 및 처리API 서버는 클라이언트의 요청을 수신한다.요청을 분석하고, 필요한 데이터를 추출한다.인증 및 권한 검사를 수행하여 요청의 유효성을 확인한다.ex) API 서버는 로그인 요청을 수신하고, 사용자의 자격 증명을 확인한다.비즈니스 로직 실행API 서버는 요청에 대한 비즈..

개발 관련 지식

Docker가 대체 뭐야

백엔드 개발자 로드맵이나 구인공고 우대사항에서 항상 등장하는 것 중 하나가 Docker다. Docker에 대해서 말만 많이 들어 봤지 도대체 뭔지, 어디에 쓰이는지 이해가 안 되는 그 Docker에 대해서 알아보고 왜 Docker가 필요한지, 그리고 이것을 사용했을 때 어떤 이점이 있는지 살펴보도록 하자.뭐가 문제일까?컴퓨터에서 프로그램을 실행할 때, 프로그램이 정상적으로 작동하려면 다양한 조건들이 충족되어야 한다. 예를 들어, 특정 운영 체제 버전, 필요한 라이브러리(프로그램이 의존하는 작은 코드들), 그리고 환경 설정 등이 정확히 맞아야 한다. 하지만 컴퓨터마다 이러한 조건들이 조금씩 다르기 때문에, 한 컴퓨터에서 정상적으로 실행되는 프로그램이 다른 컴퓨터에서는 오류가 발생할 수 있다. 이런 문제는 ..

프로젝트 회고

[번개 모임 프로젝트 회고] Spring Data JPA에서 좌표 사용하고 DB에 저장하기

번개 모임 프로젝트를 진행하던 중, 사용자 주위의 모임을 보여주는 기능을 개발해야 했다.모임을 등록할 때, 모임의 장소를 선택해야 하기 때문에 해당 장소의 좌표값을 저장하고 사용자의 위치 좌표값을 기준으로 특정 반경 내에 있는 모임들을 보여주는 것을 목표로 했다. 먼저, 좌표값을 DB에 어떻게 저장해야 할 지 고민했다. 각각 경도와 위도를 저장할 수도 있고 MySQL에서는 POINT 데이터 타입으로 저장하는 방법이 있었다.POINT는 위도와 경도를 하나의 점으로하는 공간 데이터를 저장하는 타입이다.Point를 사용하면 점과 점 사이의 거리를 계산하는 공간 함수를 사용할 수 있다고 하여서 해당 타입을 사용하기로 결정했다.Spring Data JPA에서 지리적 데이터를 사용하기 위해서 Hibernate Sp..

Back-end/Spring

Spring에서의 예외 처리

스프링에서는 예외 처리를 더 편리하게 하기 위해 다양한 방법을 제공하는데, 일반적으로 @ExceptionHandler와 @ControllerAdvice를 사용한 예외 처리 방법을 많이 사용한다.1. @ExceptionHandler특정 컨트롤러 내에서 발생하는 예외를 컨트롤러 내에서 처리할 수 있다.@Controllerpublic class ExampleController { @RequestMapping("/divide") public String divide(@RequestParam int a, @RequestParam int b) { int result = a / b; // 예외 발생 가능 return "Result: " + result; } @Except..

프로그래밍 언어/JAVA

Enum - 2

Enum - 1에서는 Enum과 final을 비교했을 때 아래의 장점이 있다는 것을 알아보았다.코드의 가독성 상승상수들에 대한 관리 용이타입 안전성 제공Enum의 내장 메서드 활용필드나 메서드를 추가해 복잡한 로직 구현 가능이번에는 Enum의 특징과 사용법 등에 대해서 자세히 알아보도록 하겠다.Enum은 기본적으로 아래와 같이 사용된다.public enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY}Day today = Day.MONDAY;switch (today) { case MONDAY: System.out.println("Today is Monday!"); break; case ..

프로젝트 회고

[번개 모임 프로젝트 회고] 프로젝트 구조 설정, Git을 통한 버전 관리

1. 프로젝트 구성이번 프로젝트는 Spring boot를 사용하고 JPA를 적용했기 때문에 위와 같이 폴더를 구성해 보았다.아래는 Notion 페이지를 통해 공유한 프로젝트 구조와 설명들을 작성한 내용이다.Controller해당 요청 url에 따라 적절한 view와 mapping을 처리한다.@Autowired Service를 통해 service의 method를 이용한다. (사용자의 입력을 받고 서비스로 전달하는 역할)적절한 DTO를 담아서 Client에게 전달한다.Service비즈니스 로직을 수행 ( ex 중복 아이디가 있는지 없는지를 검사하기 위한 일련의 과정들)어떻게 데이터가 생성, 저장, 수정, 삭제, 조회 등 되는 지를 정의한 것DAO로 DB에 접근하고 DTO로 데이터를 전달받은 다음, 비즈니스 ..

sngyng
'분류 전체보기' 카테고리의 글 목록