본문 바로가기
  • soobinhand의 기술 블로그
728x90

전체 글119

[SpringBoot] 시작하기! SpringBoot 시작하기! Springboot는 다른 프레임워크보다 조금 까다로운 부분이 많았던 것 같습니다. 실제로 build를 따로 해주는 maven이나 gradle에 대한 이해가 조금은 필요했습니다. 저는 개인적으로 Springboot를 초기 셋팅을 하고 시작을 하는데 꽤나 힘들었던 기억이 있어서, 오늘은 그에 대한 이야기와 다신 그런 실수를 반복하지 않겠다는 다짐으로 글을 남겨봅니다. 처음 만들 때에는 Spring Initializer를 사용해도 되고, 그냥 IntelliJ에서 해도됩니다. 우선 저는 IntelliJ에서 진행했습니다. File -> new -> Project -> Spring Initializer 을 누른 후 설정을 가볍게 진행해줍니다. 스프링 부트 버전은 2.5.5로 진행했습.. 2021. 10. 19.
[Node JS] 비밀번호 암호화(salt) 다음에. 2021. 10. 19.
[디자인 패턴] SOLID 원칙 SRP Single Responsibility Principle 단일 책임 원칙 클래스에 기능이 너무 많으면 유지 보수가 어렵기 때문에, 하나의 클래스는 하나의 역할만으로 구성되어있어야 한다는 원칙입니다. OCP Open Closed Principle 개방 폐쇄 원칙 기존 코드를 변경하지 않고 확장할 수 있도록 설계해야함. 변경되지 않을 부분과 변경될 부분을 분리하는 것. LSP Liskov Substitution Principle 리스코프 치환 원칙 자식 클래스가 부모 클래스를 대체할 수 있어야 한다는 원칙입니다. 부모 클래스 객체 대신 자식 클래스 객체를 사용했을 때, 문제 없이 프로그램이 동작해야함 ISP Interface Segregation Principle 인터페이스 분리 원칙 여러 개 클라이.. 2021. 10. 18.
[JAVA] 생성자 생성자 (Constructor) 생성자는 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메서드'입니다. 인스턴스 변수의 초기화 작업에 주로 사용됩니다. 구조도 메서드랑 비슷하긴 한데, 리턴값이 없습니다. 사실 모든 클래스에는 반드시 하나 이상의 생성자가 있어야합니다. 근데 지금까지 우리가 그냥 코딩할 수 있었던 이유는 바로 default(기본) 생성자 덕분입니다. 생성자가 없으면 기본 생성자가 있는 것으로 판단합니다. (굳이 쓰지 않아도) 하지만 기본 생성자가 아닌 생성자가 있다면 기본 생성자는 없는 것으로 판단합니다. 그래서 아래 예시처럼 기본 생성자를 따로 써줘야 합니다. public class A{ A(){} } 이런 식으로 말이죠. 그래서 사실 개발자들은 보통 기본 생성자(위) 처럼 써놓고 있습.. 2021. 10. 16.
[데이터베이스] Database? 데이터베이스 다양한 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합 데이터베이스는 아주 클 수도 있습니다. 2021. 10. 16.
[디자인 패턴] 디자인 패턴이란? 디자인 패턴 각 패턴은 소프트웨어 개발 시 지속적으로 발생할 수 있는 문제를 두 번 반복하지 않을 수 있도록 그 문제에 대한 해결책의 핵심입니다. 재사용 가능한 문제 해결 방법, 즉 전문가들이 만들어 놓은 문제 설명과 해결 방법이며 재사용성이 높습니다. 종류 생성 패턴 (객체 생성 과정과 연관된 패턴입니다.) 추상 팩토리 (Abstract Factory) 빌더 (Builder) 팩토리 메소드 (Factory Method) 프로토타입 (Prototype) 싱글톤 (Singleton) 구조 패턴 (클래스나 객체의 합성/집합에 관련된 패턴입니다.) 어댑터 (Adapter) 브릿지 (Bridge) 컴포지트 (Composite) 데코레이터 (Decorator) 퍼사드 (Facade) 플라이웨이트 (Flyweigh.. 2021. 10. 16.
[프로그래밍 언어론] Scope Scope 변수의 영역입니다. 프로그램에서 변수를 사용할 수 있는 범위입니다. Static Scope와 Dynamic Scope 1. static scope 함수를 어디서 선언했는지에 따라 상위 스코프를 결정합니다. 함수의 호출이 아니라 함수의 선언에 따라 결정됩니다. 2. dynamic scope 실행 도중 가장 최근에 만나고 아직 return에 의해 제거되지 않은 현재 바인딩을 기준으로 합니다. 실행시점까지 referencing environment 와 관련된 오류 발견이 불가능합니다. 어떤걸, 어떻게 호출하느냐에 따라서 동적으로 값이 바뀝니다. var number = 1; function a(){ var number = 10; b(); } function b(){ console.log(number).. 2021. 10. 15.
[컴파일러] 컴파일러의 논리적 구조 컴파일러의 논리적 구조 소스 프로그램 -> 어휘분석 -> 구문분석 -> 의미분석 -> 중간 코드 생성 -> 코드 최적화 -> 목적 코드 생성 -> 목적 프로그램 어휘분석부터 중간 코드 생성까지는 전단부, 코드 최적화와 목적 코드 생성은 후단부라고 합니다. 전단부 목적 기계에 독립적인 부분으로 목적 기계와 관계없이 소스 프로그램을 분석하고 중간 코드를 생성합니다. 후단부 목적 기계에 의존적인 부분으로 전단부에서 생성한 중간 코드를 특정기계에 대한 목적 코드로 번역합니다. 2021. 10. 15.
[컴파일러] 컴파일러와 인터프리터 컴파일러 컴퓨터는 기계어를 사용하지만 인간이 기계어를 사용하여 문제를 표현하기란 무척 어렵습니다. 그래서 인간은 사람 중심 언어인 고급 언어를 사용합니다. 그런데 인간이 사용하는 고급 언어는 컴퓨터가 이해하지 못합니다. 그래서 인간이 사용하는 고급 언어를 기계어로 변환해주는 번역기가 필요한데 이를 컴파일러라고 합니다. 인터프리터 이는 컴파일러와는 조금 다르게, 고급 언어를 입력받아 바로 실행 결과를 보여주는 번역기입니다. 2021. 10. 15.
728x90